@visactor/vrender-components 0.18.10-alpha.0 → 0.18.10
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/base.js +1 -5
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/circle.js +1 -1
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/grid/base.js +1 -5
- package/cjs/axis/grid/base.js.map +1 -1
- package/cjs/axis/index.d.ts +1 -0
- package/cjs/axis/index.js +1 -1
- package/cjs/axis/index.js.map +1 -1
- package/cjs/axis/line.js +5 -5
- package/cjs/axis/line.js.map +1 -1
- package/cjs/axis/mixin/circle.js +2 -4
- package/cjs/axis/mixin/circle.js.map +1 -1
- package/cjs/axis/overlap/auto-limit.js +8 -13
- package/cjs/axis/overlap/auto-limit.js.map +1 -1
- package/cjs/axis/util.d.ts +5 -2
- package/cjs/axis/util.js +18 -5
- package/cjs/axis/util.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/indicator/indicator.js +3 -3
- package/cjs/indicator/indicator.js.map +1 -1
- package/cjs/label/base.js +3 -1
- package/cjs/label/base.js.map +1 -1
- package/cjs/legend/color/color.js +7 -5
- package/cjs/legend/color/color.js.map +1 -1
- package/cjs/legend/discrete/discrete.js +4 -2
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/legend/size/size.js +6 -4
- package/cjs/legend/size/size.js.map +1 -1
- package/cjs/marker/area.d.ts +0 -1
- package/cjs/marker/area.js +3 -9
- package/cjs/marker/area.js.map +1 -1
- package/cjs/marker/base.d.ts +0 -7
- package/cjs/marker/base.js +3 -40
- package/cjs/marker/base.js.map +1 -1
- package/cjs/marker/config.d.ts +0 -3
- package/cjs/marker/config.js +0 -3
- package/cjs/marker/config.js.map +1 -1
- package/cjs/marker/line.js +4 -14
- package/cjs/marker/line.js.map +1 -1
- package/cjs/marker/point.d.ts +0 -1
- package/cjs/marker/point.js +6 -22
- package/cjs/marker/point.js.map +1 -1
- package/cjs/marker/type.d.ts +7 -53
- package/cjs/marker/type.js.map +1 -1
- package/cjs/pager/pager.js +2 -2
- package/cjs/pager/pager.js.map +1 -1
- package/cjs/segment/register.d.ts +1 -1
- package/cjs/segment/register.js +1 -1
- package/cjs/segment/register.js.map +1 -1
- package/cjs/segment/segment.d.ts +1 -2
- package/cjs/segment/segment.js +3 -5
- package/cjs/segment/segment.js.map +1 -1
- package/cjs/segment/type.d.ts +0 -2
- package/cjs/segment/type.js.map +1 -1
- package/cjs/slider/slider.d.ts +2 -0
- package/cjs/slider/slider.js +53 -38
- package/cjs/slider/slider.js.map +1 -1
- package/cjs/slider/type.d.ts +1 -0
- package/cjs/slider/type.js.map +1 -1
- package/cjs/tag/tag.js +3 -3
- package/cjs/tag/tag.js.map +1 -1
- package/cjs/util/text.d.ts +1 -1
- package/cjs/util/text.js +6 -7
- package/cjs/util/text.js.map +1 -1
- package/es/axis/base.js +2 -6
- package/es/axis/base.js.map +1 -1
- package/es/axis/circle.js +2 -2
- package/es/axis/circle.js.map +1 -1
- package/es/axis/grid/base.js +2 -6
- package/es/axis/grid/base.js.map +1 -1
- package/es/axis/index.d.ts +1 -0
- package/es/axis/index.js +2 -0
- package/es/axis/index.js.map +1 -1
- package/es/axis/line.js +5 -5
- package/es/axis/line.js.map +1 -1
- package/es/axis/mixin/circle.js +2 -3
- package/es/axis/mixin/circle.js.map +1 -1
- package/es/axis/overlap/auto-limit.js +9 -13
- package/es/axis/overlap/auto-limit.js.map +1 -1
- package/es/axis/util.d.ts +5 -2
- package/es/axis/util.js +15 -1
- package/es/axis/util.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/indicator/indicator.js +3 -3
- package/es/indicator/indicator.js.map +1 -1
- package/es/label/base.js +3 -1
- package/es/label/base.js.map +1 -1
- package/es/legend/color/color.js +7 -5
- package/es/legend/color/color.js.map +1 -1
- package/es/legend/discrete/discrete.js +4 -2
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/legend/size/size.js +6 -4
- package/es/legend/size/size.js.map +1 -1
- package/es/marker/area.d.ts +0 -1
- package/es/marker/area.js +3 -11
- package/es/marker/area.js.map +1 -1
- package/es/marker/base.d.ts +0 -7
- package/es/marker/base.js +2 -45
- package/es/marker/base.js.map +1 -1
- package/es/marker/config.d.ts +0 -3
- package/es/marker/config.js +0 -3
- package/es/marker/config.js.map +1 -1
- package/es/marker/line.js +3 -15
- package/es/marker/line.js.map +1 -1
- package/es/marker/point.d.ts +0 -1
- package/es/marker/point.js +5 -23
- package/es/marker/point.js.map +1 -1
- package/es/marker/type.d.ts +7 -53
- package/es/marker/type.js.map +1 -1
- package/es/pager/pager.js +2 -2
- package/es/pager/pager.js.map +1 -1
- package/es/segment/register.d.ts +1 -1
- package/es/segment/register.js +1 -1
- package/es/segment/register.js.map +1 -1
- package/es/segment/segment.d.ts +1 -2
- package/es/segment/segment.js +3 -4
- package/es/segment/segment.js.map +1 -1
- package/es/segment/type.d.ts +0 -2
- package/es/segment/type.js.map +1 -1
- package/es/slider/slider.d.ts +2 -0
- package/es/slider/slider.js +50 -36
- package/es/slider/slider.js.map +1 -1
- package/es/slider/type.d.ts +1 -0
- package/es/slider/type.js.map +1 -1
- package/es/tag/tag.js +3 -3
- package/es/tag/tag.js.map +1 -1
- package/es/util/text.d.ts +1 -1
- package/es/util/text.js +6 -7
- package/es/util/text.js.map +1 -1
- package/package.json +3 -3
package/cjs/pager/pager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/pager/pager.ts"],"names":[],"mappings":";;;AAKA,yDAAwD;AACxD,6CAAiF;AACjF,uCAAiD;AACjD,kCAA0C;AAG1C,yCAAgD;AAEhD,MAAM,qBAAqB,GAA+B;IACxD,KAAK,EAAE,CAAC;IACR,KAAK,EAAE;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,aAAa;SACtB;QACD,KAAK,EAAE,EAAE;KACV;CACF,CAAC;AAEF,IAAA,6BAAkB,GAAE,CAAC;AAErB,MAAa,KAAM,SAAQ,wBAA4C;IAIrE,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAeD,YAAY,UAA2B,EAAE,OAA0B;QACjE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;QArB5F,SAAI,GAAG,OAAO,CAAC;QAEP,aAAQ,GAAG,CAAC,CAAC;QAqJb,aAAQ,GAAG,CAAC,CAAwB,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,MAA4B,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,CAAwB,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,MAA4B,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEM,aAAQ,GAAG,CAAC,CAAwB,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,MAA4B,CAAC;YAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;gBAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;oBACvB,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;gBACnB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;oBACvB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBAC5B;qBAAM;oBACL,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;oBAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ;oBACtB,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;aACJ;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;gBACjC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,EAAE;oBACjC,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAEnB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,EAAE;oBACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBAC5B;qBAAM;oBACL,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;oBAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ;oBACtB,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,UAAsB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACrD;YACD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE;gBAC9B,IAAI,CAAC,WAAuB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACtD;YAEA,IAAI,CAAC,IAAc,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC;IA9LF,CAAC;IAES,MAAM;;QACd,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,EACJ,MAAM,GAAG,YAAY,EACrB,OAAO,GAAG,qBAAqB,EAC/B,KAAK,EACL,cAAc,GAAG,CAAC,EAClB,SAAS,EACT,OAAO,GAAG,CAAC,EACZ,GAAG,IAAI,CAAC,SAAS,CAAC;QAEnB,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,OAAO,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,KAAK,YAAY,CAAC;QAE7C,MAAM,SAAS,GAAG,6BAAc,CAAC,KAAK,CAAC;YACrC,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAEzC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC;SACzD;QACD,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;SAC7D;QAED,MAAM,UAAU,GAAG,6BAAc,CAAC,MAAM,+BACtC,kBAAkB,EAAE,CAAC,EACrB,QAAQ,EAAE,WAAW,IAClB,YAAY,KACf,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,UAAU,EAAE,QAAQ,EACpB,IAAI,EAAE,WAAW,IACjB,CAAC;QACH,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC;QACjC,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAG1B,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,sBAAe,EACpE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,kBAEtB,SAAS,EAAE,QAAQ,EACnB,YAAY,EAAE,QAAQ,IACnB,SAAS,GAEd,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,GAAG,IAAI,CAAC,UAAU,CACvC,CAAC;QAEF,MAAM,YAAY,GAAG,IAAA,iBAAQ,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,IAAA,iBAAQ,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE1E,MAAM,IAAI,GAAG,6BAAc,CAAC,IAAI,iBAC9B,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EACxE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,aAAa,GAAG,CAAC,EACzE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EACvC,SAAS,EAAE,QAAQ,EACnB,YAAY,EAAE,QAAQ,EACtB,UAAU,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,IAC5B,SAAS,EACZ,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAM,WAAW,GAAG,6BAAc,CAAC,MAAM,+BACvC,kBAAkB,EAAE,CAAC,EACrB,QAAQ,EAAE,WAAW,IAClB,YAAY,KACf,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EACpE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,YAAY,GAAG,CAAC,GAAG,aAAa,EACrE,UAAU,EAAE,SAAS,EACrB,IAAI,EAAE,WAAW,IACjB,CAAC;QACH,WAAW,CAAC,IAAI,GAAG,aAAa,CAAC;QACjC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/B,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;YAC9B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAChC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAClC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC;QAC7C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAExC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEpB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACtC,OAAO;SACR;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,QAA8C,CAAC,CAAC;YACtG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAgD,CAAC,CAAC;YACxG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,QAA8C,CAAC,CAAC;SACtG;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,QAA8C,CAAC,CAAC;YACvG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAgD,CAAC,CAAC;YACzG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,QAA8C,CAAC,CAAC;SACvG;IACH,CAAC;IAiEO,MAAM;QACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAe,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACxD,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAEzC,IAAI,aAAa,EAAE;YACjB,OAAO,IAAA,mBAAU,EAAC,aAAa,CAAC;gBAC9B,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;gBACrC,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAChG;QAED,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;gBACjD,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC9D;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACnC;SACF;IACH,CAAC;;AApPH,sBAqPC;AAxOQ,uBAAiB,GAA6B;IACnD,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE;QACT,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,EAAE;KACb;CACF,CAAC","file":"pager.js","sourcesContent":["/**\n * @description 翻页器\n */\nimport type { ISymbol, IText, FederatedPointerEvent } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { merge, normalizePadding, isNumber, isFunction } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { PagerAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadPagerComponent } from './register';\n\nconst DEFAULT_HANDLER_STYLE: PagerAttributes['handler'] = {\n space: 8,\n style: {\n fill: 'rgb(47, 69, 84)',\n cursor: 'pointer',\n size: 15\n },\n state: {\n disable: {\n fill: 'rgb(170, 170, 170)',\n cursor: 'not-allowed'\n },\n hover: {}\n }\n};\n\nloadPagerComponent();\n\nexport class Pager extends AbstractComponent<Required<PagerAttributes>> {\n name = 'pager';\n\n private _current = 1;\n getCurrent() {\n return this._current;\n }\n\n private _total!: number;\n preHandler!: ISymbol | null;\n nextHandler!: ISymbol | null;\n text!: IText | null;\n\n static defaultAttributes: Partial<PagerAttributes> = {\n handler: DEFAULT_HANDLER_STYLE,\n textStyle: {\n fill: 'rgb(51, 51, 51)',\n fontSize: 12\n }\n };\n\n constructor(attributes: PagerAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Pager.defaultAttributes, attributes));\n }\n\n protected render() {\n this._reset();\n const {\n layout = 'horizontal',\n handler = DEFAULT_HANDLER_STYLE,\n total,\n defaultCurrent = 1,\n textStyle,\n padding = 0\n } = this.attribute;\n\n this._current = defaultCurrent;\n const parsedPadding = normalizePadding(padding);\n const isHorizontal = layout === 'horizontal';\n\n const container = graphicCreator.group({\n x: 0,\n y: 0\n });\n\n const handlerStyle = handler.style || {};\n const handlerSize = handlerStyle.size || 15;\n const handlerSpace = handler.space ?? 8;\n const handlerState = handler.state || {};\n\n let { preShape, nextShape } = handler;\n if (!preShape) {\n preShape = isHorizontal ? 'triangleLeft' : 'triangleUp';\n }\n if (!nextShape) {\n nextShape = isHorizontal ? 'triangleRight' : 'triangleDown';\n }\n\n const preHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: 0,\n y: 0,\n symbolType: preShape,\n size: handlerSize\n });\n preHandler.states = handlerState;\n preHandler.name = 'preHandler';\n this.preHandler = preHandler;\n container.add(preHandler);\n\n // 获取文本的最大长度,如果不固定的话随着文本的变化整体会发生抖动\n const { width: maxTextWidth, height: maxTextHeight } = measureTextSize(\n this._getPageText(total),\n {\n textAlign: 'center',\n textBaseline: 'middle',\n ...textStyle\n },\n this.stage?.getTheme().text.fontFamily\n );\n\n const handlerSizeX = isNumber(handlerSize) ? handlerSize : handlerSize[0];\n const handlerSizeY = isNumber(handlerSize) ? handlerSize : handlerSize[1];\n\n const text = graphicCreator.text({\n x: isHorizontal ? handlerSizeX / 2 + handlerSpace + maxTextWidth / 2 : 0,\n y: isHorizontal ? 0 : handlerSizeY / 2 + handlerSpace + maxTextHeight / 2,\n text: this._getPageText(defaultCurrent),\n textAlign: 'center',\n textBaseline: 'middle',\n lineHeight: textStyle?.fontSize,\n ...textStyle\n });\n this.text = text;\n container.add(text);\n\n const nextHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: isHorizontal ? handlerSizeX + handlerSpace * 2 + maxTextWidth : 0,\n y: isHorizontal ? 0 : handlerSizeY + handlerSpace * 2 + maxTextHeight,\n symbolType: nextShape,\n size: handlerSize\n });\n nextHandler.name = 'nextHandler';\n nextHandler.states = handlerState;\n this.nextHandler = nextHandler;\n\n container.add(nextHandler);\n\n if (this._total === 1) {\n preHandler.addState('disable');\n nextHandler.addState('disable');\n } else if (this._current === 1) {\n preHandler.addState('disable');\n } else if (this._current === total) {\n nextHandler.addState('disable');\n }\n\n const containerBounds = container.AABBBounds;\n const width = containerBounds.width();\n const height = containerBounds.height();\n\n container.translateTo(0 - containerBounds.x1 + parsedPadding[3], 0 - containerBounds.y1 + parsedPadding[0]);\n this.add(container);\n\n this.attribute.width = width + parsedPadding[1] + parsedPadding[3];\n this.attribute.height = height + parsedPadding[0] + parsedPadding[2];\n\n this._bindEvents();\n }\n\n private _bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n if (this.preHandler) {\n this.preHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n if (this.nextHandler) {\n this.nextHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (!target.hasState('disable')) {\n target.addState('hover');\n }\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n target.removeState('hover');\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (target.name === 'preHandler') {\n if (this._current === 1) {\n return;\n }\n this._current -= 1;\n if (this._current === 1) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toPrev', {\n current: this._current,\n total: this._total,\n direction: 'pre',\n event: e\n });\n }\n\n if (target.name === 'nextHandler') {\n if (this._current === this._total) {\n return;\n }\n this._current += 1;\n\n if (this._current === this._total) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toNext', {\n current: this._current,\n total: this._total,\n direction: 'next',\n event: e\n });\n }\n\n if (this._current > 1) {\n (this.preHandler as ISymbol).removeState('disable');\n }\n if (this._current < this._total) {\n (this.nextHandler as ISymbol).removeState('disable');\n }\n\n (this.text as IText).setAttribute('text', this._getPageText(this._current));\n };\n\n private _reset() {\n this.removeAllChild(true);\n this._current = 1;\n this._total = this.attribute.total as number;\n this.preHandler = this.nextHandler = this.text = null;\n }\n\n private _getPageText(current: number) {\n const { pageFormatter } = this.attribute;\n\n if (pageFormatter) {\n return isFunction(pageFormatter)\n ? pageFormatter(current, this._total)\n : `${pageFormatter}`.replace('{current}', `${current}`).replace('{total}', `${this._total}`);\n }\n\n return `${current}/${this._total}`;\n }\n\n setTotal(total: number) {\n if (total !== this.attribute.total) {\n this._total = total;\n\n if (this._current !== 1 && this._current <= total) {\n this.setAttributes({ total, defaultCurrent: this._current });\n } else {\n this.setAttribute('total', total);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/pager/pager.ts"],"names":[],"mappings":"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","file":"pager.js","sourcesContent":["/**\n * @description 翻页器\n */\nimport type { ISymbol, IText, FederatedPointerEvent } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { merge, normalizePadding, isNumber, isFunction } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { PagerAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadPagerComponent } from './register';\n\nconst DEFAULT_HANDLER_STYLE: PagerAttributes['handler'] = {\n space: 8,\n style: {\n fill: 'rgb(47, 69, 84)',\n cursor: 'pointer',\n size: 15\n },\n state: {\n disable: {\n fill: 'rgb(170, 170, 170)',\n cursor: 'not-allowed'\n },\n hover: {}\n }\n};\n\nloadPagerComponent();\n\nexport class Pager extends AbstractComponent<Required<PagerAttributes>> {\n name = 'pager';\n\n private _current = 1;\n getCurrent() {\n return this._current;\n }\n\n private _total!: number;\n preHandler!: ISymbol | null;\n nextHandler!: ISymbol | null;\n text!: IText | null;\n\n static defaultAttributes: Partial<PagerAttributes> = {\n handler: DEFAULT_HANDLER_STYLE,\n textStyle: {\n fill: 'rgb(51, 51, 51)',\n fontSize: 12\n }\n };\n\n constructor(attributes: PagerAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Pager.defaultAttributes, attributes));\n }\n\n protected render() {\n this._reset();\n const {\n layout = 'horizontal',\n handler = DEFAULT_HANDLER_STYLE,\n total,\n defaultCurrent = 1,\n textStyle,\n padding = 0\n } = this.attribute;\n\n this._current = defaultCurrent;\n const parsedPadding = normalizePadding(padding);\n const isHorizontal = layout === 'horizontal';\n\n const container = graphicCreator.group({\n x: 0,\n y: 0\n });\n\n const handlerStyle = handler.style || {};\n const handlerSize = handlerStyle.size || 15;\n const handlerSpace = handler.space ?? 8;\n const handlerState = handler.state || {};\n\n let { preShape, nextShape } = handler;\n if (!preShape) {\n preShape = isHorizontal ? 'triangleLeft' : 'triangleUp';\n }\n if (!nextShape) {\n nextShape = isHorizontal ? 'triangleRight' : 'triangleDown';\n }\n\n const preHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: 0,\n y: 0,\n symbolType: preShape,\n size: handlerSize\n });\n preHandler.states = handlerState;\n preHandler.name = 'preHandler';\n this.preHandler = preHandler;\n container.add(preHandler);\n\n // 获取文本的最大长度,如果不固定的话随着文本的变化整体会发生抖动\n const { width: maxTextWidth, height: maxTextHeight } = measureTextSize(\n this._getPageText(total),\n {\n textAlign: 'center',\n textBaseline: 'middle',\n ...textStyle\n },\n this.stage?.getTheme()?.text\n );\n\n const handlerSizeX = isNumber(handlerSize) ? handlerSize : handlerSize[0];\n const handlerSizeY = isNumber(handlerSize) ? handlerSize : handlerSize[1];\n\n const text = graphicCreator.text({\n x: isHorizontal ? handlerSizeX / 2 + handlerSpace + maxTextWidth / 2 : 0,\n y: isHorizontal ? 0 : handlerSizeY / 2 + handlerSpace + maxTextHeight / 2,\n text: this._getPageText(defaultCurrent),\n textAlign: 'center',\n textBaseline: 'middle',\n lineHeight: textStyle?.fontSize,\n ...textStyle\n });\n this.text = text;\n container.add(text);\n\n const nextHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: isHorizontal ? handlerSizeX + handlerSpace * 2 + maxTextWidth : 0,\n y: isHorizontal ? 0 : handlerSizeY + handlerSpace * 2 + maxTextHeight,\n symbolType: nextShape,\n size: handlerSize\n });\n nextHandler.name = 'nextHandler';\n nextHandler.states = handlerState;\n this.nextHandler = nextHandler;\n\n container.add(nextHandler);\n\n if (this._total === 1) {\n preHandler.addState('disable');\n nextHandler.addState('disable');\n } else if (this._current === 1) {\n preHandler.addState('disable');\n } else if (this._current === total) {\n nextHandler.addState('disable');\n }\n\n const containerBounds = container.AABBBounds;\n const width = containerBounds.width();\n const height = containerBounds.height();\n\n container.translateTo(0 - containerBounds.x1 + parsedPadding[3], 0 - containerBounds.y1 + parsedPadding[0]);\n this.add(container);\n\n this.attribute.width = width + parsedPadding[1] + parsedPadding[3];\n this.attribute.height = height + parsedPadding[0] + parsedPadding[2];\n\n this._bindEvents();\n }\n\n private _bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n if (this.preHandler) {\n this.preHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n if (this.nextHandler) {\n this.nextHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (!target.hasState('disable')) {\n target.addState('hover');\n }\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n target.removeState('hover');\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (target.name === 'preHandler') {\n if (this._current === 1) {\n return;\n }\n this._current -= 1;\n if (this._current === 1) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toPrev', {\n current: this._current,\n total: this._total,\n direction: 'pre',\n event: e\n });\n }\n\n if (target.name === 'nextHandler') {\n if (this._current === this._total) {\n return;\n }\n this._current += 1;\n\n if (this._current === this._total) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toNext', {\n current: this._current,\n total: this._total,\n direction: 'next',\n event: e\n });\n }\n\n if (this._current > 1) {\n (this.preHandler as ISymbol).removeState('disable');\n }\n if (this._current < this._total) {\n (this.nextHandler as ISymbol).removeState('disable');\n }\n\n (this.text as IText).setAttribute('text', this._getPageText(this._current));\n };\n\n private _reset() {\n this.removeAllChild(true);\n this._current = 1;\n this._total = this.attribute.total as number;\n this.preHandler = this.nextHandler = this.text = null;\n }\n\n private _getPageText(current: number) {\n const { pageFormatter } = this.attribute;\n\n if (pageFormatter) {\n return isFunction(pageFormatter)\n ? pageFormatter(current, this._total)\n : `${pageFormatter}`.replace('{current}', `${current}`).replace('{total}', `${this._total}`);\n }\n\n return `${current}/${this._total}`;\n }\n\n setTotal(total: number) {\n if (total !== this.attribute.total) {\n this._total = total;\n\n if (this._current !== 1 && this._current <= total) {\n this.setAttributes({ total, defaultCurrent: this._current });\n } else {\n this.setAttribute('total', total);\n }\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function loadSegmentComponent(
|
|
1
|
+
export declare function loadSegmentComponent(): void;
|
package/cjs/segment/register.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
|
|
7
7
|
const vrender_kits_1 = require("@visactor/vrender-kits");
|
|
8
8
|
|
|
9
|
-
function loadSegmentComponent(
|
|
9
|
+
function loadSegmentComponent() {
|
|
10
10
|
(0, vrender_kits_1.registerGroup)(), (0, vrender_kits_1.registerLine)(), (0, vrender_kits_1.registerPolygon)(),
|
|
11
11
|
(0, vrender_kits_1.registerSymbol)();
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/segment/register.ts"],"names":[],"mappings":";;;AAAA,yDAAsG;
|
|
1
|
+
{"version":3,"sources":["../src/segment/register.ts"],"names":[],"mappings":";;;AAAA,yDAAsG;AAEtG,SAAgB,oBAAoB;IAClC,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,8BAAe,GAAE,CAAC;IAClB,IAAA,6BAAc,GAAE,CAAC;AACnB,CAAC;AALD,oDAKC","file":"register.js","sourcesContent":["import { registerGroup, registerLine, registerPolygon, registerSymbol } from '@visactor/vrender-kits';\n\nexport function loadSegmentComponent() {\n registerGroup();\n registerLine();\n registerPolygon();\n registerSymbol();\n}\n"]}
|
package/cjs/segment/segment.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ISymbol } from '@visactor/vrender-core';
|
|
2
2
|
import { AbstractComponent } from '../core/base';
|
|
3
3
|
import type { SegmentAttributes } from './type';
|
|
4
4
|
import type { Point } from '../core/type';
|
|
@@ -7,7 +7,6 @@ export declare class Segment extends AbstractComponent<Required<SegmentAttribute
|
|
|
7
7
|
name: string;
|
|
8
8
|
startSymbol?: ISymbol;
|
|
9
9
|
endSymbol?: ISymbol;
|
|
10
|
-
lines?: ILine[];
|
|
11
10
|
private _startAngle;
|
|
12
11
|
getStartAngle(): number;
|
|
13
12
|
private _endAngle;
|
package/cjs/segment/segment.js
CHANGED
|
@@ -20,7 +20,7 @@ class Segment extends base_1.AbstractComponent {
|
|
|
20
20
|
}
|
|
21
21
|
constructor(attributes, options) {
|
|
22
22
|
super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, Segment.defaultAttributes, attributes)),
|
|
23
|
-
this.name = "segment"
|
|
23
|
+
this.name = "segment";
|
|
24
24
|
}
|
|
25
25
|
render() {
|
|
26
26
|
this.removeAllChild(!0), this._reset();
|
|
@@ -43,7 +43,7 @@ class Segment extends base_1.AbstractComponent {
|
|
|
43
43
|
}));
|
|
44
44
|
line.name = `${this.name}-line`, line.id = this._getNodeId("line" + index), (0,
|
|
45
45
|
vutils_1.isEmpty)(null == state ? void 0 : state.line) || (line.states = (0, vutils_1.isArray)(state.line) ? null !== (_b = state.line[index]) && void 0 !== _b ? _b : state.line[state.line.length - 1] : state.line),
|
|
46
|
-
this.add(line)
|
|
46
|
+
this.add(line);
|
|
47
47
|
}));
|
|
48
48
|
} else {
|
|
49
49
|
let lineCreator = vrender_core_1.graphicCreator.line;
|
|
@@ -55,7 +55,7 @@ class Segment extends base_1.AbstractComponent {
|
|
|
55
55
|
closePath: !1
|
|
56
56
|
}));
|
|
57
57
|
line.name = `${this.name}-line`, line.id = this._getNodeId("line"), (0, vutils_1.isEmpty)(null == state ? void 0 : state.line) || (line.states = [].concat(state.line)[0]),
|
|
58
|
-
this.add(line)
|
|
58
|
+
this.add(line);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
_renderSymbol(attribute, dim) {
|
|
@@ -79,8 +79,6 @@ class Segment extends base_1.AbstractComponent {
|
|
|
79
79
|
strokeBoundsBuffer: 0
|
|
80
80
|
}), style)), symbol.name = `${this.name}-${dim}-symbol`, symbol.id = this._getNodeId(`${dim}-symbol`),
|
|
81
81
|
(0, vutils_1.isEmpty)(null == state ? void 0 : state.symbol) || (symbol.states = state.symbol),
|
|
82
|
-
"start" === dim ? (0, vutils_1.isEmpty)(null == state ? void 0 : state.startSymbol) || (symbol.states = state.startSymbol) : (0,
|
|
83
|
-
vutils_1.isEmpty)(null == state ? void 0 : state.endSymbol) || (symbol.states = state.endSymbol),
|
|
84
82
|
this.add(symbol);
|
|
85
83
|
}
|
|
86
84
|
return symbol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/segment/segment.ts"],"names":[],"mappings":"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","file":"segment.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport { array, flattenArray, isArray, isEmpty, isValidNumber, merge } from '@visactor/vutils';\nimport type { ILine, ISymbol } from '@visactor/vrender-core';\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport type { ILineGraphicWithCornerRadius, SegmentAttributes, SymbolAttributes } from './type';\nimport type { Point } from '../core/type';\nimport type { ComponentOptions } from '../interface';\nimport { loadSegmentComponent } from './register';\n\nloadSegmentComponent();\nexport class Segment extends AbstractComponent<Required<SegmentAttributes>> {\n name = 'segment';\n\n startSymbol?: ISymbol;\n endSymbol?: ISymbol;\n lines?: ILine[] = [];\n // animate?: (startSymbol, endSymbol, lines) => void;\n\n private _startAngle!: number;\n /**\n * 外部获取segment起点正方向\n */\n getStartAngle() {\n return this._startAngle;\n }\n\n private _endAngle!: number;\n /**\n * 外部获取segment终点正方向\n */\n getEndAngle() {\n return this._endAngle;\n }\n\n private _mainSegmentPoints: Point[]; // 组成主线段的点\n getMainSegmentPoints() {\n return this._mainSegmentPoints;\n }\n\n static defaultAttributes: Partial<SegmentAttributes> = {\n visible: true,\n lineStyle: {\n lineWidth: 1,\n stroke: '#000'\n },\n startSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n },\n endSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n }\n };\n\n constructor(attributes: SegmentAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Segment.defaultAttributes, attributes));\n }\n\n protected render() {\n this.removeAllChild(true);\n this._reset();\n const {\n // points,\n startSymbol,\n endSymbol,\n lineStyle,\n state,\n visible = true,\n multiSegment,\n mainSegmentIndex\n } = this.attribute as SegmentAttributes;\n\n if (!visible) {\n return;\n }\n\n // 计算线的起点和终点角度\n // 计算角度的原因:\n // 1. segment symbol的自动旋转提供参数\n // 2. 使用segment时,需要根据line的角度对附加元素进行自动旋转(比如:markLine的标签, markPoint的装饰线)\n this._computeLineAngle();\n\n // 绘制start和end symbol\n const startSymbolShape = this._renderSymbol(startSymbol as SymbolAttributes, 'start');\n const endSymbolShape = this._renderSymbol(endSymbol as SymbolAttributes, 'end');\n\n this.startSymbol = startSymbolShape;\n this.endSymbol = endSymbolShape;\n\n if (multiSegment) {\n const points = [...this.attribute.points];\n if (isValidNumber(mainSegmentIndex)) {\n points[mainSegmentIndex] = this._clipPoints(points[mainSegmentIndex] as Point[]);\n } else {\n const clipPoints = this._clipPoints(flattenArray(points) as Point[]);\n points[0][0] = clipPoints[0];\n (points[points.length - 1] as Point[])[(points[points.length - 1] as Point[]).length - 1] =\n clipPoints[clipPoints.length - 1];\n }\n points.forEach((point: Point[], index) => {\n const line = graphicCreator.line({\n points: point,\n ...(isArray(lineStyle) ? lineStyle[index] ?? lineStyle[lineStyle.length - 1] : lineStyle),\n fill: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line' + index);\n if (!isEmpty(state?.line)) {\n line.states = isArray(state.line) ? state.line[index] ?? state.line[state.line.length - 1] : state.line;\n }\n this.add(line);\n this.lines.push(line);\n });\n } else {\n // 如果配置了cornerRadius, 则绘制polygon, 否则绘制line\n let lineCreator = graphicCreator.line;\n if ((array(lineStyle)[0] as ILineGraphicWithCornerRadius).cornerRadius) {\n lineCreator = graphicCreator.polygon;\n }\n const line = lineCreator({\n points: this._clipPoints(this.attribute.points as Point[]),\n ...array(lineStyle)[0],\n fill: false,\n closePath: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line');\n if (!isEmpty(state?.line)) {\n line.states = [].concat(state.line)[0];\n }\n this.add(line);\n this.lines.push(line);\n }\n\n // if(Segment.animate) {\n // console.log('animate', this.animate)\n // Segment.animate(this.startSymbol, this.endSymbol, this.lines)\n // }\n }\n\n private _renderSymbol(attribute: SymbolAttributes, dim: string): ISymbol | undefined {\n const points = this._getMainSegmentPoints();\n if (!points.length) {\n return;\n }\n\n const { autoRotate = true } = attribute;\n let symbol;\n if (attribute && attribute.visible) {\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const { state } = this.attribute as SegmentAttributes;\n const start = points[0];\n const end = points[points.length - 1];\n const { refX = 0, refY = 0, refAngle = 0, style, symbolType, size = 12 } = attribute;\n let position;\n let rotate;\n if (dim === 'start') {\n position = {\n x:\n start.x +\n (isValidNumber(startAngle) ? refX * Math.cos(startAngle) + refY * Math.cos(startAngle - Math.PI / 2) : 0),\n y:\n start.y +\n (isValidNumber(startAngle) ? refX * Math.sin(startAngle) + refY * Math.sin(startAngle - Math.PI / 2) : 0)\n };\n rotate = startAngle + Math.PI / 2; // @chensiji - 加Math.PI / 2是因为:默认symbol的包围盒垂直于line,所以在做自动旋转时需要在line正方向基础上做90度偏移\n } else {\n position = {\n x:\n end.x + (isValidNumber(endAngle) ? refX * Math.cos(endAngle) + refY * Math.cos(endAngle - Math.PI / 2) : 0),\n y: end.y + (isValidNumber(endAngle) ? refX * Math.sin(endAngle) + refY * Math.sin(endAngle - Math.PI / 2) : 0)\n };\n rotate = endAngle + Math.PI / 2;\n }\n\n symbol = graphicCreator.symbol({\n ...position,\n symbolType: symbolType as string,\n size,\n angle: autoRotate ? rotate + refAngle : 0,\n strokeBoundsBuffer: 0,\n ...style\n });\n symbol.name = `${this.name}-${dim}-symbol`;\n symbol.id = this._getNodeId(`${dim}-symbol`);\n\n // 兼容旧逻辑, state.symbol同时应用到startSymbol和endSymbol\n if (!isEmpty(state?.symbol)) {\n symbol.states = state.symbol;\n }\n\n // 新逻辑, state.startSymbol和state.endSymbol做不同匹配\n if (dim === 'start') {\n if (!isEmpty(state?.startSymbol)) {\n symbol.states = state.startSymbol;\n }\n } else {\n if (!isEmpty(state?.endSymbol)) {\n symbol.states = state.endSymbol;\n }\n }\n\n this.add(symbol);\n }\n return symbol;\n }\n\n private _getMainSegmentPoints(): Point[] {\n if (this._mainSegmentPoints) {\n return this._mainSegmentPoints;\n }\n const { points: originPoints, multiSegment, mainSegmentIndex } = this.attribute as SegmentAttributes;\n\n let points: Point[];\n // 需要做下约束判断\n if (multiSegment) {\n if (isValidNumber(mainSegmentIndex)) {\n points = originPoints[mainSegmentIndex] as Point[];\n } else {\n points = flattenArray(originPoints);\n }\n } else {\n points = originPoints as Point[];\n }\n this._mainSegmentPoints = points;\n\n return points;\n }\n\n private _clipPoints(points: Point[]) {\n const { startSymbol = {} as SegmentAttributes['startSymbol'], endSymbol = {} as SegmentAttributes['endSymbol'] } =\n this.attribute as SegmentAttributes;\n // 通过改变line起点和终点的方式达到symbol在fill为false的情况下,也可以遮盖line的效果\n let pointsAfterClip = points;\n if (startSymbol.visible) {\n const startSize = startSymbol.clip ? startSymbol.size || 10 : 0;\n const pointsStart = {\n x: points[0].x - (startSize / 2) * (Math.cos(this._startAngle) || 0),\n y: points[0].y - (startSize / 2) * (Math.sin(this._startAngle) || 0)\n };\n pointsAfterClip = [pointsStart, ...pointsAfterClip.slice(1)];\n }\n if (endSymbol.visible) {\n const endSize = endSymbol.clip ? endSymbol.size || 10 : 0;\n const pointsEnd = {\n x: points[points.length - 1].x - (endSize / 2) * (Math.cos(this._endAngle) || 0),\n y: points[points.length - 1].y - (endSize / 2) * (Math.sin(this._endAngle) || 0)\n };\n pointsAfterClip = [...pointsAfterClip.slice(0, pointsAfterClip.length - 1), pointsEnd];\n }\n\n return pointsAfterClip;\n }\n\n private _computeLineAngle() {\n const points = this._getMainSegmentPoints();\n if (points.length <= 1) {\n return;\n }\n const start = points[0];\n const startInside = points[1];\n const endInside = points[points.length - 2];\n const end = points[points.length - 1];\n const startVector = [start.x - startInside.x, start.y - startInside.y]; // 起点正方向向量\n const startAngle = Math.atan2(startVector[1], startVector[0]); // 起点正方向角度\n const endVector = [end.x - endInside.x, end.y - endInside.y]; // 终点正方向向量\n const endAngle = Math.atan2(endVector[1], endVector[0]); // 终点正方向角度\n\n this._startAngle = startAngle;\n this._endAngle = endAngle;\n }\n\n private _reset() {\n this.startSymbol = null;\n this.endSymbol = null;\n this._startAngle = null;\n this._endAngle = null;\n this._mainSegmentPoints = null;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/segment/segment.ts"],"names":[],"mappings":"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","file":"segment.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport { array, flattenArray, isArray, isEmpty, isValidNumber, merge } from '@visactor/vutils';\nimport type { ISymbol } from '@visactor/vrender-core';\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport type { ILineGraphicWithCornerRadius, SegmentAttributes, SymbolAttributes } from './type';\nimport type { Point } from '../core/type';\nimport type { ComponentOptions } from '../interface';\nimport { loadSegmentComponent } from './register';\n\nloadSegmentComponent();\nexport class Segment extends AbstractComponent<Required<SegmentAttributes>> {\n name = 'segment';\n\n startSymbol?: ISymbol;\n endSymbol?: ISymbol;\n\n private _startAngle!: number;\n /**\n * 外部获取segment起点正方向\n */\n getStartAngle() {\n return this._startAngle;\n }\n\n private _endAngle!: number;\n /**\n * 外部获取segment终点正方向\n */\n getEndAngle() {\n return this._endAngle;\n }\n\n private _mainSegmentPoints: Point[]; // 组成主线段的点\n getMainSegmentPoints() {\n return this._mainSegmentPoints;\n }\n\n static defaultAttributes: Partial<SegmentAttributes> = {\n visible: true,\n lineStyle: {\n lineWidth: 1,\n stroke: '#000'\n },\n startSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n },\n endSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n }\n };\n\n constructor(attributes: SegmentAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Segment.defaultAttributes, attributes));\n }\n\n protected render() {\n this.removeAllChild(true);\n this._reset();\n const {\n // points,\n startSymbol,\n endSymbol,\n lineStyle,\n state,\n visible = true,\n multiSegment,\n mainSegmentIndex\n } = this.attribute as SegmentAttributes;\n\n if (!visible) {\n return;\n }\n\n // 计算线的起点和终点角度\n // 计算角度的原因:\n // 1. segment symbol的自动旋转提供参数\n // 2. 使用segment时,需要根据line的角度对附加元素进行自动旋转(比如:markLine的标签, markPoint的装饰线)\n this._computeLineAngle();\n\n // 绘制start和end symbol\n const startSymbolShape = this._renderSymbol(startSymbol as SymbolAttributes, 'start');\n const endSymbolShape = this._renderSymbol(endSymbol as SymbolAttributes, 'end');\n\n this.startSymbol = startSymbolShape;\n this.endSymbol = endSymbolShape;\n\n if (multiSegment) {\n const points = [...this.attribute.points];\n if (isValidNumber(mainSegmentIndex)) {\n points[mainSegmentIndex] = this._clipPoints(points[mainSegmentIndex] as Point[]);\n } else {\n const clipPoints = this._clipPoints(flattenArray(points) as Point[]);\n points[0][0] = clipPoints[0];\n (points[points.length - 1] as Point[])[(points[points.length - 1] as Point[]).length - 1] =\n clipPoints[clipPoints.length - 1];\n }\n points.forEach((point: Point[], index) => {\n const line = graphicCreator.line({\n points: point,\n ...(isArray(lineStyle) ? lineStyle[index] ?? lineStyle[lineStyle.length - 1] : lineStyle),\n fill: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line' + index);\n if (!isEmpty(state?.line)) {\n line.states = isArray(state.line) ? state.line[index] ?? state.line[state.line.length - 1] : state.line;\n }\n this.add(line);\n });\n } else {\n // 如果配置了cornerRadius, 则绘制polygon, 否则绘制line\n let lineCreator = graphicCreator.line;\n if ((array(lineStyle)[0] as ILineGraphicWithCornerRadius).cornerRadius) {\n lineCreator = graphicCreator.polygon;\n }\n const line = lineCreator({\n points: this._clipPoints(this.attribute.points as Point[]),\n ...array(lineStyle)[0],\n fill: false,\n closePath: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line');\n if (!isEmpty(state?.line)) {\n line.states = [].concat(state.line)[0];\n }\n this.add(line);\n }\n }\n\n private _renderSymbol(attribute: SymbolAttributes, dim: string): ISymbol | undefined {\n const points = this._getMainSegmentPoints();\n if (!points.length) {\n return;\n }\n\n const { autoRotate = true } = attribute;\n let symbol;\n if (attribute && attribute.visible) {\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const { state } = this.attribute as SegmentAttributes;\n const start = points[0];\n const end = points[points.length - 1];\n const { refX = 0, refY = 0, refAngle = 0, style, symbolType, size = 12 } = attribute;\n let position;\n let rotate;\n if (dim === 'start') {\n position = {\n x:\n start.x +\n (isValidNumber(startAngle) ? refX * Math.cos(startAngle) + refY * Math.cos(startAngle - Math.PI / 2) : 0),\n y:\n start.y +\n (isValidNumber(startAngle) ? refX * Math.sin(startAngle) + refY * Math.sin(startAngle - Math.PI / 2) : 0)\n };\n rotate = startAngle + Math.PI / 2; // @chensiji - 加Math.PI / 2是因为:默认symbol的包围盒垂直于line,所以在做自动旋转时需要在line正方向基础上做90度偏移\n } else {\n position = {\n x:\n end.x + (isValidNumber(endAngle) ? refX * Math.cos(endAngle) + refY * Math.cos(endAngle - Math.PI / 2) : 0),\n y: end.y + (isValidNumber(endAngle) ? refX * Math.sin(endAngle) + refY * Math.sin(endAngle - Math.PI / 2) : 0)\n };\n rotate = endAngle + Math.PI / 2;\n }\n\n symbol = graphicCreator.symbol({\n ...position,\n symbolType: symbolType as string,\n size,\n angle: autoRotate ? rotate + refAngle : 0,\n strokeBoundsBuffer: 0,\n ...style\n });\n symbol.name = `${this.name}-${dim}-symbol`;\n symbol.id = this._getNodeId(`${dim}-symbol`);\n\n if (!isEmpty(state?.symbol)) {\n symbol.states = state.symbol;\n }\n\n this.add(symbol);\n }\n return symbol;\n }\n\n private _getMainSegmentPoints(): Point[] {\n if (this._mainSegmentPoints) {\n return this._mainSegmentPoints;\n }\n const { points: originPoints, multiSegment, mainSegmentIndex } = this.attribute as SegmentAttributes;\n\n let points: Point[];\n // 需要做下约束判断\n if (multiSegment) {\n if (isValidNumber(mainSegmentIndex)) {\n points = originPoints[mainSegmentIndex] as Point[];\n } else {\n points = flattenArray(originPoints);\n }\n } else {\n points = originPoints as Point[];\n }\n this._mainSegmentPoints = points;\n\n return points;\n }\n\n private _clipPoints(points: Point[]) {\n const { startSymbol = {} as SegmentAttributes['startSymbol'], endSymbol = {} as SegmentAttributes['endSymbol'] } =\n this.attribute as SegmentAttributes;\n // 通过改变line起点和终点的方式达到symbol在fill为false的情况下,也可以遮盖line的效果\n let pointsAfterClip = points;\n if (startSymbol.visible) {\n const startSize = startSymbol.clip ? startSymbol.size || 10 : 0;\n const pointsStart = {\n x: points[0].x - (startSize / 2) * (Math.cos(this._startAngle) || 0),\n y: points[0].y - (startSize / 2) * (Math.sin(this._startAngle) || 0)\n };\n pointsAfterClip = [pointsStart, ...pointsAfterClip.slice(1)];\n }\n if (endSymbol.visible) {\n const endSize = endSymbol.clip ? endSymbol.size || 10 : 0;\n const pointsEnd = {\n x: points[points.length - 1].x - (endSize / 2) * (Math.cos(this._endAngle) || 0),\n y: points[points.length - 1].y - (endSize / 2) * (Math.sin(this._endAngle) || 0)\n };\n pointsAfterClip = [...pointsAfterClip.slice(0, pointsAfterClip.length - 1), pointsEnd];\n }\n\n return pointsAfterClip;\n }\n\n private _computeLineAngle() {\n const points = this._getMainSegmentPoints();\n if (points.length <= 1) {\n return;\n }\n const start = points[0];\n const startInside = points[1];\n const endInside = points[points.length - 2];\n const end = points[points.length - 1];\n const startVector = [start.x - startInside.x, start.y - startInside.y]; // 起点正方向向量\n const startAngle = Math.atan2(startVector[1], startVector[0]); // 起点正方向角度\n const endVector = [end.x - endInside.x, end.y - endInside.y]; // 终点正方向向量\n const endAngle = Math.atan2(endVector[1], endVector[0]); // 终点正方向角度\n\n this._startAngle = startAngle;\n this._endAngle = endAngle;\n }\n\n private _reset() {\n this.startSymbol = null;\n this.endSymbol = null;\n this._startAngle = null;\n this._endAngle = null;\n this._mainSegmentPoints = null;\n }\n}\n"]}
|
package/cjs/segment/type.d.ts
CHANGED
|
@@ -22,8 +22,6 @@ export interface SegmentAttributes extends IGroupGraphicAttribute {
|
|
|
22
22
|
state?: {
|
|
23
23
|
line?: State<ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[]>;
|
|
24
24
|
symbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
25
|
-
startSymbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
26
|
-
endSymbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
27
25
|
};
|
|
28
26
|
}
|
|
29
27
|
export interface ILineGraphicWithCornerRadius extends Partial<ILineGraphicAttribute> {
|
package/cjs/segment/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/segment/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ISymbolGraphicAttribute,\n SymbolType\n} from '@visactor/vrender-core';\nimport type { Point, State } from '../core/type';\n\nexport type SymbolAttributes = {\n /** 是否展示 symbol */\n visible: boolean;\n /**\n * symbol 形状,默认为带左右方向的箭头\n */\n symbolType?: SymbolType;\n /**\n * symbol 大小\n */\n size?: number;\n /**\n * 自动旋转,沿着线的方向,默认 true\n */\n autoRotate?: boolean;\n /**\n * symbol 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * symbol 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * symbol 相对默认角度的偏移\n * @description (@chensiji: 默认角度为笛卡尔坐标系y正方向,即默认symbol包围盒的角度为笛卡尔坐标系y正方向, 做自动旋转时, 会在此基础上,将包围盒转换到line平行方向上。)\n */\n refAngle?: number;\n /**\n * symbol 是否clip line,即当symbol fill为false时,line在symbol内部的部分是否展示\n * @defalut false\n */\n clip?: boolean;\n /**\n * symbol 样式配置\n */\n style?: Partial<IGraphicAttribute>;\n};\n\nexport interface SegmentAttributes extends IGroupGraphicAttribute {\n /**\n * 可见性\n * @default true\n */\n visible?: boolean;\n /**\n * 是否对 points 进行多段处理,默认为 false,即直接将所有的点连接成线。\n * 如果需要进行多段处理,需要将 points 属性配置为 Point[][] 类型\n * @default false\n */\n multiSegment?: boolean;\n /**\n * 在 `multiSegment` 属性开启的前提下,用于声明那一段线段用来作为主线段,如果不声明,默认全段为主线段\n */\n mainSegmentIndex?: number;\n points: Point[] | Point[][];\n /** 轴线起始点 symbol 配置 */\n startSymbol?: SymbolAttributes;\n /** 轴线末端 symbol 配置 */\n endSymbol?: SymbolAttributes;\n /**\n * 线样式配置\n */\n lineStyle?: ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[];\n\n state?: {\n line?: State<ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[]>;\n symbol?: State<Partial<ISymbolGraphicAttribute>>;\n
|
|
1
|
+
{"version":3,"sources":["../src/segment/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ISymbolGraphicAttribute,\n SymbolType\n} from '@visactor/vrender-core';\nimport type { Point, State } from '../core/type';\n\nexport type SymbolAttributes = {\n /** 是否展示 symbol */\n visible: boolean;\n /**\n * symbol 形状,默认为带左右方向的箭头\n */\n symbolType?: SymbolType;\n /**\n * symbol 大小\n */\n size?: number;\n /**\n * 自动旋转,沿着线的方向,默认 true\n */\n autoRotate?: boolean;\n /**\n * symbol 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * symbol 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * symbol 相对默认角度的偏移\n * @description (@chensiji: 默认角度为笛卡尔坐标系y正方向,即默认symbol包围盒的角度为笛卡尔坐标系y正方向, 做自动旋转时, 会在此基础上,将包围盒转换到line平行方向上。)\n */\n refAngle?: number;\n /**\n * symbol 是否clip line,即当symbol fill为false时,line在symbol内部的部分是否展示\n * @defalut false\n */\n clip?: boolean;\n /**\n * symbol 样式配置\n */\n style?: Partial<IGraphicAttribute>;\n};\n\nexport interface SegmentAttributes extends IGroupGraphicAttribute {\n /**\n * 可见性\n * @default true\n */\n visible?: boolean;\n /**\n * 是否对 points 进行多段处理,默认为 false,即直接将所有的点连接成线。\n * 如果需要进行多段处理,需要将 points 属性配置为 Point[][] 类型\n * @default false\n */\n multiSegment?: boolean;\n /**\n * 在 `multiSegment` 属性开启的前提下,用于声明那一段线段用来作为主线段,如果不声明,默认全段为主线段\n */\n mainSegmentIndex?: number;\n points: Point[] | Point[][];\n /** 轴线起始点 symbol 配置 */\n startSymbol?: SymbolAttributes;\n /** 轴线末端 symbol 配置 */\n endSymbol?: SymbolAttributes;\n /**\n * 线样式配置\n */\n lineStyle?: ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[];\n\n state?: {\n line?: State<ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[]>;\n symbol?: State<Partial<ISymbolGraphicAttribute>>;\n };\n}\n\nexport interface ILineGraphicWithCornerRadius extends Partial<ILineGraphicAttribute> {\n /**\n * 折现拐角处的圆角配置\n */\n cornerRadius?: number;\n}\n"]}
|
package/cjs/slider/slider.d.ts
CHANGED
|
@@ -92,6 +92,8 @@ export declare class Slider extends AbstractComponent<Required<SliderAttributes>
|
|
|
92
92
|
get endHandler(): ISymbol;
|
|
93
93
|
get tooltipShape(): ISymbol;
|
|
94
94
|
constructor(attributes: SliderAttributes, options?: ComponentOptions);
|
|
95
|
+
protected calculatePosByValue(value: number, pos?: 'start' | 'end'): number;
|
|
96
|
+
protected calculateValueByPos(pos: number): number;
|
|
95
97
|
setValue(value: number | number[]): void;
|
|
96
98
|
render(): void;
|
|
97
99
|
protected _renderRail(container: IGroup): import("@visactor/vrender-core").IRect;
|
package/cjs/slider/slider.js
CHANGED
|
@@ -42,8 +42,9 @@ class Slider extends base_1.AbstractComponent {
|
|
|
42
42
|
}, this._onTooltipUpdate(e), this._dispatchTooltipEvent("sliderTooltipShow"));
|
|
43
43
|
}, this._onTooltipUpdate = e => {
|
|
44
44
|
if (this._isChanging || !this._tooltipState || !this._tooltipState.isActive) return;
|
|
45
|
-
const
|
|
46
|
-
|
|
45
|
+
const railLen = this._isHorizontal ? this._rail.globalAABBBounds.width() : this._rail.globalAABBBounds.height(), pos = (0,
|
|
46
|
+
vutils_1.clamp)(this._isHorizontal ? (e.viewX - this._rail.globalAABBBounds.x1) / railLen : (e.viewY - this._rail.globalAABBBounds.y1) / railLen, 0, 1);
|
|
47
|
+
pos !== this._tooltipState.pos && (this._tooltipState.pos = pos, this._tooltipState.value = this.calculateValueByPos(pos * railLen),
|
|
47
48
|
this._updateTooltip(), this._dispatchTooltipEvent("sliderTooltipUpdate"));
|
|
48
49
|
}, this._onTooltipHide = () => {
|
|
49
50
|
const {tooltip: tooltip} = this.attribute;
|
|
@@ -67,7 +68,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
67
68
|
railLen = railWidth) : (currentPos = e.clientY, delta = currentPos - this._prePos,
|
|
68
69
|
originPos = null === (_a = this._currentHandler) || void 0 === _a ? void 0 : _a.attribute.y,
|
|
69
70
|
railLen = railHeight);
|
|
70
|
-
const newPos = (0, vutils_1.clamp)(originPos + delta, 0, railLen), currentValue = newPos
|
|
71
|
+
const newPos = (0, vutils_1.clamp)(originPos + delta, 0, railLen), currentValue = this.calculateValueByPos(newPos);
|
|
71
72
|
"text" === this._currentHandler.type ? this._updateHandlerText(this._currentHandler, newPos, currentValue) : this._updateHandler(this._currentHandler, newPos, currentValue),
|
|
72
73
|
this._updateTrack(), this._prePos = currentPos, this._dispatchChangeEvent();
|
|
73
74
|
}, this._onHandlerPointerUp = e => {
|
|
@@ -85,7 +86,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
85
86
|
}), this.stage.addEventListener("pointerup", this._onTrackPointerUp), this.stage.addEventListener("pointerupoutside", this._onTrackPointerUp));
|
|
86
87
|
}, this._onTrackPointerMove = e => {
|
|
87
88
|
e.stopPropagation(), this._isChanging = !0;
|
|
88
|
-
const {railWidth: railWidth, railHeight: railHeight, min: min, max: max} = this.attribute;
|
|
89
|
+
const {railWidth: railWidth, railHeight: railHeight, min: min, max: max, inverse: inverse} = this.attribute;
|
|
89
90
|
if (max === min) return;
|
|
90
91
|
const {startHandler: startHandler, endHandler: endHandler} = this._getHandlers();
|
|
91
92
|
let currentPos, trackLen, railLen;
|
|
@@ -94,13 +95,13 @@ class Slider extends base_1.AbstractComponent {
|
|
|
94
95
|
railLen = railHeight);
|
|
95
96
|
const delta = currentPos - this._prePos;
|
|
96
97
|
if (startHandler) {
|
|
97
|
-
const originPos = this._isHorizontal ? startHandler.attribute.x : startHandler.attribute.y, newPos = (0,
|
|
98
|
-
vutils_1.clamp)(originPos + delta,
|
|
98
|
+
const originPos = this._isHorizontal ? startHandler.attribute.x : startHandler.attribute.y, newPos = inverse ? (0,
|
|
99
|
+
vutils_1.clamp)(originPos + delta, trackLen, railLen) : (0, vutils_1.clamp)(originPos + delta, 0, railLen - trackLen), currentValue = this.calculateValueByPos(newPos);
|
|
99
100
|
this._updateHandler(startHandler, newPos, currentValue);
|
|
100
101
|
}
|
|
101
102
|
if (endHandler) {
|
|
102
|
-
const originPos = this._isHorizontal ? endHandler.attribute.x : endHandler.attribute.y, newPos = (0,
|
|
103
|
-
vutils_1.clamp)(originPos + delta,
|
|
103
|
+
const originPos = this._isHorizontal ? endHandler.attribute.x : endHandler.attribute.y, newPos = inverse ? (0,
|
|
104
|
+
vutils_1.clamp)(originPos + delta, 0, railLen - trackLen) : (0, vutils_1.clamp)(originPos + delta, trackLen, railLen), currentValue = this.calculateValueByPos(newPos), startHandlerAttribute = null == startHandler ? void 0 : startHandler.attribute;
|
|
104
105
|
this._updateHandler(endHandler, newPos, currentValue), this._track.setAttributes(this._isHorizontal ? {
|
|
105
106
|
x: Math.min(startHandlerAttribute.x, endHandler.attribute.x),
|
|
106
107
|
width: Math.abs(startHandlerAttribute.x - endHandler.attribute.x)
|
|
@@ -126,7 +127,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
126
127
|
endHandlerPos = null == endHandler ? void 0 : endHandler.attribute.x, railLen = railWidth) : (currentPos = e.viewY - this._rail.globalAABBBounds.y1,
|
|
127
128
|
startHandlerPos = null == startHandler ? void 0 : startHandler.attribute.y, endHandlerPos = null == endHandler ? void 0 : endHandler.attribute.y,
|
|
128
129
|
railLen = railHeight);
|
|
129
|
-
const currentValue = currentPos
|
|
130
|
+
const currentValue = this.calculateValueByPos(currentPos);
|
|
130
131
|
if ((0, vutils_1.isValid)(endHandlerPos)) {
|
|
131
132
|
const updateHandler = Math.abs(currentPos - startHandlerPos) > Math.abs(currentPos - endHandlerPos) ? endHandler : startHandler;
|
|
132
133
|
this._updateHandler(updateHandler, currentPos, currentValue);
|
|
@@ -134,14 +135,22 @@ class Slider extends base_1.AbstractComponent {
|
|
|
134
135
|
this._updateTrack(), this._dispatchChangeEvent();
|
|
135
136
|
};
|
|
136
137
|
}
|
|
138
|
+
calculatePosByValue(value, pos) {
|
|
139
|
+
const {layout: layout, railWidth: railWidth, railHeight: railHeight, min: min, max: max, inverse: inverse} = this.attribute;
|
|
140
|
+
let ratio = 0;
|
|
141
|
+
ratio = min === max ? "start" === pos ? 0 : "end" === pos ? 1 : 0 : (value - min) / (max - min);
|
|
142
|
+
return (inverse ? 1 - ratio : ratio) * ("vertical" === layout ? railHeight : railWidth);
|
|
143
|
+
}
|
|
144
|
+
calculateValueByPos(pos) {
|
|
145
|
+
const {layout: layout, railWidth: railWidth, railHeight: railHeight, min: min, max: max, inverse: inverse} = this.attribute, railLen = "vertical" === layout ? railHeight : railWidth;
|
|
146
|
+
return min + (max - min) * (inverse ? 1 - pos / railLen : pos / railLen);
|
|
147
|
+
}
|
|
137
148
|
setValue(value) {
|
|
138
|
-
const {
|
|
149
|
+
const {min: min, max: max} = this.attribute;
|
|
139
150
|
if (max === min) return;
|
|
140
|
-
const [startValue, endValue] = (0, vutils_1.array)(value), {startHandler: startHandler, endHandler: endHandler} = this._getHandlers()
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
this._updateHandler(endHandler, endPos, endValue);
|
|
144
|
-
}
|
|
151
|
+
const [startValue, endValue] = (0, vutils_1.array)(value), {startHandler: startHandler, endHandler: endHandler} = this._getHandlers();
|
|
152
|
+
startHandler && this._updateHandler(startHandler, this.calculatePosByValue(startValue), startValue),
|
|
153
|
+
endHandler && this._updateHandler(endHandler, this.calculatePosByValue(endValue), endValue),
|
|
145
154
|
this._updateTrack();
|
|
146
155
|
}
|
|
147
156
|
render() {
|
|
@@ -220,29 +229,29 @@ class Slider extends base_1.AbstractComponent {
|
|
|
220
229
|
const {range: range, min: min, max: max, handlerSize: handlerSize = 14, handlerStyle: handlerStyle, handlerText: handlerText, railHeight: railHeight, railWidth: railWidth, slidable: slidable} = this.attribute;
|
|
221
230
|
let {value: value} = this.attribute;
|
|
222
231
|
(0, vutils_1.isNil)(value) && (value = [ min, max ]);
|
|
223
|
-
const handlerTextVisible = handlerText && handlerText.visible, isHorizontal = this._isHorizontal,
|
|
224
|
-
x: isHorizontal ?
|
|
225
|
-
y: isHorizontal ? railHeight / 2 :
|
|
232
|
+
const handlerTextVisible = handlerText && handlerText.visible, isHorizontal = this._isHorizontal, [startValue, endValue] = convertValueToRange(value), startPos = this.calculatePosByValue(startValue, range ? "start" : "end"), startHandler = this._renderHandler(Object.assign({
|
|
233
|
+
x: isHorizontal ? startPos : railWidth / 2,
|
|
234
|
+
y: isHorizontal ? railHeight / 2 : startPos,
|
|
226
235
|
size: handlerSize,
|
|
227
236
|
strokeBoundsBuffer: 0,
|
|
228
237
|
cursor: !1 === slidable ? "default" : getDefaultCursor(isHorizontal)
|
|
229
238
|
}, handlerStyle));
|
|
230
239
|
if (startHandler.name = constant_1.SLIDER_ELEMENT_NAME.startHandler, this._startHandler = startHandler,
|
|
231
|
-
container.add(startHandler), this._currentValue.startPos =
|
|
240
|
+
container.add(startHandler), this._currentValue.startPos = startPos, handlerTextVisible) {
|
|
232
241
|
const startHandlerText = this._renderHandlerText(startValue, range ? "start" : "end");
|
|
233
242
|
startHandlerText.name = constant_1.SLIDER_ELEMENT_NAME.startHandlerText, container.add(startHandlerText),
|
|
234
243
|
this._startHandlerText = startHandlerText;
|
|
235
244
|
}
|
|
236
245
|
if (range) {
|
|
237
|
-
const
|
|
238
|
-
x: isHorizontal ?
|
|
239
|
-
y: isHorizontal ? railHeight / 2 :
|
|
246
|
+
const endPos = this.calculatePosByValue(endValue, "end"), endHandler = this._renderHandler(Object.assign({
|
|
247
|
+
x: isHorizontal ? endPos : railWidth / 2,
|
|
248
|
+
y: isHorizontal ? railHeight / 2 : endPos,
|
|
240
249
|
size: handlerSize,
|
|
241
250
|
strokeBoundsBuffer: 0,
|
|
242
251
|
cursor: !1 === slidable ? "default" : getDefaultCursor(isHorizontal)
|
|
243
252
|
}, handlerStyle));
|
|
244
253
|
if (endHandler.name = constant_1.SLIDER_ELEMENT_NAME.endHandler, this._endHandler = endHandler,
|
|
245
|
-
container.add(endHandler), this._currentValue.endPos =
|
|
254
|
+
container.add(endHandler), this._currentValue.endPos = endPos, handlerTextVisible) {
|
|
246
255
|
const endHandlerText = this._renderHandlerText(endValue, "end");
|
|
247
256
|
endHandlerText.name = constant_1.SLIDER_ELEMENT_NAME.endHandlerText, container.add(endHandlerText),
|
|
248
257
|
this._endHandlerText = endHandlerText;
|
|
@@ -256,7 +265,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
256
265
|
const clampValue = (0, vutils_1.clampRange)(value, min, max);
|
|
257
266
|
startValue = clampValue[0], endValue = clampValue[1];
|
|
258
267
|
} else startValue = min, endValue = (0, vutils_1.clamp)(value, min, max);
|
|
259
|
-
const isHorizontal = this._isHorizontal
|
|
268
|
+
const isHorizontal = this._isHorizontal;
|
|
260
269
|
range || (startValue = min);
|
|
261
270
|
const trackContainer = vrender_core_1.graphicCreator.group({
|
|
262
271
|
x: 0,
|
|
@@ -271,11 +280,11 @@ class Slider extends base_1.AbstractComponent {
|
|
|
271
280
|
const draggableTrack = (0, vutils_1.isObject)(range) && !0 === range.draggableTrack;
|
|
272
281
|
let cursor;
|
|
273
282
|
cursor = !1 === slidable ? "default" : !1 === range || !1 === draggableTrack ? "pointer" : getDefaultCursor(isHorizontal);
|
|
274
|
-
const
|
|
275
|
-
x: isHorizontal ? startPos : 0,
|
|
276
|
-
y: isHorizontal ? 0 : startPos,
|
|
277
|
-
width: isHorizontal ?
|
|
278
|
-
height: isHorizontal ? railHeight :
|
|
283
|
+
const startPos = this.calculatePosByValue(startValue, "start"), endPos = this.calculatePosByValue(endValue, range ? "end" : "start"), track = vrender_core_1.graphicCreator.rect(Object.assign({
|
|
284
|
+
x: isHorizontal ? Math.min(startPos, endPos) : 0,
|
|
285
|
+
y: isHorizontal ? 0 : Math.min(startPos, endPos),
|
|
286
|
+
width: isHorizontal ? Math.abs(endPos - startPos) : railWidth,
|
|
287
|
+
height: isHorizontal ? railHeight : Math.abs(endPos - startPos),
|
|
279
288
|
cursor: cursor
|
|
280
289
|
}, trackStyle));
|
|
281
290
|
track.name = constant_1.SLIDER_ELEMENT_NAME.track, this._track = track, trackContainer.add(track),
|
|
@@ -286,17 +295,17 @@ class Slider extends base_1.AbstractComponent {
|
|
|
286
295
|
}
|
|
287
296
|
_renderHandlerText(value, position) {
|
|
288
297
|
var _a, _b, _c;
|
|
289
|
-
const {align: align,
|
|
298
|
+
const {align: align, handlerSize: handlerSize = 14, handlerText: handlerText = {}, railHeight: railHeight, railWidth: railWidth, slidable: slidable} = this.attribute, isHorizontal = this._isHorizontal, pos = this.calculatePosByValue(value, position), textSpace = null !== (_a = handlerText.space) && void 0 !== _a ? _a : 4, textStyle = {
|
|
290
299
|
text: handlerText.formatter ? handlerText.formatter(value) : value.toFixed(null !== (_b = handlerText.precision) && void 0 !== _b ? _b : 0),
|
|
291
300
|
lineHeight: null === (_c = handlerText.style) || void 0 === _c ? void 0 : _c.lineHeight,
|
|
292
301
|
cursor: !1 === slidable ? "default" : getDefaultCursor(isHorizontal)
|
|
293
302
|
};
|
|
294
303
|
isHorizontal ? "top" === align ? (textStyle.textBaseline = "bottom", textStyle.textAlign = "center",
|
|
295
|
-
textStyle.x =
|
|
296
|
-
textStyle.textAlign = "center", textStyle.x =
|
|
304
|
+
textStyle.x = pos, textStyle.y = (railHeight - handlerSize) / 2 - textSpace) : (textStyle.textBaseline = "top",
|
|
305
|
+
textStyle.textAlign = "center", textStyle.x = pos, textStyle.y = (railHeight + handlerSize) / 2 + textSpace) : "left" === align ? (textStyle.textBaseline = "middle",
|
|
297
306
|
textStyle.textAlign = "end", textStyle.x = (railWidth - handlerSize) / 2 - textSpace,
|
|
298
|
-
textStyle.y =
|
|
299
|
-
textStyle.x = (railWidth + handlerSize) / 2 + textSpace, textStyle.y =
|
|
307
|
+
textStyle.y = pos) : (textStyle.textBaseline = "middle", textStyle.textAlign = "start",
|
|
308
|
+
textStyle.x = (railWidth + handlerSize) / 2 + textSpace, textStyle.y = pos);
|
|
300
309
|
return vrender_core_1.graphicCreator.text(Object.assign(Object.assign({}, textStyle), handlerText.style));
|
|
301
310
|
}
|
|
302
311
|
_renderTooltip() {
|
|
@@ -332,7 +341,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
332
341
|
_updateTooltip() {
|
|
333
342
|
var _a, _b;
|
|
334
343
|
if (!this._tooltipShape && !this._tooltipText || !this._tooltipState) return;
|
|
335
|
-
const
|
|
344
|
+
const {railWidth: railWidth, railHeight: railHeight} = this.attribute, railLen = this._isHorizontal ? railWidth : railHeight, coord = this._tooltipState.pos * railLen, coordKey = this._isHorizontal ? "x" : "y";
|
|
336
345
|
this._tooltipShape && this._tooltipShape.setAttributes({
|
|
337
346
|
visible: !0,
|
|
338
347
|
[coordKey]: coord
|
|
@@ -362,7 +371,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
362
371
|
this._mainContainer.addEventListener("pointermove", this._onTooltipUpdate), this._mainContainer.addEventListener("pointerleave", this._onTooltipHide));
|
|
363
372
|
}
|
|
364
373
|
_updateTrack() {
|
|
365
|
-
const startHandler = this._startHandler, endHandler = this._endHandler;
|
|
374
|
+
const {inverse: inverse, railWidth: railWidth, railHeight: railHeight} = this.attribute, startHandler = this._startHandler, endHandler = this._endHandler;
|
|
366
375
|
if (this._isHorizontal) {
|
|
367
376
|
const startHandlerPos = null == startHandler ? void 0 : startHandler.attribute.x;
|
|
368
377
|
if (endHandler) {
|
|
@@ -371,7 +380,10 @@ class Slider extends base_1.AbstractComponent {
|
|
|
371
380
|
x: Math.min(startHandlerPos, endHandlerPos),
|
|
372
381
|
width: Math.abs(startHandlerPos - endHandlerPos)
|
|
373
382
|
});
|
|
374
|
-
} else this._track.setAttributes({
|
|
383
|
+
} else inverse ? this._track.setAttributes({
|
|
384
|
+
x: startHandlerPos,
|
|
385
|
+
width: railWidth - startHandlerPos
|
|
386
|
+
}) : this._track.setAttributes({
|
|
375
387
|
width: startHandlerPos
|
|
376
388
|
});
|
|
377
389
|
} else {
|
|
@@ -382,7 +394,10 @@ class Slider extends base_1.AbstractComponent {
|
|
|
382
394
|
y: Math.min(startHandlerPos, endHandlerPos),
|
|
383
395
|
height: Math.abs(startHandlerPos - endHandlerPos)
|
|
384
396
|
});
|
|
385
|
-
} else this._track.setAttributes({
|
|
397
|
+
} else inverse ? this._track.setAttributes({
|
|
398
|
+
y: startHandlerPos,
|
|
399
|
+
height: railHeight - startHandlerPos
|
|
400
|
+
}) : this._track.setAttributes({
|
|
386
401
|
height: startHandlerPos
|
|
387
402
|
});
|
|
388
403
|
}
|