@visactor/vchart 1.9.2 → 1.10.0-alpha.0
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/build/es5/index.js +1 -1
- package/build/index.js +80 -51
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/component/axis/interface/spec.d.ts +5 -6
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/indicator/interface.d.ts +5 -5
- package/cjs/component/indicator/interface.js.map +1 -1
- package/cjs/component/label/base-label.d.ts +4 -4
- package/cjs/component/label/interface.d.ts +6 -8
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/util.d.ts +1 -1
- package/cjs/component/label/util.js +1 -8
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/discrete/interface.d.ts +2 -2
- package/cjs/component/legend/discrete/interface.js.map +1 -1
- package/cjs/component/marker/interface.d.ts +6 -6
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/theme.d.ts +1 -1
- package/cjs/component/marker/mark-area/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-area/mark-area.js +15 -10
- package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/theme.d.ts +1 -1
- package/cjs/component/marker/mark-line/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/theme.d.ts +1 -1
- package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
- package/cjs/component/title/interface/spec.d.ts +18 -7
- package/cjs/component/title/interface/spec.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/mark/label.d.ts +2 -2
- package/cjs/mark/label.js.map +1 -1
- package/cjs/mark/text.d.ts +16 -7
- package/cjs/mark/text.js +12 -6
- package/cjs/mark/text.js.map +1 -1
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/dot/interface.d.ts +2 -2
- package/cjs/series/dot/interface.js.map +1 -1
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/funnel/interface.d.ts +6 -4
- package/cjs/series/funnel/interface.js.map +1 -1
- package/cjs/series/line/interface.d.ts +1 -1
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/map/interface.d.ts +2 -5
- package/cjs/series/map/interface.js.map +1 -1
- package/cjs/series/pie/interface.d.ts +3 -2
- package/cjs/series/pie/interface.js.map +1 -1
- package/cjs/series/range-column/interface.d.ts +5 -5
- package/cjs/series/range-column/interface.js.map +1 -1
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/treemap/interface.d.ts +3 -2
- package/cjs/series/treemap/interface.js.map +1 -1
- package/cjs/series/treemap/treemap.js +10 -0
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/word-cloud/interface.d.ts +2 -6
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +16 -7
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/tooltip/line.js.map +1 -1
- package/cjs/typings/visual.d.ts +10 -5
- package/cjs/typings/visual.js.map +1 -1
- package/esm/component/axis/interface/spec.d.ts +5 -6
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/indicator/interface.d.ts +5 -5
- package/esm/component/indicator/interface.js.map +1 -1
- package/esm/component/label/base-label.d.ts +4 -4
- package/esm/component/label/interface.d.ts +6 -8
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/util.d.ts +1 -1
- package/esm/component/label/util.js +1 -8
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/discrete/interface.d.ts +2 -2
- package/esm/component/legend/discrete/interface.js.map +1 -1
- package/esm/component/marker/interface.d.ts +6 -6
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/interface/theme.d.ts +1 -1
- package/esm/component/marker/mark-area/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-area/mark-area.js +15 -9
- package/esm/component/marker/mark-area/mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/interface/theme.d.ts +1 -1
- package/esm/component/marker/mark-line/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/interface/theme.d.ts +1 -1
- package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.js.map +1 -1
- package/esm/component/title/interface/spec.d.ts +18 -7
- package/esm/component/title/interface/spec.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/mark/label.d.ts +2 -2
- package/esm/mark/label.js.map +1 -1
- package/esm/mark/text.d.ts +16 -7
- package/esm/mark/text.js +13 -7
- package/esm/mark/text.js.map +1 -1
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/dot/interface.d.ts +2 -2
- package/esm/series/dot/interface.js.map +1 -1
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/funnel/interface.d.ts +6 -4
- package/esm/series/funnel/interface.js.map +1 -1
- package/esm/series/line/interface.d.ts +1 -1
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/map/interface.d.ts +2 -5
- package/esm/series/map/interface.js.map +1 -1
- package/esm/series/pie/interface.d.ts +3 -2
- package/esm/series/pie/interface.js.map +1 -1
- package/esm/series/range-column/interface.d.ts +5 -5
- package/esm/series/range-column/interface.js.map +1 -1
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/treemap/interface.d.ts +3 -2
- package/esm/series/treemap/interface.js.map +1 -1
- package/esm/series/treemap/treemap.js +8 -0
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/word-cloud/interface.d.ts +2 -6
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/typings/spec/common.d.ts +16 -7
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/tooltip/line.js.map +1 -1
- package/esm/typings/visual.d.ts +10 -5
- package/esm/typings/visual.js.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAG/E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,MAAM,OAAO,SAAU,SAAQ,UAA0B;IAAzD;;QAEE,SAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC;QACnC,SAAI,GAAW,iBAAiB,CAAC,SAAS,CAAC;QAG3C,YAAO,GAAG,WAAW,CAAC;QAEtB,iBAAY,GAAW,YAAY,CAAC,SAAS,CAAC;IAyKhD,CAAC;IApKC,MAAM,CAAC,WAAW,CAAC,SAAc;QAC/B,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE;YAC9D,OAAO;gBACL;oBACE,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;oBACxB,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5C,IAAI,EAAE,iBAAiB,CAAC,SAAS;iBAClC;aACF,CAAC;SACH;QACD,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE;YAC1C,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;gBACvB,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3B,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5C,IAAI,EAAE,iBAAiB,CAAC,SAAS;iBAClC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,sBAAsB;;QAC9B,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAyB,WAAW,EAA/B,eAAe,UAAK,WAAW,EAA/E,uCAAiE,CAAc,CAAC;QAEtF,MAAM,cAAc,GAAmB;YACrC,MAAM,EAAE,IAAI,CAAC,YAAY;YACzB,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,KAAK;YAC5C,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,mCAAI,KAAK;YACrC,WAAW,kBACT,WAAW,EAAE,kBAAkB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,EAC9C,UAAU,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EACxB,SAAS,EAAE,wBAAwB,CAAC,KAAK,CAAC,EAC1C,aAAa,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,IAC3B,eAAe,CACnB;SACF,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,KAAsB,QAAQ,EAAzB,YAAY,UAAK,QAAQ,EAAlD,mBAAuC,CAAW,CAAC;QACzD,IAAI,OAAO,KAAK,KAAK,EAAE;YACrB,cAAc,CAAC,QAAQ,mCAClB,YAAY,KACf,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,GAC1C,CAAC;SACH;aAAM;YACL,cAAc,CAAC,QAAQ,GAAG;gBACxB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,SAA8B,CAAC;IACxC,CAAC;IAES,aAAa;;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC;QAC9C,MAAM,kBAAkB,GAAG,YAAY,IAAI,IAAI,CAAC;QAChD,MAAM,gBAAgB,GAAG,UAAU,IAAI,IAAI,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,KAAK,CAAC;QAE3C,IAAI,KAAa,CAAC;QAClB,IAAI,UAAU,EAAE;YACd,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzF;aAAM,IAAI,kBAAkB,EAAE;YAC7B,KAAK,GAAG,gBAAgB,CACtB,IAAI,EACJ,cAAc,EACd,SAAS,EACR,IAAiC,CAAC,iBAAiB,CACrD,CAAC,CAAC,CAAC,CAAC;SACN;aAAM,IAAI,gBAAgB,EAAE;YAC3B,KAAK,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SACjF;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI;YACrB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBACnD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC/B,CAAC,CAAC,IAAI,CAAC,UAAU;YACnB,CAAC,CAAC,UAAU,CAAC;QAEf,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,IAAI,KAAI,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,CAAA,EAAE;YAC1C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAClF,SAAS,GAAG;gBACV,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,IAAI;gBACP,KAAK,EAAE,IAAI,GAAG,IAAI;gBAClB,MAAM,EAAE,IAAI,GAAG,IAAI;aACpB,CAAC;SACH;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,mCAAI,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,MAAA,MAAA,SAAS,CAAC,WAAW,0CAAE,SAAS,mCAAI,EAAE,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;gBAClC,QAAQ,EAAE,KAAK;gBACf,WAAW,kCACN,SAAS,CAAC,WAAW,KACxB,SAAS,kCACJ,SAAS,KACZ,IAAI,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,0CAAE,YAAY;4BAC7C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;4BAClE,CAAC,CAAE,SAAS,CAAC,IAAY,MAE9B;gBACD,SAAS;gBACT,EAAE,EAAE,IAAI,CAAC,cAAc;gBACvB,EAAE,EAAE,IAAI,CAAC,cAAc;aACxB,CAAC,CAAC;SACJ;IACH,CAAC;IAES,aAAa;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAY,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,IAAI,CAAC,WAAW,EAAE;YACxC,OAAO;SACR;QAED,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAC/F,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAErF,IAAI,OAAO,CAAC;QACZ,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;aAAM,IAAI,mBAAmB,EAAE;YAC9B,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SACtC;QAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE;YACzC,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,mBAAmB;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE;aACtC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;;AA/KM,cAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAInC,iBAAO,GAAG,WAAW,CAAC;AA8K/B,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointCoordinateSpec, IMarkPointSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkPointAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n static specKey = 'markPoint';\n specKey = 'markPoint';\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markPointSpec = chartSpec[this.specKey];\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return [\n {\n spec: markPointSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markPoint\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markPoint\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const { itemContent = {}, itemLine = {} } = this._spec;\n const { text: label = {}, symbol, image, richText, ...restItemContent } = itemContent;\n\n const markPointAttrs: MarkPointAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n clipInRange: this._spec.clip ?? false,\n itemContent: {\n symbolStyle: transformToGraphic(symbol?.style),\n imageStyle: image?.style,\n textStyle: transformLabelAttributes(label),\n richTextStyle: richText?.style,\n ...restItemContent // Tips: 因为网站 demo 上已经透出了 imageStyle richTextStyle 的写法,为了兼容所以这个需要在后面覆盖\n }\n };\n\n const { visible, line = {}, ...restItemLine } = itemLine;\n if (visible !== false) {\n markPointAttrs.itemLine = {\n ...restItemLine,\n visible: true,\n lineStyle: transformToGraphic(line.style)\n };\n } else {\n markPointAttrs.itemLine = {\n visible: false\n };\n }\n\n const markPoint = new MarkPointComponent(markPointAttrs);\n return markPoint as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isXYLayout = 'x' in spec && 'y' in spec;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isXYLayout) {\n point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0];\n } else if (isCoordinateLayout) {\n point = coordinateLayout(\n data,\n relativeSeries,\n autoRange,\n (spec as IMarkPointCoordinateSpec).coordinatesOffset\n )[0];\n } else if (isPositionLayout) {\n point = positionLayout([spec.position], relativeSeries, spec.regionRelative)[0];\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0] && data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip || spec.itemContent?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n if (this._markerComponent) {\n const attribute = this._markerComponent.attribute ?? {};\n const textStyle = attribute.itemContent?.textStyle ?? {};\n this._markerComponent.setAttributes({\n position: point,\n itemContent: {\n ...attribute.itemContent,\n textStyle: {\n ...textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData)\n : (textStyle.text as any) // FIXME: 富文本类型问题\n }\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess && !isXYProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n\n let options;\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n if (options) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":"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","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointCoordinateSpec, IMarkPointSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkPointAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n static specKey = 'markPoint';\n specKey = 'markPoint';\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markPointSpec = chartSpec[this.specKey];\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return [\n {\n spec: markPointSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markPoint\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markPoint\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const { itemContent = {}, itemLine = {} } = this._spec;\n const { text: label = {}, symbol, image, richText, ...restItemContent } = itemContent;\n\n const markPointAttrs: MarkPointAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n clipInRange: this._spec.clip ?? false,\n itemContent: {\n symbolStyle: transformToGraphic(symbol?.style),\n imageStyle: image?.style,\n textStyle: transformLabelAttributes(label),\n richTextStyle: richText?.style,\n ...restItemContent // Tips: 因为网站 demo 上已经透出了 imageStyle richTextStyle 的写法,为了兼容所以这个需要在后面覆盖\n }\n };\n\n const { visible, line = {}, ...restItemLine } = itemLine;\n if (visible !== false) {\n markPointAttrs.itemLine = {\n ...restItemLine,\n visible: true,\n lineStyle: transformToGraphic(line.style)\n };\n } else {\n markPointAttrs.itemLine = {\n visible: false\n };\n }\n\n const markPoint = new MarkPointComponent(markPointAttrs);\n return markPoint as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isXYLayout = 'x' in spec && 'y' in spec;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isXYLayout) {\n point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0];\n } else if (isCoordinateLayout) {\n point = coordinateLayout(\n data,\n relativeSeries,\n autoRange,\n (spec as IMarkPointCoordinateSpec).coordinatesOffset\n )[0];\n } else if (isPositionLayout) {\n point = positionLayout([spec.position], relativeSeries, spec.regionRelative)[0];\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0] && data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip || spec.itemContent?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n if (this._markerComponent) {\n const attribute = this._markerComponent.attribute ?? {};\n const textStyle = attribute.itemContent?.textStyle ?? {};\n this._markerComponent.setAttributes({\n position: point,\n itemContent: {\n ...attribute.itemContent,\n textStyle: {\n ...textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? // type error here will be fixed in components\n (this._spec.itemContent.text.formatMethod(dataPoints, seriesData) as any)\n : textStyle.text\n }\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess && !isXYProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n\n let options;\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n if (options) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import type { IComponent } from '../../interface';
|
|
2
2
|
import type { ITextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';
|
|
3
|
-
import type { IOrientType, IPadding
|
|
3
|
+
import type { IOrientType, IPadding } from '../../../typings';
|
|
4
4
|
import type { IComponentSpec } from '../../base/interface';
|
|
5
|
-
|
|
5
|
+
interface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {
|
|
6
6
|
visible?: boolean;
|
|
7
7
|
orient?: IOrientType;
|
|
8
|
-
text?: string | number | string[] | number[] | IRichTextCharacter[];
|
|
9
|
-
textType?: string;
|
|
10
|
-
subtext?: string | number | string[] | number[] | IRichTextCharacter[];
|
|
11
|
-
subtextType?: string;
|
|
12
8
|
x?: number;
|
|
13
9
|
y?: number;
|
|
14
10
|
width?: number;
|
|
@@ -43,5 +39,20 @@ export interface ITitleSpec extends Omit<IComponentSpec, 'orient'> {
|
|
|
43
39
|
character?: IRichTextCharacter[];
|
|
44
40
|
} & Partial<ITextGraphicAttribute>;
|
|
45
41
|
}
|
|
46
|
-
export type
|
|
42
|
+
export type ITitleTextSpec = {
|
|
43
|
+
textType?: 'text';
|
|
44
|
+
text: string | number | string[] | number[];
|
|
45
|
+
} | {
|
|
46
|
+
textType: 'rich';
|
|
47
|
+
text: IRichTextCharacter[];
|
|
48
|
+
};
|
|
49
|
+
export type ISubTitleTextSpec = {
|
|
50
|
+
subtextType?: 'text';
|
|
51
|
+
subtext?: string | number | string[] | number[];
|
|
52
|
+
} | {
|
|
53
|
+
subtextType?: 'rich';
|
|
54
|
+
subtext?: IRichTextCharacter[];
|
|
55
|
+
};
|
|
56
|
+
export type ITitleSpec = ITitleSpecWithoutText & ITitleTextSpec & ISubTitleTextSpec;
|
|
47
57
|
export type ITitle = IComponent;
|
|
58
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/title/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../interface';\nimport type { ITextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';\nimport type { IOrientType, IPadding
|
|
1
|
+
{"version":3,"sources":["../src/component/title/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../interface';\nimport type { ITextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';\nimport type { IOrientType, IPadding } from '../../../typings';\nimport type { IComponentSpec } from '../../base/interface';\n\ninterface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {\n /**\n * 是否显示标题\n */\n visible?: boolean;\n /**\n * Title位置\n * @default 'top'\n */\n orient?: IOrientType;\n /**\n * 标题左上角x坐标像素值\n */\n x?: number;\n /**\n * 标题左上角y坐标像素值\n */\n y?: number;\n /**\n * 标题宽度\n */\n width?: number;\n /**\n * 标题高度\n */\n height?: number;\n /**\n * 最小宽度,像素值\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 最小高度,像素值\n */\n minHeight?: number;\n /**\n * 最大高度,像素值\n */\n maxHeight?: number;\n /**\n * 标题的边距留白\n */\n innerPadding?: IPadding | number | number[];\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 主标题样式\n */\n textStyle?: {\n width?: number;\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use text & textType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n /**\n * 副标题样式\n */\n subtextStyle?: {\n /** 指定宽度 */\n width?: number;\n /** 指定高度 */\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use subtext & subtextType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n}\n\nexport type ITitleTextSpec =\n | {\n /**\n * 主标题文本类型\n */\n textType?: 'text';\n /**\n * 主标题文本配置\n */\n text: string | number | string[] | number[];\n }\n | {\n /**\n * 主标题文本类型(默认类型为text)\n */\n textType: 'rich';\n /**\n * 主标题富文本内容\n */\n text: IRichTextCharacter[];\n };\n\nexport type ISubTitleTextSpec =\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'text';\n /**\n * 副标题文本内容\n */\n subtext?: string | number | string[] | number[];\n }\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'rich';\n\n /**\n * 副标题富文本内容\n */\n subtext?: IRichTextCharacter[];\n };\n\nexport type ITitleSpec = ITitleSpecWithoutText & ITitleTextSpec & ISubTitleTextSpec;\n\nexport type ITitle = IComponent;\n"]}
|
package/esm/core/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VChart } from './vchart';
|
|
2
2
|
import { Factory } from './factory';
|
|
3
3
|
export { VChart, Factory };
|
|
4
|
-
export declare const version = "1.
|
|
4
|
+
export declare const version = "1.10.0-alpha.0";
|
|
5
5
|
export type { IVChart } from './interface';
|
|
6
6
|
export type { IStateSpec, StateValueType } from '../compile/mark';
|
|
7
7
|
export * from '../typings/spec/common';
|
package/esm/core/index.js
CHANGED
package/esm/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAMxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAK5B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,cAAc,WAAW,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.10.0-alpha.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
|
package/esm/mark/label.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IComponentMark } from './component';
|
|
2
2
|
import type { IMark } from './interface/common';
|
|
3
3
|
import { MarkTypeEnum } from './interface/type';
|
|
4
|
-
import { TextMark } from './text';
|
|
4
|
+
import { ITextMark, TextMark } from './text';
|
|
5
5
|
export declare class LabelMark extends TextMark implements ILabelMark {
|
|
6
6
|
static readonly type = MarkTypeEnum.text;
|
|
7
7
|
static readonly constructorType = MarkTypeEnum.label;
|
|
@@ -16,7 +16,7 @@ export declare class LabelMark extends TextMark implements ILabelMark {
|
|
|
16
16
|
getComponent(): IMark;
|
|
17
17
|
setComponent(component: IMark): void;
|
|
18
18
|
}
|
|
19
|
-
export interface ILabelMark extends
|
|
19
|
+
export interface ILabelMark extends ITextMark {
|
|
20
20
|
skipEncode: boolean;
|
|
21
21
|
getRule: () => string;
|
|
22
22
|
setRule: (rule: string) => void;
|
package/esm/mark/label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI5C,OAAO,
|
|
1
|
+
{"version":3,"sources":["../src/mark/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI5C,OAAO,EAAa,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,OAAO,SAAU,SAAQ,QAAQ;IAAvC;;QAIE,eAAU,GAAG,KAAK,CAAC;IA4BrB,CAAC;IAzBC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,SAAS,CAAC,MAAa;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;IAGD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,SAAgB;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;;AA9Be,cAAI,UAAqB;AACzB,yBAAe,WAAsB;AA6CvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC3D,mBAAmB,EAAE,CAAC;AACxB,CAAC,CAAC","file":"label.js","sourcesContent":["import { registerTextGraphic } from '@visactor/vgrammar-core';\nimport { Factory } from './../core/factory';\nimport type { IComponentMark } from './component';\nimport type { IMark } from './interface/common';\nimport { MarkTypeEnum } from './interface/type';\nimport { ITextMark, TextMark } from './text';\n\nexport class LabelMark extends TextMark implements ILabelMark {\n static readonly type = MarkTypeEnum.text;\n static readonly constructorType = MarkTypeEnum.label;\n\n skipEncode = false;\n\n private _rule: string;\n getRule() {\n return this._rule;\n }\n setRule(rule: string) {\n this._rule = rule;\n }\n\n private _target: IMark;\n getTarget() {\n return this._target;\n }\n setTarget(target: IMark) {\n this._target = target;\n if (!this._rule) {\n this.setRule(target.type);\n }\n }\n\n private _component: IMark;\n getComponent() {\n return this._component;\n }\n setComponent(component: IMark) {\n this._component = component;\n }\n}\n\nexport interface ILabelMark extends ITextMark {\n skipEncode: boolean;\n\n getRule: () => string;\n setRule: (rule: string) => void;\n\n getTarget: () => IMark;\n setTarget: (target: IMark) => void;\n\n getComponent: () => IComponentMark;\n setComponent: (component: IComponentMark) => void;\n}\n\nexport const registerLabelMark = () => {\n Factory.registerMark(LabelMark.constructorType, LabelMark);\n registerTextGraphic();\n};\n"]}
|
package/esm/mark/text.d.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IComposedTextMarkSpec } from '../typings/visual';
|
|
2
2
|
import { BaseMark } from './base/base-mark';
|
|
3
|
-
import type { IMarkRaw, IMarkStyle } from './interface';
|
|
3
|
+
import type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';
|
|
4
4
|
import { MarkTypeEnum } from './interface';
|
|
5
|
-
import
|
|
6
|
-
export type ITextMark = IMarkRaw<
|
|
7
|
-
|
|
5
|
+
import { IMarkSpec } from '../typings/spec/common';
|
|
6
|
+
export type ITextMark = IMarkRaw<IComposedTextMarkSpec> & {
|
|
7
|
+
getTextType: () => 'text' | 'rich';
|
|
8
|
+
};
|
|
9
|
+
export type ITextSpec<T> = IMarkSpec<T> & {
|
|
10
|
+
textType?: 'rich' | 'text';
|
|
11
|
+
};
|
|
12
|
+
export declare class TextMark extends BaseMark<IComposedTextMarkSpec> implements ITextMark {
|
|
8
13
|
static readonly type = MarkTypeEnum.text;
|
|
9
14
|
readonly type = MarkTypeEnum.text;
|
|
10
|
-
protected
|
|
11
|
-
|
|
15
|
+
protected _textType: 'text' | 'rich';
|
|
16
|
+
getTextType(): "text" | "rich";
|
|
17
|
+
constructor(name: string, option: IMarkOption);
|
|
18
|
+
protected _getDefaultStyle(): IMarkStyle<IComposedTextMarkSpec>;
|
|
19
|
+
initStyleWithSpec(spec: ITextSpec<IComposedTextMarkSpec>, key?: string): void;
|
|
20
|
+
compileEncode(): void;
|
|
12
21
|
}
|
|
13
22
|
export declare const registerTextMark: () => void;
|
package/esm/mark/text.js
CHANGED
|
@@ -2,11 +2,14 @@ import { Factory } from "./../core/factory";
|
|
|
2
2
|
|
|
3
3
|
import { BaseMark } from "./base/base-mark";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { registerRichTextGraphic, registerTextGraphic } from "@visactor/vgrammar-core";
|
|
6
6
|
|
|
7
7
|
export class TextMark extends BaseMark {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
getTextType() {
|
|
9
|
+
return this._textType;
|
|
10
|
+
}
|
|
11
|
+
constructor(name, option) {
|
|
12
|
+
super(name, option), this.type = TextMark.type, this._textType = "text";
|
|
10
13
|
}
|
|
11
14
|
_getDefaultStyle() {
|
|
12
15
|
return Object.assign(Object.assign({}, super._getDefaultStyle()), {
|
|
@@ -16,10 +19,13 @@ export class TextMark extends BaseMark {
|
|
|
16
19
|
textConfig: []
|
|
17
20
|
});
|
|
18
21
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
initStyleWithSpec(spec, key) {
|
|
23
|
+
super.initStyleWithSpec(spec, key), spec.textType && (this._textType = spec.textType);
|
|
24
|
+
}
|
|
25
|
+
compileEncode() {
|
|
26
|
+
super.compileEncode(), "rich" === this._textType && this._product.encodeState("group", {
|
|
27
|
+
textType: this._textType
|
|
28
|
+
});
|
|
23
29
|
}
|
|
24
30
|
}
|
|
25
31
|
|
package/esm/mark/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"sources":["../src/mark/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAOvF,MAAM,OAAO,QAAS,SAAQ,QAA+B;IAK3D,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QARb,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEpB,cAAS,GAAoB,MAAM,CAAC;IAO9C,CAAC;IAES,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAE3B,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,EAAE,GACf,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,IAAsC,EAAE,GAAY;QACpE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;SAChC;IACH,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SAClE;IACH,CAAC;;AApCe,aAAI,UAAqB;AAuC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CAAC;IACtB,uBAAuB,EAAE,CAAC;AAC5B,CAAC,CAAC","file":"text.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IComposedTextMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface';\nimport { registerRichTextGraphic, registerTextGraphic } from '@visactor/vgrammar-core';\nimport { IMarkSpec } from '../typings/spec/common';\n\nexport type ITextMark = IMarkRaw<IComposedTextMarkSpec> & { getTextType: () => 'text' | 'rich' };\n\nexport type ITextSpec<T> = IMarkSpec<T> & { textType?: 'rich' | 'text' };\n\nexport class TextMark extends BaseMark<IComposedTextMarkSpec> implements ITextMark {\n static readonly type = MarkTypeEnum.text;\n readonly type = TextMark.type;\n\n protected _textType: 'text' | 'rich' = 'text';\n getTextType() {\n return this._textType;\n }\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n }\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IComposedTextMarkSpec> = {\n ...super._getDefaultStyle(),\n // TODO: 删除后会有显示问题,待排查\n angle: 0,\n textAlign: 'center',\n lineWidth: 0,\n textConfig: []\n };\n return defaultStyle;\n }\n\n initStyleWithSpec(spec: ITextSpec<IComposedTextMarkSpec>, key?: string) {\n super.initStyleWithSpec(spec, key);\n if (spec.textType) {\n this._textType = spec.textType;\n }\n }\n\n compileEncode() {\n super.compileEncode();\n if (this._textType === 'rich') {\n this._product.encodeState('group', { textType: this._textType });\n }\n }\n}\n\nexport const registerTextMark = () => {\n Factory.registerMark(TextMark.type, TextMark);\n registerTextGraphic();\n registerRichTextGraphic();\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/circle-packing/circle-packing.ts"],"names":[],"mappings":"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","file":"circle-packing.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { isNil, mixin } from '@visactor/vutils';\n\nimport type { ICirclePackingOpt } from '../../data/transforms/circle-packing';\nimport type { ICirclePackingSeriesSpec } from './interface';\n\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport { Factory } from '../../core/factory';\nimport type { Datum, IArcMarkSpec, ITextMarkSpec } from '../../typings';\n\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\n\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { circlePackingLayout } from '../../data/transforms/circle-packing';\nimport type { IMark } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport type { IArcMark } from '../../mark/arc';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\nimport { AttributeLevel, DEFAULT_DATA_KEY } from '../../constant';\nimport { DEFAULT_HIERARCHY_DEPTH, DEFAULT_HIERARCHY_ROOT } from '../../constant/hierarchy';\nimport type { CirclePackingNodeElement } from '@visactor/vgrammar-hierarchy';\nimport { flatten } from '../../data/transforms/flatten';\nimport { CirclePackingTooltipHelper } from './tooltip-helper';\nimport type { ITextMark } from '../../mark/text';\nimport { addHierarchyDataKey, initHierarchyKeyMap } from '../../data/transforms/data-key';\nimport { addVChartProperty } from '../../data/transforms/add-property';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { registerScaleInOutAnimation } from '../../animation/config';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { CirclePackingAppearPreset } from './animation';\nimport { registerCirclePackingAnimation } from './animation';\nimport type { IDrillable } from '../../interaction/drill/drillable';\nimport { Drillable } from '../../interaction/drill/drillable';\nimport { registerArcMark } from '../../mark/arc';\nimport { registerTextMark } from '../../mark/text';\nimport { circlePackingSeriesMark } from './constant';\n\nexport class CirclePackingSeries<\n T extends ICirclePackingSeriesSpec = ICirclePackingSeriesSpec\n> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.circlePacking;\n type = SeriesTypeEnum.circlePacking;\n\n static readonly mark: SeriesMarkMap = circlePackingSeriesMark;\n\n // 映射字段\n protected _categoryField!: string;\n protected _valueField!: string;\n // 配置\n private _layoutPadding: number | number[];\n private _circlePacking: IMarkSpec<IArcMarkSpec>;\n private _label: IMarkSpec<ITextMarkSpec>;\n // Mark\n private _circlePackingMark: IArcMark;\n private _labelMark: ITextMark;\n\n // 钻取功能开启\n private _drill?: boolean;\n\n setCategoryField(f: string): string {\n this._categoryField = f;\n return this._categoryField;\n }\n\n getCategoryField() {\n return this._categoryField;\n }\n\n setValueField(f: string): string {\n this._valueField = f;\n return this._valueField;\n }\n\n getValueField() {\n return this._valueField;\n }\n\n getDimensionField() {\n return [this._categoryField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n\n this.setCategoryField(this._spec.categoryField);\n this.setValueField(this._spec.valueField);\n this.setSeriesField(this._spec.seriesField ?? DEFAULT_HIERARCHY_ROOT);\n\n if (this._spec.drill) {\n (this as unknown as IDrillable).initDrillable({\n event: this.event,\n mode: this._option.mode,\n drillField: () => this._spec.drillField ?? DEFAULT_DATA_KEY,\n getRawData: () => this.getRawData()\n });\n }\n\n this._circlePacking = this._spec.circlePacking;\n this._label = this._spec.label;\n this._layoutPadding = this._spec.layoutPadding;\n }\n\n protected initData(): void {\n super.initData();\n\n const rawData = this.getRawData();\n\n if (isNil(rawData)) {\n return;\n }\n\n if (this._spec.drill) {\n // 对原始数据进行上卷下钻筛选\n (this as unknown as IDrillable).initDrillableData(this._dataSet);\n }\n\n // 注册布局算法\n registerDataSetInstanceTransform(this._dataSet, 'circlePackingLayout', circlePackingLayout);\n // 注册扁平化算法\n registerDataSetInstanceTransform(this._dataSet, 'flatten', flatten);\n\n // 布局算法\n rawData.transform({\n type: 'circlePackingLayout',\n options: (): ICirclePackingOpt => {\n return {\n nodeKey: this._categoryField,\n padding: this._layoutPadding,\n includeRoot: false,\n width: this.getLayoutRect().width || 1,\n height: this.getLayoutRect().height || 1\n };\n }\n });\n\n // 布局结果进行扁平化处理\n rawData.transform({\n type: 'flatten',\n options: {\n callback: (node: CirclePackingNodeElement) => {\n if (node.datum) {\n const nodeData = node.datum[node.depth];\n return { ...node, ...nodeData };\n }\n return node;\n }\n }\n });\n }\n\n protected _addDataIndexAndKey() {\n const rawData = this.getRawData();\n if (isNil(rawData?.dataSet)) {\n return;\n }\n // 为原始数据, 添加层级属性\n registerDataSetInstanceTransform(rawData.dataSet, 'addVChartProperty', addVChartProperty);\n rawData.transform({\n type: 'addVChartProperty',\n options: {\n beforeCall: initHierarchyKeyMap.bind(this),\n call: addHierarchyDataKey\n }\n });\n }\n\n initMark(): void {\n this._initCirclePackingMark();\n this._initLabelMark();\n }\n\n initMarkStyle(): void {\n this._initCirclePackingMarkStyle();\n this._initLabelMarkStyle();\n }\n\n private _initCirclePackingMark() {\n if (this._circlePacking?.visible === false) {\n return;\n }\n\n const circlePacking = this._createMark(CirclePackingSeries.mark.circlePacking, {\n isSeriesMark: true,\n customShape: this._spec.circlePacking?.customShape\n }) as IArcMark;\n\n this._circlePackingMark = circlePacking;\n }\n\n private _initCirclePackingMarkStyle() {\n if (isNil(this._circlePackingMark)) {\n return;\n }\n\n this.setMarkStyle(\n this._circlePackingMark,\n {\n x: d => d.x,\n y: d => d.y,\n outerRadius: d => d.radius,\n innerRadius: 0,\n startAngle: 0,\n endAngle: Math.PI * 2,\n fill: this.getColorAttribute(),\n zIndex: d => d.depth\n // Todo 内置根节点和叶节点透明度\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n private _initLabelMark() {\n if (this._label?.visible === false) {\n return;\n }\n const labelMark = this._createMark(CirclePackingSeries.mark.label, {\n isSeriesMark: false\n }) as IArcMark;\n\n this._labelMark = labelMark;\n }\n\n private _initLabelMarkStyle() {\n if (isNil(this._labelMark)) {\n return;\n }\n\n this.setMarkStyle(\n this._labelMark,\n {\n x: d => d.x,\n y: d => d.y,\n text: d => {\n return d.key;\n },\n cursor: 'pointer'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n getStatisticFields() {\n const fields = super.getStatisticFields();\n return fields.concat([\n {\n key: this._categoryField,\n operations: ['values']\n },\n {\n key: this._valueField,\n operations: ['max', 'min']\n },\n {\n key: DEFAULT_HIERARCHY_DEPTH,\n operations: ['max', 'min', 'values']\n },\n {\n key: DEFAULT_HIERARCHY_ROOT,\n operations: ['values']\n }\n ]);\n }\n\n protected initTooltip() {\n this._tooltipHelper = new CirclePackingTooltipHelper(this);\n this._tooltipHelper.updateTooltipSpec();\n this._circlePackingMark && this._tooltipHelper.activeTriggerSet.mark.add(this._circlePackingMark);\n this._labelMark && this._tooltipHelper.activeTriggerSet.mark.add(this._labelMark);\n }\n\n initAnimation(): void {\n const appearPreset = (this._spec.animationAppear as IStateAnimateSpec<CirclePackingAppearPreset>)?.preset;\n\n this.getMarksInType(MarkTypeEnum.arc).forEach(mark => {\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('circlePacking')?.(undefined, appearPreset),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n });\n\n this.getMarksInType(MarkTypeEnum.text).forEach(mark => {\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('scaleInOut')?.(),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n });\n }\n\n initEvent() {\n super.initEvent();\n if (this._spec.drill) {\n (this as unknown as IDrillable).bindDrillEvent();\n }\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n this._rawData.reRunAllTransform();\n }\n\n // make sure this function fast\n protected _noAnimationDataKey(datum: Datum, index: number): unknown | undefined {\n return undefined;\n }\n\n getActiveMarks(): IMark[] {\n return [this._circlePackingMark];\n }\n}\n\nmixin(CirclePackingSeries, Drillable);\n\nexport const registerCirclePackingSeries = () => {\n Factory.registerSeries(CirclePackingSeries.type, CirclePackingSeries);\n registerArcMark();\n registerTextMark();\n registerScaleInOutAnimation();\n registerCirclePackingAnimation();\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/circle-packing/circle-packing.ts"],"names":[],"mappings":"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","file":"circle-packing.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { isNil, mixin } from '@visactor/vutils';\n\nimport type { ICirclePackingOpt } from '../../data/transforms/circle-packing';\nimport type { ICirclePackingSeriesSpec } from './interface';\n\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport { Factory } from '../../core/factory';\nimport type { Datum, IArcMarkSpec, IComposedTextMarkSpec, ITextMarkSpec } from '../../typings';\n\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\n\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { circlePackingLayout } from '../../data/transforms/circle-packing';\nimport type { IMark } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport type { IArcMark } from '../../mark/arc';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\nimport { AttributeLevel, DEFAULT_DATA_KEY } from '../../constant';\nimport { DEFAULT_HIERARCHY_DEPTH, DEFAULT_HIERARCHY_ROOT } from '../../constant/hierarchy';\nimport type { CirclePackingNodeElement } from '@visactor/vgrammar-hierarchy';\nimport { flatten } from '../../data/transforms/flatten';\nimport { CirclePackingTooltipHelper } from './tooltip-helper';\nimport type { ITextMark } from '../../mark/text';\nimport { addHierarchyDataKey, initHierarchyKeyMap } from '../../data/transforms/data-key';\nimport { addVChartProperty } from '../../data/transforms/add-property';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { registerScaleInOutAnimation } from '../../animation/config';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { CirclePackingAppearPreset } from './animation';\nimport { registerCirclePackingAnimation } from './animation';\nimport type { IDrillable } from '../../interaction/drill/drillable';\nimport { Drillable } from '../../interaction/drill/drillable';\nimport { registerArcMark } from '../../mark/arc';\nimport { registerTextMark } from '../../mark/text';\nimport { circlePackingSeriesMark } from './constant';\n\nexport class CirclePackingSeries<\n T extends ICirclePackingSeriesSpec = ICirclePackingSeriesSpec\n> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.circlePacking;\n type = SeriesTypeEnum.circlePacking;\n\n static readonly mark: SeriesMarkMap = circlePackingSeriesMark;\n\n // 映射字段\n protected _categoryField!: string;\n protected _valueField!: string;\n // 配置\n private _layoutPadding: number | number[];\n private _circlePacking: IMarkSpec<IArcMarkSpec>;\n private _label: IMarkSpec<ITextMarkSpec>;\n // Mark\n private _circlePackingMark: IArcMark;\n private _labelMark: ITextMark;\n\n // 钻取功能开启\n private _drill?: boolean;\n\n setCategoryField(f: string): string {\n this._categoryField = f;\n return this._categoryField;\n }\n\n getCategoryField() {\n return this._categoryField;\n }\n\n setValueField(f: string): string {\n this._valueField = f;\n return this._valueField;\n }\n\n getValueField() {\n return this._valueField;\n }\n\n getDimensionField() {\n return [this._categoryField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n\n this.setCategoryField(this._spec.categoryField);\n this.setValueField(this._spec.valueField);\n this.setSeriesField(this._spec.seriesField ?? DEFAULT_HIERARCHY_ROOT);\n\n if (this._spec.drill) {\n (this as unknown as IDrillable).initDrillable({\n event: this.event,\n mode: this._option.mode,\n drillField: () => this._spec.drillField ?? DEFAULT_DATA_KEY,\n getRawData: () => this.getRawData()\n });\n }\n\n this._circlePacking = this._spec.circlePacking;\n this._label = this._spec.label;\n this._layoutPadding = this._spec.layoutPadding;\n }\n\n protected initData(): void {\n super.initData();\n\n const rawData = this.getRawData();\n\n if (isNil(rawData)) {\n return;\n }\n\n if (this._spec.drill) {\n // 对原始数据进行上卷下钻筛选\n (this as unknown as IDrillable).initDrillableData(this._dataSet);\n }\n\n // 注册布局算法\n registerDataSetInstanceTransform(this._dataSet, 'circlePackingLayout', circlePackingLayout);\n // 注册扁平化算法\n registerDataSetInstanceTransform(this._dataSet, 'flatten', flatten);\n\n // 布局算法\n rawData.transform({\n type: 'circlePackingLayout',\n options: (): ICirclePackingOpt => {\n return {\n nodeKey: this._categoryField,\n padding: this._layoutPadding,\n includeRoot: false,\n width: this.getLayoutRect().width || 1,\n height: this.getLayoutRect().height || 1\n };\n }\n });\n\n // 布局结果进行扁平化处理\n rawData.transform({\n type: 'flatten',\n options: {\n callback: (node: CirclePackingNodeElement) => {\n if (node.datum) {\n const nodeData = node.datum[node.depth];\n return { ...node, ...nodeData };\n }\n return node;\n }\n }\n });\n }\n\n protected _addDataIndexAndKey() {\n const rawData = this.getRawData();\n if (isNil(rawData?.dataSet)) {\n return;\n }\n // 为原始数据, 添加层级属性\n registerDataSetInstanceTransform(rawData.dataSet, 'addVChartProperty', addVChartProperty);\n rawData.transform({\n type: 'addVChartProperty',\n options: {\n beforeCall: initHierarchyKeyMap.bind(this),\n call: addHierarchyDataKey\n }\n });\n }\n\n initMark(): void {\n this._initCirclePackingMark();\n this._initLabelMark();\n }\n\n initMarkStyle(): void {\n this._initCirclePackingMarkStyle();\n this._initLabelMarkStyle();\n }\n\n private _initCirclePackingMark() {\n if (this._circlePacking?.visible === false) {\n return;\n }\n\n const circlePacking = this._createMark(CirclePackingSeries.mark.circlePacking, {\n isSeriesMark: true,\n customShape: this._spec.circlePacking?.customShape\n }) as IArcMark;\n\n this._circlePackingMark = circlePacking;\n }\n\n private _initCirclePackingMarkStyle() {\n if (isNil(this._circlePackingMark)) {\n return;\n }\n\n this.setMarkStyle(\n this._circlePackingMark,\n {\n x: d => d.x,\n y: d => d.y,\n outerRadius: d => d.radius,\n innerRadius: 0,\n startAngle: 0,\n endAngle: Math.PI * 2,\n fill: this.getColorAttribute(),\n zIndex: d => d.depth\n // Todo 内置根节点和叶节点透明度\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n private _initLabelMark() {\n if (this._label?.visible === false) {\n return;\n }\n const labelMark = this._createMark(CirclePackingSeries.mark.label, {\n isSeriesMark: false\n }) as ITextMark;\n\n this._labelMark = labelMark;\n }\n\n private _initLabelMarkStyle() {\n if (isNil(this._labelMark)) {\n return;\n }\n\n this.setMarkStyle<IComposedTextMarkSpec>(\n this._labelMark,\n {\n x: d => d.x,\n y: d => d.y,\n text: d => {\n return d.key;\n },\n cursor: 'pointer'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n getStatisticFields() {\n const fields = super.getStatisticFields();\n return fields.concat([\n {\n key: this._categoryField,\n operations: ['values']\n },\n {\n key: this._valueField,\n operations: ['max', 'min']\n },\n {\n key: DEFAULT_HIERARCHY_DEPTH,\n operations: ['max', 'min', 'values']\n },\n {\n key: DEFAULT_HIERARCHY_ROOT,\n operations: ['values']\n }\n ]);\n }\n\n protected initTooltip() {\n this._tooltipHelper = new CirclePackingTooltipHelper(this);\n this._tooltipHelper.updateTooltipSpec();\n this._circlePackingMark && this._tooltipHelper.activeTriggerSet.mark.add(this._circlePackingMark);\n this._labelMark && this._tooltipHelper.activeTriggerSet.mark.add(this._labelMark);\n }\n\n initAnimation(): void {\n const appearPreset = (this._spec.animationAppear as IStateAnimateSpec<CirclePackingAppearPreset>)?.preset;\n\n this.getMarksInType(MarkTypeEnum.arc).forEach(mark => {\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('circlePacking')?.(undefined, appearPreset),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n });\n\n this.getMarksInType(MarkTypeEnum.text).forEach(mark => {\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('scaleInOut')?.(),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n });\n }\n\n initEvent() {\n super.initEvent();\n if (this._spec.drill) {\n (this as unknown as IDrillable).bindDrillEvent();\n }\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n this._rawData.reRunAllTransform();\n }\n\n // make sure this function fast\n protected _noAnimationDataKey(datum: Datum, index: number): unknown | undefined {\n return undefined;\n }\n\n getActiveMarks(): IMark[] {\n return [this._circlePackingMark];\n }\n}\n\nmixin(CirclePackingSeries, Drillable);\n\nexport const registerCirclePackingSeries = () => {\n Factory.registerSeries(CirclePackingSeries.type, CirclePackingSeries);\n registerArcMark();\n registerTextMark();\n registerScaleInOutAnimation();\n registerCirclePackingAnimation();\n};\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { ICartesianSeriesSpec, ICartesianSeriesTheme } from '../cartesian/interface';
|
|
2
|
-
import type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';
|
|
2
|
+
import type { IFormatMethod, IMarkSpec, IMarkTheme } from '../../typings/spec/common';
|
|
3
3
|
import type { ISymbolMarkSpec, IRuleMarkSpec, ITextMarkSpec, ConvertToMarkStyleSpec } from '../../typings/visual';
|
|
4
4
|
import type { SeriesMarkNameEnum } from '../interface/type';
|
|
5
5
|
interface ISequenceLabel {
|
|
6
6
|
visible?: boolean;
|
|
7
|
-
formatMethod?:
|
|
7
|
+
formatMethod?: IFormatMethod<[text: string | string[], datum?: any]>;
|
|
8
8
|
style?: Omit<ConvertToMarkStyleSpec<ITextMarkSpec>, 'visible'>;
|
|
9
9
|
}
|
|
10
10
|
interface ISequenceGrid {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/dot/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec, ICartesianSeriesTheme } from '../cartesian/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, IRuleMarkSpec, ITextMarkSpec, ConvertToMarkStyleSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface/type';\n\ninterface ISequenceLabel {\n visible?: boolean;\n formatMethod?:
|
|
1
|
+
{"version":3,"sources":["../src/series/dot/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec, ICartesianSeriesTheme } from '../cartesian/interface';\nimport type { IFormatMethod, IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, IRuleMarkSpec, ITextMarkSpec, ConvertToMarkStyleSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface/type';\n\ninterface ISequenceLabel {\n visible?: boolean;\n formatMethod?: IFormatMethod<[text: string | string[], datum?: any]>;\n style?: Omit<ConvertToMarkStyleSpec<ITextMarkSpec>, 'visible'>;\n}\n\ninterface ISequenceGrid {\n visible?: boolean;\n background?: {\n fill?: string;\n fillOpacity?: number;\n };\n style?: Omit<ConvertToMarkStyleSpec<IRuleMarkSpec>, 'visible'>;\n}\n\nexport interface IDotSeriesSpec extends ICartesianSeriesSpec {\n /**\n * 系列类型\n */\n type: 'dot';\n\n /**\n * dot series group字段配置\n * @description 用于区分grid、symbol的fill和stroke逻辑。如果未配置,默认按照yField字段处理\n */\n seriesGroupField?: string;\n\n /**\n * dot type 字段配置\n * @description 用于区分dot的fill逻辑。如果未配置,默认按照yField字段处理\n */\n dotTypeField?: string;\n\n /**\n * title 字段配置\n * @description 用于显示title。如果未配置,默认按照yField字段处理\n */\n titleField?: string;\n\n /**\n * subTitle 字段配置\n * @description 用于显示subTitle。如果未配置,默认按照yField字段处理\n */\n subTitleField?: string;\n\n /**\n * @description 高亮series配置\n */\n highLightSeriesGroup?: string;\n\n /**\n * name 字段配置\n * @description 用于标记node name,便于绘制link。\n */\n name: string;\n /**\n * 图元配置\n */\n [SeriesMarkNameEnum.dot]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 标题\n */\n [SeriesMarkNameEnum.title]?: ISequenceLabel;\n /**\n * 标识符\n */\n [SeriesMarkNameEnum.symbol]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 具体信息\n */\n [SeriesMarkNameEnum.subTitle]?: ISequenceLabel;\n /**\n * 时间线\n */\n [SeriesMarkNameEnum.grid]?: ISequenceGrid;\n /**\n * dot 系列的左边距(主要用于放置title和subTitle)\n */\n leftAppendPadding?: number;\n /**\n * dot 系列的可视高度\n */\n clipHeight?: number;\n}\n\nexport interface IDotSeriesTheme extends ICartesianSeriesTheme {\n [SeriesMarkNameEnum.dot]?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n [SeriesMarkNameEnum.symbol]?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n [SeriesMarkNameEnum.title]?: ISequenceLabel;\n [SeriesMarkNameEnum.subTitle]?: ISequenceLabel;\n}\n"]}
|