@visactor/vchart 1.13.21-alpha.0 → 1.13.21-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +314 -327
  3. package/build/index.js +460 -468
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/index.d.ts +2 -2
  7. package/cjs/chart/index.js +7 -2
  8. package/cjs/chart/index.js.map +1 -1
  9. package/cjs/chart/sankey/sankey-transformer.js +1 -1
  10. package/cjs/chart/sankey/sankey-transformer.js.map +1 -1
  11. package/cjs/constant/funnel.js +1 -2
  12. package/cjs/constant/sunburst.js +2 -1
  13. package/cjs/core/index.d.ts +1 -1
  14. package/cjs/core/index.js +1 -1
  15. package/cjs/core/index.js.map +1 -1
  16. package/cjs/core/interface.js +1 -2
  17. package/cjs/core/vchart.d.ts +0 -2
  18. package/cjs/core/vchart.js +2 -4
  19. package/cjs/core/vchart.js.map +1 -1
  20. package/cjs/data/transforms/sankey.d.ts +0 -2
  21. package/cjs/data/transforms/sankey.js +1 -2
  22. package/cjs/data/transforms/sankey.js.map +1 -1
  23. package/cjs/index.d.ts +2 -0
  24. package/cjs/index.js +2 -1
  25. package/cjs/index.js.map +1 -1
  26. package/cjs/mark/index.d.ts +3 -2
  27. package/cjs/mark/index.js +15 -1
  28. package/cjs/mark/index.js.map +1 -1
  29. package/cjs/plugin/chart/plugin-service.d.ts +0 -1
  30. package/cjs/plugin/chart/plugin-service.js +0 -3
  31. package/cjs/plugin/chart/plugin-service.js.map +1 -1
  32. package/cjs/plugin/chart/scroll/scroll.d.ts +2 -16
  33. package/cjs/plugin/chart/scroll/scroll.js +23 -98
  34. package/cjs/plugin/chart/scroll/scroll.js.map +1 -1
  35. package/cjs/series/sankey/interface.d.ts +0 -3
  36. package/cjs/series/sankey/interface.js.map +1 -1
  37. package/cjs/series/sankey/sankey.d.ts +7 -7
  38. package/cjs/series/sankey/sankey.js +167 -165
  39. package/cjs/series/sankey/sankey.js.map +1 -1
  40. package/esm/chart/index.d.ts +2 -2
  41. package/esm/chart/index.js +2 -2
  42. package/esm/chart/index.js.map +1 -1
  43. package/esm/chart/sankey/sankey-transformer.js +1 -1
  44. package/esm/chart/sankey/sankey-transformer.js.map +1 -1
  45. package/esm/constant/funnel.js +1 -2
  46. package/esm/constant/sunburst.js +2 -1
  47. package/esm/core/index.d.ts +1 -1
  48. package/esm/core/index.js +1 -1
  49. package/esm/core/index.js.map +1 -1
  50. package/esm/core/interface.js +1 -2
  51. package/esm/core/vchart.d.ts +0 -2
  52. package/esm/core/vchart.js +2 -4
  53. package/esm/core/vchart.js.map +1 -1
  54. package/esm/data/transforms/sankey.d.ts +0 -2
  55. package/esm/data/transforms/sankey.js +1 -2
  56. package/esm/data/transforms/sankey.js.map +1 -1
  57. package/esm/index.d.ts +2 -0
  58. package/esm/index.js +4 -0
  59. package/esm/index.js.map +1 -1
  60. package/esm/mark/index.d.ts +3 -2
  61. package/esm/mark/index.js +4 -2
  62. package/esm/mark/index.js.map +1 -1
  63. package/esm/plugin/chart/plugin-service.d.ts +0 -1
  64. package/esm/plugin/chart/plugin-service.js +0 -3
  65. package/esm/plugin/chart/plugin-service.js.map +1 -1
  66. package/esm/plugin/chart/scroll/scroll.d.ts +2 -16
  67. package/esm/plugin/chart/scroll/scroll.js +23 -102
  68. package/esm/plugin/chart/scroll/scroll.js.map +1 -1
  69. package/esm/series/sankey/interface.d.ts +0 -3
  70. package/esm/series/sankey/interface.js.map +1 -1
  71. package/esm/series/sankey/sankey.d.ts +7 -7
  72. package/esm/series/sankey/sankey.js +166 -164
  73. package/esm/series/sankey/sankey.js.map +1 -1
  74. package/package.json +4 -4
package/cjs/index.d.ts CHANGED
@@ -18,3 +18,5 @@ export * from './plugin/other';
18
18
  export * from './vrender-tools';
19
19
  export * from './util/data';
20
20
  export * from './util/spec/transform';
21
+ export * from './constant/attribute';
22
+ export * from './data/register';
package/cjs/index.js CHANGED
@@ -30,5 +30,6 @@ __exportStar(require("./env"), exports), __exportStar(require("./event"), export
30
30
  __exportStar(require("./plugin/chart"), exports), __exportStar(require("./plugin/components/tooltip-handler"), exports),
31
31
  __exportStar(require("./plugin/components/axis-sync"), exports), __exportStar(require("./plugin/other"), exports),
32
32
  __exportStar(require("./vrender-tools"), exports), __exportStar(require("./util/data"), exports),
33
- __exportStar(require("./util/spec/transform"), exports);
33
+ __exportStar(require("./util/spec/transform"), exports), __exportStar(require("./constant/attribute"), exports),
34
+ __exportStar(require("./data/register"), exports);
34
35
  //# sourceMappingURL=index.js.map
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAAsC;AAEtC,kBAAe,mBAAM,CAAC;AAEtB,yCAAuB;AAGvB,0CAAwB;AACxB,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,2CAAyB;AACzB,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,wCAAsB;AACtB,0CAAwB;AAExB,iDAA+B;AAC/B,sEAAoD;AACpD,gEAA8C;AAC9C,iDAA+B;AAC/B,kDAAgC;AAEhC,8CAA4B;AAC5B,wDAAsC","file":"index.js","sourcesContent":["import { VChart } from './vchart-all';\n\nexport default VChart;\n\nexport * from './core';\n\n// chart model for extension\nexport * from './chart';\nexport * from './chart/base';\nexport * from './chart/cartesian';\nexport * from './chart/common';\nexport * from './series';\nexport * from './mark';\nexport * from './component';\nexport * from './layout';\nexport * from './env';\nexport * from './event';\n// plugin路径太深,如果直接引用,会导致tree-shaking失效\nexport * from './plugin/chart';\nexport * from './plugin/components/tooltip-handler';\nexport * from './plugin/components/axis-sync';\nexport * from './plugin/other';\nexport * from './vrender-tools';\n// util\nexport * from './util/data';\nexport * from './util/spec/transform';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAAsC;AAEtC,kBAAe,mBAAM,CAAC;AAEtB,yCAAuB;AAGvB,0CAAwB;AACxB,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,2CAAyB;AACzB,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,wCAAsB;AACtB,0CAAwB;AAExB,iDAA+B;AAC/B,sEAAoD;AACpD,gEAA8C;AAC9C,iDAA+B;AAC/B,kDAAgC;AAEhC,8CAA4B;AAC5B,wDAAsC;AAEtC,uDAAqC;AACrC,kDAAgC","file":"index.js","sourcesContent":["import { VChart } from './vchart-all';\n\nexport default VChart;\n\nexport * from './core';\n\n// chart model for extension\nexport * from './chart';\nexport * from './chart/base';\nexport * from './chart/cartesian';\nexport * from './chart/common';\nexport * from './series';\nexport * from './mark';\nexport * from './component';\nexport * from './layout';\nexport * from './env';\nexport * from './event';\n// plugin路径太深,如果直接引用,会导致tree-shaking失效\nexport * from './plugin/chart';\nexport * from './plugin/components/tooltip-handler';\nexport * from './plugin/components/axis-sync';\nexport * from './plugin/other';\nexport * from './vrender-tools';\n// util\nexport * from './util/data';\nexport * from './util/spec/transform';\n\nexport * from './constant/attribute';\nexport * from './data/register';\n"]}
@@ -10,12 +10,13 @@ import { PathMark, registerPathMark } from './path';
10
10
  import { ArcMark, registerArcMark } from './arc';
11
11
  import { Arc3dMark, registerArc3dMark } from './arc-3d';
12
12
  import { ComponentMark, registerComponentMark } from './component';
13
+ import { LinkPathMark, registerLinkPathMark } from './link-path';
13
14
  import { RippleMark, registerRippleMark } from './ripple';
14
15
  import { BaseMark } from './base';
15
16
  import { PolygonMark, registerPolygonMark } from './polygon/polygon';
16
17
  import { Pyramid3dMark, registerPyramid3dMark } from './polygon/pyramid-3d';
17
18
  import { ImageMark, registerImageMark } from './image';
18
19
  export type { IBoxPlotMarkSpec, ILineMarkSpec, ISymbolMarkSpec, IGroupMarkSpec, IRuleMarkSpec, ITextMarkSpec, IAreaMarkSpec, IRect3dMarkSpec, IRectMarkSpec, IPathMarkSpec, IArcMarkSpec, IArc3dMarkSpec, ICommonSpec, IPolygonMarkSpec, IPyramid3dMarkSpec, ILinkPathMarkSpec, IRippleMarkSpec, ICellMarkSpec, ILiquidMarkSpec, ConvertToMarkStyleSpec } from '../typings/visual';
19
- export { LineMark, SymbolMark, GroupMark, RuleMark, TextMark, AreaMark, Rect3dMark, RectMark, PathMark, Arc3dMark, ArcMark, ComponentMark, PolygonMark, Pyramid3dMark, RippleMark, ImageMark, BaseMark };
20
- export { registerLineMark, registerSymbolMark, registerGroupMark, registerRuleMark, registerTextMark, registerAreaMark, registerRectMark, registerRect3dMark, registerPathMark, registerArcMark, registerArc3dMark, registerPolygonMark, registerPyramid3dMark, registerRippleMark, registerImageMark, registerComponentMark };
20
+ export { LineMark, SymbolMark, GroupMark, RuleMark, TextMark, AreaMark, Rect3dMark, RectMark, PathMark, Arc3dMark, ArcMark, ComponentMark, PolygonMark, Pyramid3dMark, RippleMark, ImageMark, BaseMark, LinkPathMark };
21
+ export { registerLineMark, registerSymbolMark, registerGroupMark, registerRuleMark, registerTextMark, registerAreaMark, registerRectMark, registerRect3dMark, registerPathMark, registerArcMark, registerArc3dMark, registerPolygonMark, registerPyramid3dMark, registerRippleMark, registerImageMark, registerComponentMark, registerLinkPathMark };
21
22
  export declare const registerAllMarks: () => void;
package/cjs/mark/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.registerAllMarks = exports.registerComponentMark = exports.registerImageMark = exports.registerRippleMark = exports.registerPyramid3dMark = exports.registerPolygonMark = exports.registerArc3dMark = exports.registerArcMark = exports.registerPathMark = exports.registerRect3dMark = exports.registerRectMark = exports.registerAreaMark = exports.registerTextMark = exports.registerRuleMark = exports.registerGroupMark = exports.registerSymbolMark = exports.registerLineMark = exports.BaseMark = exports.ImageMark = exports.RippleMark = exports.Pyramid3dMark = exports.PolygonMark = exports.ComponentMark = exports.ArcMark = exports.Arc3dMark = exports.PathMark = exports.RectMark = exports.Rect3dMark = exports.AreaMark = exports.TextMark = exports.RuleMark = exports.GroupMark = exports.SymbolMark = exports.LineMark = void 0;
5
+ }), exports.registerAllMarks = exports.registerLinkPathMark = exports.registerComponentMark = exports.registerImageMark = exports.registerRippleMark = exports.registerPyramid3dMark = exports.registerPolygonMark = exports.registerArc3dMark = exports.registerArcMark = exports.registerPathMark = exports.registerRect3dMark = exports.registerRectMark = exports.registerAreaMark = exports.registerTextMark = exports.registerRuleMark = exports.registerGroupMark = exports.registerSymbolMark = exports.registerLineMark = exports.LinkPathMark = exports.BaseMark = exports.ImageMark = exports.RippleMark = exports.Pyramid3dMark = exports.PolygonMark = exports.ComponentMark = exports.ArcMark = exports.Arc3dMark = exports.PathMark = exports.RectMark = exports.Rect3dMark = exports.AreaMark = exports.TextMark = exports.RuleMark = exports.GroupMark = exports.SymbolMark = exports.LineMark = void 0;
6
6
 
7
7
  const line_1 = require("./line");
8
8
 
@@ -172,6 +172,20 @@ Object.defineProperty(exports, "ComponentMark", {
172
172
  }
173
173
  });
174
174
 
175
+ const link_path_1 = require("./link-path");
176
+
177
+ Object.defineProperty(exports, "LinkPathMark", {
178
+ enumerable: !0,
179
+ get: function() {
180
+ return link_path_1.LinkPathMark;
181
+ }
182
+ }), Object.defineProperty(exports, "registerLinkPathMark", {
183
+ enumerable: !0,
184
+ get: function() {
185
+ return link_path_1.registerLinkPathMark;
186
+ }
187
+ });
188
+
175
189
  const ripple_1 = require("./ripple");
176
190
 
177
191
  Object.defineProperty(exports, "RippleMark", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/index.ts"],"names":[],"mappings":";;;AAGA,iCAAoD;AA8ClD,yFA9CO,eAAQ,OA8CP;AAoBR,iGAlEiB,uBAAgB,OAkEjB;AAjElB,qCAA0D;AA8CxD,2FA9CO,mBAAU,OA8CP;AAoBV,mGAlEmB,2BAAkB,OAkEnB;AAjEpB,mCAAuD;AA8CrD,0FA9CO,iBAAS,OA8CP;AAoBT,kGAlEkB,yBAAiB,OAkElB;AAjEnB,iCAAoD;AA8ClD,yFA9CO,eAAQ,OA8CP;AAoBR,iGAlEiB,uBAAgB,OAkEjB;AAjElB,iCAAoD;AA8ClD,yFA9CO,eAAQ,OA8CP;AAoBR,iGAlEiB,uBAAgB,OAkEjB;AAjElB,iCAAoD;AA8ClD,yFA9CO,eAAQ,OA8CP;AAoBR,iGAlEiB,uBAAgB,OAkEjB;AAjElB,iCAAoD;AA+ClD,yFA/CO,eAAQ,OA+CP;AAmBR,iGAlEiB,uBAAgB,OAkEjB;AAjElB,uCAA2D;AA6CzD,2FA7CO,oBAAU,OA6CP;AAqBV,mGAlEmB,4BAAkB,OAkEnB;AAjEpB,iCAAoD;AA8ClD,yFA9CO,eAAQ,OA8CP;AAoBR,iGAlEiB,uBAAgB,OAkEjB;AAjElB,+BAAiD;AA+C/C,wFA/CO,aAAO,OA+CP;AAmBP,gGAlEgB,qBAAe,OAkEhB;AAjEjB,qCAAwD;AA6CtD,0FA7CO,kBAAS,OA6CP;AAqBT,kGAlEkB,0BAAiB,OAkElB;AAjEnB,2CAAmE;AA8CjE,8FA9CO,yBAAa,OA8CP;AAwBb,sGAtEsB,iCAAqB,OAsEtB;AApEvB,qCAA0D;AA+CxD,2FA/CO,mBAAU,OA+CP;AAmBV,mGAlEmB,2BAAkB,OAkEnB;AAhEpB,iCAAkC;AA+ChC,yFA/CO,eAAQ,OA+CP;AA9CV,+CAAqE;AA0CnE,4FA1CO,qBAAW,OA0CP;AAmBX,oGA7DoB,6BAAmB,OA6DpB;AA5DrB,qDAA4E;AA0C1E,8FA1CO,0BAAa,OA0CP;AAmBb,sGA7DsB,kCAAqB,OA6DtB;AA5DvB,mCAAuD;AA2CrD,0FA3CO,iBAAS,OA2CP;AAmBT,kGA9DkB,yBAAiB,OA8DlB;AAIZ,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAA,yBAAiB,GAAE,CAAC;IACpB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,2BAAkB,GAAE,CAAC;IACrB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,qBAAe,GAAE,CAAC;IAClB,IAAA,6BAAmB,GAAE,CAAC;IACtB,IAAA,yBAAiB,GAAE,CAAC;IACpB,IAAA,2BAAkB,GAAE,CAAC;IACrB,IAAA,iCAAqB,GAAE,CAAC;IACxB,IAAA,0BAAiB,GAAE,CAAC;IACpB,IAAA,4BAAkB,GAAE,CAAC;IACrB,IAAA,kCAAqB,GAAE,CAAC;AAC1B,CAAC,CAAC;AAjBW,QAAA,gBAAgB,oBAiB3B","file":"index.js","sourcesContent":["/**\n * @description export all mark modules\n */\nimport { LineMark, registerLineMark } from './line';\nimport { SymbolMark, registerSymbolMark } from './symbol';\nimport { GroupMark, registerGroupMark } from './group';\nimport { RuleMark, registerRuleMark } from './rule';\nimport { TextMark, registerTextMark } from './text';\nimport { AreaMark, registerAreaMark } from './area';\nimport { RectMark, registerRectMark } from './rect';\nimport { Rect3dMark, registerRect3dMark } from './rect-3d';\nimport { PathMark, registerPathMark } from './path';\nimport { ArcMark, registerArcMark } from './arc';\nimport { Arc3dMark, registerArc3dMark } from './arc-3d';\nimport { ComponentMark, registerComponentMark } from './component';\nimport { LinkPathMark, registerLinkPathMark } from './link-path';\nimport { RippleMark, registerRippleMark } from './ripple';\nimport { CellMark, registerCellMark } from './cell';\nimport { BaseMark } from './base';\nimport { PolygonMark, registerPolygonMark } from './polygon/polygon';\nimport { Pyramid3dMark, registerPyramid3dMark } from './polygon/pyramid-3d';\nimport { ImageMark, registerImageMark } from './image';\nimport { LiquidMark, registerLiquidMark } from './liquid';\nimport { BoxPlotMark, registerBoxPlotMark } from './box-plot';\n\nexport type {\n IBoxPlotMarkSpec,\n ILineMarkSpec,\n ISymbolMarkSpec,\n IGroupMarkSpec,\n IRuleMarkSpec,\n ITextMarkSpec,\n IAreaMarkSpec,\n IRect3dMarkSpec,\n IRectMarkSpec,\n IPathMarkSpec,\n IArcMarkSpec,\n IArc3dMarkSpec,\n ICommonSpec,\n IPolygonMarkSpec,\n IPyramid3dMarkSpec,\n ILinkPathMarkSpec,\n IRippleMarkSpec,\n ICellMarkSpec,\n ILiquidMarkSpec,\n ConvertToMarkStyleSpec\n} from '../typings/visual';\n\nexport {\n LineMark,\n SymbolMark,\n GroupMark,\n RuleMark,\n TextMark,\n AreaMark,\n Rect3dMark,\n RectMark,\n PathMark,\n Arc3dMark,\n ArcMark,\n ComponentMark,\n PolygonMark,\n Pyramid3dMark,\n RippleMark,\n ImageMark,\n BaseMark\n};\n\nexport {\n registerLineMark,\n registerSymbolMark,\n registerGroupMark,\n registerRuleMark,\n registerTextMark,\n registerAreaMark,\n registerRectMark,\n registerRect3dMark,\n registerPathMark,\n registerArcMark,\n registerArc3dMark,\n registerPolygonMark,\n registerPyramid3dMark,\n registerRippleMark,\n registerImageMark,\n registerComponentMark\n};\n\nexport const registerAllMarks = () => {\n registerGroupMark();\n registerLineMark();\n registerSymbolMark();\n registerRuleMark();\n registerTextMark();\n registerAreaMark();\n registerRectMark();\n registerPathMark();\n registerArcMark();\n registerPolygonMark();\n registerImageMark();\n registerRippleMark();\n registerComponentMark();\n registerArc3dMark();\n registerRect3dMark();\n registerPyramid3dMark();\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/index.ts"],"names":[],"mappings":";;;AAGA,iCAAoD;AAgDlD,yFAhDO,eAAQ,OAgDP;AAqBR,iGArEiB,uBAAgB,OAqEjB;AApElB,qCAA0D;AAgDxD,2FAhDO,mBAAU,OAgDP;AAqBV,mGArEmB,2BAAkB,OAqEnB;AApEpB,mCAAuD;AAgDrD,0FAhDO,iBAAS,OAgDP;AAqBT,kGArEkB,yBAAiB,OAqElB;AApEnB,iCAAoD;AAgDlD,yFAhDO,eAAQ,OAgDP;AAqBR,iGArEiB,uBAAgB,OAqEjB;AApElB,iCAAoD;AAgDlD,yFAhDO,eAAQ,OAgDP;AAqBR,iGArEiB,uBAAgB,OAqEjB;AApElB,iCAAoD;AAgDlD,yFAhDO,eAAQ,OAgDP;AAqBR,iGArEiB,uBAAgB,OAqEjB;AApElB,iCAAoD;AAiDlD,yFAjDO,eAAQ,OAiDP;AAoBR,iGArEiB,uBAAgB,OAqEjB;AApElB,uCAA2D;AA+CzD,2FA/CO,oBAAU,OA+CP;AAsBV,mGArEmB,4BAAkB,OAqEnB;AApEpB,iCAAoD;AAgDlD,yFAhDO,eAAQ,OAgDP;AAqBR,iGArEiB,uBAAgB,OAqEjB;AApElB,+BAAiD;AAiD/C,wFAjDO,aAAO,OAiDP;AAoBP,gGArEgB,qBAAe,OAqEhB;AApEjB,qCAAwD;AA+CtD,0FA/CO,kBAAS,OA+CP;AAsBT,kGArEkB,0BAAiB,OAqElB;AApEnB,2CAAmE;AAgDjE,8FAhDO,yBAAa,OAgDP;AAyBb,sGAzEsB,iCAAqB,OAyEtB;AAxEvB,2CAAiE;AAqD/D,6FArDO,wBAAY,OAqDP;AAoBZ,qGAzEqB,gCAAoB,OAyErB;AAxEtB,qCAA0D;AAiDxD,2FAjDO,mBAAU,OAiDP;AAoBV,mGArEmB,2BAAkB,OAqEnB;AAnEpB,iCAAkC;AAiDhC,yFAjDO,eAAQ,OAiDP;AAhDV,+CAAqE;AA4CnE,4FA5CO,qBAAW,OA4CP;AAoBX,oGAhEoB,6BAAmB,OAgEpB;AA/DrB,qDAA4E;AA4C1E,8FA5CO,0BAAa,OA4CP;AAoBb,sGAhEsB,kCAAqB,OAgEtB;AA/DvB,mCAAuD;AA6CrD,0FA7CO,iBAAS,OA6CP;AAoBT,kGAjEkB,yBAAiB,OAiElB;AAKZ,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAA,yBAAiB,GAAE,CAAC;IACpB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,2BAAkB,GAAE,CAAC;IACrB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,uBAAgB,GAAE,CAAC;IACnB,IAAA,qBAAe,GAAE,CAAC;IAClB,IAAA,6BAAmB,GAAE,CAAC;IACtB,IAAA,yBAAiB,GAAE,CAAC;IACpB,IAAA,2BAAkB,GAAE,CAAC;IACrB,IAAA,iCAAqB,GAAE,CAAC;IACxB,IAAA,0BAAiB,GAAE,CAAC;IACpB,IAAA,4BAAkB,GAAE,CAAC;IACrB,IAAA,kCAAqB,GAAE,CAAC;AAC1B,CAAC,CAAC;AAjBW,QAAA,gBAAgB,oBAiB3B","file":"index.js","sourcesContent":["/**\n * @description export all mark modules\n */\nimport { LineMark, registerLineMark } from './line';\nimport { SymbolMark, registerSymbolMark } from './symbol';\nimport { GroupMark, registerGroupMark } from './group';\nimport { RuleMark, registerRuleMark } from './rule';\nimport { TextMark, registerTextMark } from './text';\nimport { AreaMark, registerAreaMark } from './area';\nimport { RectMark, registerRectMark } from './rect';\nimport { Rect3dMark, registerRect3dMark } from './rect-3d';\nimport { PathMark, registerPathMark } from './path';\nimport { ArcMark, registerArcMark } from './arc';\nimport { Arc3dMark, registerArc3dMark } from './arc-3d';\nimport { ComponentMark, registerComponentMark } from './component';\nimport { LinkPathMark, registerLinkPathMark } from './link-path';\nimport { RippleMark, registerRippleMark } from './ripple';\nimport { CellMark, registerCellMark } from './cell';\nimport { BaseMark } from './base';\nimport { PolygonMark, registerPolygonMark } from './polygon/polygon';\nimport { Pyramid3dMark, registerPyramid3dMark } from './polygon/pyramid-3d';\nimport { ImageMark, registerImageMark } from './image';\nimport { LiquidMark, registerLiquidMark } from './liquid';\nimport { BoxPlotMark, registerBoxPlotMark } from './box-plot';\nimport { BasePolygonMark } from './polygon/base-polygon';\nimport { MarkTypeEnum } from './interface/type';\n\nexport type {\n IBoxPlotMarkSpec,\n ILineMarkSpec,\n ISymbolMarkSpec,\n IGroupMarkSpec,\n IRuleMarkSpec,\n ITextMarkSpec,\n IAreaMarkSpec,\n IRect3dMarkSpec,\n IRectMarkSpec,\n IPathMarkSpec,\n IArcMarkSpec,\n IArc3dMarkSpec,\n ICommonSpec,\n IPolygonMarkSpec,\n IPyramid3dMarkSpec,\n ILinkPathMarkSpec,\n IRippleMarkSpec,\n ICellMarkSpec,\n ILiquidMarkSpec,\n ConvertToMarkStyleSpec\n} from '../typings/visual';\n\nexport {\n LineMark,\n SymbolMark,\n GroupMark,\n RuleMark,\n TextMark,\n AreaMark,\n Rect3dMark,\n RectMark,\n PathMark,\n Arc3dMark,\n ArcMark,\n ComponentMark,\n PolygonMark,\n Pyramid3dMark,\n RippleMark,\n ImageMark,\n BaseMark,\n LinkPathMark\n};\n\nexport {\n registerLineMark,\n registerSymbolMark,\n registerGroupMark,\n registerRuleMark,\n registerTextMark,\n registerAreaMark,\n registerRectMark,\n registerRect3dMark,\n registerPathMark,\n registerArcMark,\n registerArc3dMark,\n registerPolygonMark,\n registerPyramid3dMark,\n registerRippleMark,\n registerImageMark,\n registerComponentMark,\n registerLinkPathMark\n};\n\nexport const registerAllMarks = () => {\n registerGroupMark();\n registerLineMark();\n registerSymbolMark();\n registerRuleMark();\n registerTextMark();\n registerAreaMark();\n registerRectMark();\n registerPathMark();\n registerArcMark();\n registerPolygonMark();\n registerImageMark();\n registerRippleMark();\n registerComponentMark();\n registerArc3dMark();\n registerRect3dMark();\n registerPyramid3dMark();\n};\n"]}
@@ -6,7 +6,6 @@ import type { IChartSpecInfo } from '../../chart/interface/common';
6
6
  export declare class ChartPluginService<T extends IChartPlugin = IChartPlugin> extends BasePluginService<T> implements IChartPluginService<T> {
7
7
  globalInstance: IVChart;
8
8
  constructor(globalInstance: IVChart);
9
- getPlugin(name: string): T | undefined;
10
9
  onInit(chartSpec: any): void;
11
10
  onBeforeResize(width: number, height: number): void;
12
11
  onAfterChartSpecTransform(chartSpec: any, actionSource: VChartRenderActionSource): void;
@@ -10,9 +10,6 @@ class ChartPluginService extends base_plugin_service_1.BasePluginService {
10
10
  constructor(globalInstance) {
11
11
  super(), this.globalInstance = globalInstance;
12
12
  }
13
- getPlugin(name) {
14
- return this._plugins.find((plugin => plugin.name === name));
15
- }
16
13
  onInit(chartSpec) {
17
14
  this._plugins.forEach((plugin => {
18
15
  plugin.onInit && plugin.onInit(this, chartSpec);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin/chart/plugin-service.ts"],"names":[],"mappings":";;;AAEA,qEAAgE;AAIhE,MAAa,kBACX,SAAQ,uCAAoB;IAK5B,YAAY,cAAuB;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,SAAc;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB,CAAC,SAAc,EAAE,YAAsC;QAC9E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,yBAAyB,IAAI,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB,CAAC,SAAc,EAAE,aAA6B,EAAE,YAAsC;QAC7G,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,yBAAyB;gBAC9B,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,SAAc,EAAE,YAAsC;QACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;AA9DD,gDA8DC","file":"plugin-service.js","sourcesContent":["import type { IChartPlugin, IChartPluginService } from './interface';\nimport type { IVChart } from '../../core';\nimport { BasePluginService } from '../base/base-plugin-service';\nimport type { VChartRenderActionSource } from '../../core/interface';\nimport type { IChartSpecInfo } from '../../chart/interface/common';\n\nexport class ChartPluginService<T extends IChartPlugin = IChartPlugin>\n extends BasePluginService<T>\n implements IChartPluginService<T>\n{\n globalInstance: IVChart;\n\n constructor(globalInstance: IVChart) {\n super();\n this.globalInstance = globalInstance;\n }\n\n getPlugin(name: string): T | undefined {\n return this._plugins.find(plugin => plugin.name === name);\n }\n\n onInit(chartSpec: any) {\n this._plugins.forEach(plugin => {\n plugin.onInit && plugin.onInit(this, chartSpec);\n });\n }\n\n onBeforeResize(width: number, height: number) {\n this._plugins.forEach(plugin => {\n plugin.onBeforeResize && plugin.onBeforeResize(this, width, height);\n });\n }\n\n onAfterChartSpecTransform(chartSpec: any, actionSource: VChartRenderActionSource) {\n this._plugins.forEach(plugin => {\n plugin.onAfterChartSpecTransform && plugin.onAfterChartSpecTransform(this, chartSpec, actionSource);\n });\n }\n\n onAfterModelSpecTransform(chartSpec: any, chartSpecInfo: IChartSpecInfo, actionSource: VChartRenderActionSource) {\n this._plugins.forEach(plugin => {\n plugin.onAfterModelSpecTransform &&\n plugin.onAfterModelSpecTransform(this, chartSpec, chartSpecInfo, actionSource);\n });\n }\n\n onBeforeInitChart(chartSpec: any, actionSource: VChartRenderActionSource) {\n this._plugins.forEach(plugin => {\n plugin.onBeforeInitChart && plugin.onBeforeInitChart(this, chartSpec, actionSource);\n });\n }\n\n onLayoutRectUpdate() {\n this._plugins.forEach(plugin => {\n plugin.onLayoutRectUpdate && plugin.onLayoutRectUpdate(this);\n });\n }\n\n onAfterRender() {\n this._plugins.forEach(plugin => {\n plugin.onAfterRender && plugin.onAfterRender(this);\n });\n }\n\n releaseAll(): void {\n super.releaseAll();\n this.globalInstance = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugin/chart/plugin-service.ts"],"names":[],"mappings":";;;AAEA,qEAAgE;AAIhE,MAAa,kBACX,SAAQ,uCAAoB;IAK5B,YAAY,cAAuB;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,SAAc;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB,CAAC,SAAc,EAAE,YAAsC;QAC9E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,yBAAyB,IAAI,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB,CAAC,SAAc,EAAE,aAA6B,EAAE,YAAsC;QAC7G,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,yBAAyB;gBAC9B,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,SAAc,EAAE,YAAsC;QACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;AA1DD,gDA0DC","file":"plugin-service.js","sourcesContent":["import type { IChartPlugin, IChartPluginService } from './interface';\nimport type { IVChart } from '../../core';\nimport { BasePluginService } from '../base/base-plugin-service';\nimport type { VChartRenderActionSource } from '../../core/interface';\nimport type { IChartSpecInfo } from '../../chart/interface/common';\n\nexport class ChartPluginService<T extends IChartPlugin = IChartPlugin>\n extends BasePluginService<T>\n implements IChartPluginService<T>\n{\n globalInstance: IVChart;\n\n constructor(globalInstance: IVChart) {\n super();\n this.globalInstance = globalInstance;\n }\n\n onInit(chartSpec: any) {\n this._plugins.forEach(plugin => {\n plugin.onInit && plugin.onInit(this, chartSpec);\n });\n }\n\n onBeforeResize(width: number, height: number) {\n this._plugins.forEach(plugin => {\n plugin.onBeforeResize && plugin.onBeforeResize(this, width, height);\n });\n }\n\n onAfterChartSpecTransform(chartSpec: any, actionSource: VChartRenderActionSource) {\n this._plugins.forEach(plugin => {\n plugin.onAfterChartSpecTransform && plugin.onAfterChartSpecTransform(this, chartSpec, actionSource);\n });\n }\n\n onAfterModelSpecTransform(chartSpec: any, chartSpecInfo: IChartSpecInfo, actionSource: VChartRenderActionSource) {\n this._plugins.forEach(plugin => {\n plugin.onAfterModelSpecTransform &&\n plugin.onAfterModelSpecTransform(this, chartSpec, chartSpecInfo, actionSource);\n });\n }\n\n onBeforeInitChart(chartSpec: any, actionSource: VChartRenderActionSource) {\n this._plugins.forEach(plugin => {\n plugin.onBeforeInitChart && plugin.onBeforeInitChart(this, chartSpec, actionSource);\n });\n }\n\n onLayoutRectUpdate() {\n this._plugins.forEach(plugin => {\n plugin.onLayoutRectUpdate && plugin.onLayoutRectUpdate(this);\n });\n }\n\n onAfterRender() {\n this._plugins.forEach(plugin => {\n plugin.onAfterRender && plugin.onAfterRender(this);\n });\n }\n\n releaseAll(): void {\n super.releaseAll();\n this.globalInstance = null;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IGroup, IRectGraphicAttribute } from '@visactor/vrender-core';
1
+ import type { IGroup } from '@visactor/vrender-core';
2
2
  import { BasePlugin } from '../../base/base-plugin';
3
3
  import type { IChartPluginService } from '../interface';
4
4
  import type { IScrollPlugin } from './interface';
@@ -6,15 +6,11 @@ export declare class ScrollPlugin extends BasePlugin implements IScrollPlugin {
6
6
  static readonly pluginType: 'chart';
7
7
  static readonly type: string;
8
8
  readonly type: string;
9
- readonly name: string;
10
9
  private _service;
11
10
  private _spec;
12
- private _lastScrollX;
13
- private _lastScrollY;
14
11
  private _scrollLimit;
15
12
  private _xScrollComponent;
16
13
  private _yScrollComponent;
17
- private _event;
18
14
  constructor();
19
15
  onInit(service: IChartPluginService, chartSpec: any): void;
20
16
  onLayoutRectUpdate(service: IChartPluginService): void;
@@ -23,19 +19,9 @@ export declare class ScrollPlugin extends BasePlugin implements IScrollPlugin {
23
19
  protected _bindEvent(service: IChartPluginService): void;
24
20
  protected getRootMark(): IGroup;
25
21
  protected onWheel: (e: WheelEvent) => void;
26
- private _computeFinalScrollY;
27
- private _computeFinalScrollX;
28
22
  private _updateScrollY;
29
23
  private _getYScrollComponent;
30
24
  private _updateScrollX;
31
25
  private _getXScrollComponent;
32
- scrollTo({ x, y }: {
33
- x?: number;
34
- y?: number;
35
- }): void;
36
26
  }
37
- export declare const registerScrollPlugin: (theme?: {
38
- size?: number;
39
- railStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;
40
- sliderStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;
41
- }) => void;
27
+ export declare const registerScrollPlugin: () => void;
@@ -14,36 +14,24 @@ Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.registerScrollPlugin = exports.ScrollPlugin = void 0;
16
16
 
17
- const vutils_1 = require("@visactor/vutils"), base_plugin_1 = require("../../base/base-plugin"), register_1 = require("../register"), vrender_components_1 = require("@visactor/vrender-components"), event_1 = require("../../../event/event"), SCROLLBAR_EVENT = "scrollDrag", SCROLLBAR_END_EVENT = "scrollUp", DefaultTheme = {
18
- size: 10,
19
- railStyle: void 0,
20
- sliderStyle: void 0
21
- };
17
+ const base_plugin_1 = require("../../base/base-plugin"), register_1 = require("../register"), vrender_components_1 = require("@visactor/vrender-components"), scrollBarSize = 10;
22
18
 
23
19
  class ScrollPlugin extends base_plugin_1.BasePlugin {
24
20
  constructor() {
25
- super(ScrollPlugin.type), this.type = "chartScroll", this.name = ScrollPlugin.type,
26
- this._lastScrollX = 0, this._lastScrollY = 0, this._scrollLimit = {
21
+ super(ScrollPlugin.type), this.type = "chartScroll", this._scrollLimit = {
27
22
  x: {
28
23
  min: 0,
29
24
  max: 0,
30
- size: 0,
31
25
  percent: 0
32
26
  },
33
27
  y: {
34
28
  min: 0,
35
29
  max: 0,
36
- size: 0,
37
30
  percent: 0
38
31
  }
39
32
  }, this.onWheel = e => {
40
- var _a, _b;
41
33
  const scrollX = e.deltaX, scrollY = e.deltaY, rootMark = this.getRootMark();
42
- if (!rootMark) return;
43
- const {percent: yPercent, y: y} = null !== (_a = this._computeFinalScrollY(rootMark.attribute.y - scrollY)) && void 0 !== _a ? _a : {}, {percent: xPercent, x: x} = null !== (_b = this._computeFinalScrollX(rootMark.attribute.x - scrollX)) && void 0 !== _b ? _b : {}, eventResult = {};
44
- (0, vutils_1.isValidNumber)(x) && (this._updateScrollX(rootMark, x, xPercent), eventResult.x = x),
45
- (0, vutils_1.isValidNumber)(y) && (this._updateScrollY(rootMark, y, yPercent), eventResult.y = y),
46
- this._event.emit("chartScroll", eventResult);
34
+ rootMark && (this._updateScrollX(rootMark, rootMark.attribute.x - scrollX), this._updateScrollY(rootMark, rootMark.attribute.y - scrollY));
47
35
  };
48
36
  }
49
37
  onInit(service, chartSpec) {
@@ -54,13 +42,11 @@ class ScrollPlugin extends base_plugin_1.BasePlugin {
54
42
  onLayoutRectUpdate(service) {
55
43
  const viewBoxSize = service.globalInstance.getChart().getViewRect(), canvasSize = service.globalInstance.getChart().getCanvasRect();
56
44
  this._scrollLimit.x.min = Math.min(canvasSize.width - viewBoxSize.width, 0), this._scrollLimit.x.percent = Math.abs(canvasSize.width / viewBoxSize.width),
57
- this._scrollLimit.x.size = viewBoxSize.width, this._scrollLimit.y.min = Math.min(canvasSize.height - viewBoxSize.height, 0),
58
- this._scrollLimit.y.percent = Math.abs(canvasSize.height / viewBoxSize.height),
59
- this._scrollLimit.y.size = viewBoxSize.height, this._event || (this._event = new event_1.Event(this._service.globalInstance.getChart().getOption().eventDispatcher, null));
45
+ this._scrollLimit.y.min = Math.min(canvasSize.height - viewBoxSize.height, 0), this._scrollLimit.y.percent = Math.abs(canvasSize.height / viewBoxSize.height);
60
46
  }
61
47
  onAfterRender() {
62
48
  const rootMark = this.getRootMark();
63
- rootMark && (this._xScrollComponent || this._updateScrollX(rootMark, 0, 0), this._yScrollComponent || this._updateScrollY(rootMark, 0, 0));
49
+ rootMark && (this._xScrollComponent || this._updateScrollX(rootMark, 0), this._yScrollComponent || this._updateScrollY(rootMark, 0));
64
50
  }
65
51
  release() {
66
52
  var _a;
@@ -74,30 +60,13 @@ class ScrollPlugin extends base_plugin_1.BasePlugin {
74
60
  var _a;
75
61
  return null === (_a = this._service.globalInstance.getStage()) || void 0 === _a ? void 0 : _a.find((node => "root" === node.name), !0);
76
62
  }
77
- _computeFinalScrollY(y) {
78
- var _a;
79
- if (this._lastScrollY === y) return null;
80
- if (this._lastScrollY = y, !1 === (null === (_a = this._spec.y) || void 0 === _a ? void 0 : _a.enable)) return null;
81
- const finalY = Math.max(this._scrollLimit.y.min, Math.min(y, this._scrollLimit.y.max));
82
- return {
83
- y: finalY,
84
- percent: Math.abs(finalY / this._scrollLimit.y.size)
85
- };
86
- }
87
- _computeFinalScrollX(x) {
63
+ _updateScrollY(rootMark, y) {
88
64
  var _a;
89
- if (this._lastScrollX === x) return null;
90
- if (this._lastScrollX = x, !1 === (null === (_a = this._spec.x) || void 0 === _a ? void 0 : _a.enable)) return null;
91
- const finalX = Math.max(this._scrollLimit.x.min, Math.min(x, this._scrollLimit.x.max));
92
- return {
93
- x: finalX,
94
- percent: Math.abs(finalX / this._scrollLimit.x.size)
95
- };
96
- }
97
- _updateScrollY(rootMark, y, percent) {
65
+ if (!1 === (null === (_a = this._spec.y) || void 0 === _a ? void 0 : _a.enable)) return;
66
+ const finalY = Math.max(this._scrollLimit.y.min, Math.min(y, this._scrollLimit.y.max)), percent = Math.abs(finalY / this._scrollLimit.y.min);
98
67
  this._getYScrollComponent().setAttribute("range", [ percent, percent + this._scrollLimit.y.percent ]),
99
68
  rootMark.setAttributes({
100
- y: y
69
+ y: finalY
101
70
  });
102
71
  }
103
72
  _getYScrollComponent() {
@@ -106,38 +75,28 @@ class ScrollPlugin extends base_plugin_1.BasePlugin {
106
75
  const canvasSize = this._service.globalInstance.getChart().getCanvasRect(), viewSize = this._service.globalInstance.getChart().getViewRect(), _f = null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : {}, {enable: enable} = _f, rest = __rest(_f, [ "enable" ]);
107
76
  this._yScrollComponent = new vrender_components_1.ScrollBar(Object.assign(Object.assign({}, rest), {
108
77
  zIndex: 9999,
109
- x: canvasSize.width - DefaultTheme.size,
78
+ x: canvasSize.width - 10,
110
79
  y: 0,
111
- width: DefaultTheme.size,
80
+ width: 10,
112
81
  height: canvasSize.height,
113
82
  range: [ 0, canvasSize.height / viewSize.height ],
114
83
  direction: "vertical",
115
84
  delayTime: null !== (_c = null == rest ? void 0 : rest.delayTime) && void 0 !== _c ? _c : 30,
116
85
  realTime: null === (_d = null == rest ? void 0 : rest.realTime) || void 0 === _d || _d,
117
- railStyle: DefaultTheme.railStyle,
118
- sliderStyle: DefaultTheme.sliderStyle
119
- })), this._yScrollComponent.addEventListener("scrollDrag", (e => {
120
- var _a;
121
- const value = e.detail.value, {percent: percent, y: y} = null !== (_a = this._computeFinalScrollY(-value[0] * this._scrollLimit.y.size)) && void 0 !== _a ? _a : {};
122
- void 0 !== percent && void 0 !== y && (this._updateScrollY(this.getRootMark(), y, percent),
123
- this._event.emit("chartScroll", {
124
- y: y
125
- }));
126
- })), this._yScrollComponent.addEventListener("scrollUp", (e => {
127
- var _a;
128
- const value = e.detail.value, {percent: percent, y: y} = null !== (_a = this._computeFinalScrollY(-value[0] * this._scrollLimit.y.size)) && void 0 !== _a ? _a : {};
129
- void 0 !== percent && void 0 !== y && (this._updateScrollY(this.getRootMark(), y, percent),
130
- this._event.emit("chartScroll", {
131
- y: y
132
- }));
86
+ sliderStyle: {
87
+ fill: "rgba(0,0,0,0.3)"
88
+ }
133
89
  })), null === (_e = this.getRootMark().parent) || void 0 === _e || _e.addChild(this._yScrollComponent);
134
90
  }
135
91
  return this._yScrollComponent;
136
92
  }
137
- _updateScrollX(rootMark, x, percent) {
93
+ _updateScrollX(rootMark, x) {
94
+ var _a;
95
+ if (!1 === (null === (_a = this._spec.x) || void 0 === _a ? void 0 : _a.enable)) return;
96
+ const finalX = Math.max(this._scrollLimit.x.min, Math.min(x, this._scrollLimit.x.max)), percent = Math.abs(finalX / this._scrollLimit.x.min);
138
97
  this._getXScrollComponent().setAttribute("range", [ percent, percent + this._scrollLimit.x.percent ]),
139
98
  rootMark.setAttributes({
140
- x: x
99
+ x: finalX
141
100
  });
142
101
  }
143
102
  _getXScrollComponent() {
@@ -147,56 +106,22 @@ class ScrollPlugin extends base_plugin_1.BasePlugin {
147
106
  this._xScrollComponent = new vrender_components_1.ScrollBar(Object.assign(Object.assign({}, rest), {
148
107
  zIndex: 9999,
149
108
  x: 0,
150
- y: canvasSize.height - DefaultTheme.size,
109
+ y: canvasSize.height - 10,
151
110
  width: canvasSize.width,
152
- height: DefaultTheme.size,
111
+ height: 10,
153
112
  range: [ 0, canvasSize.width / viewSize.width ],
154
113
  direction: "horizontal",
155
114
  delayTime: null !== (_c = null == rest ? void 0 : rest.delayTime) && void 0 !== _c ? _c : 30,
156
- realTime: null === (_d = null == rest ? void 0 : rest.realTime) || void 0 === _d || _d,
157
- sliderStyle: DefaultTheme.sliderStyle,
158
- railStyle: DefaultTheme.railStyle
159
- })), this._xScrollComponent.addEventListener("scrollDrag", (e => {
160
- var _a;
161
- const value = e.detail.value, {percent: percent, x: x} = null !== (_a = this._computeFinalScrollX(-value[0] * this._scrollLimit.x.size)) && void 0 !== _a ? _a : {};
162
- void 0 !== percent && void 0 !== x && (this._updateScrollX(this.getRootMark(), x, percent),
163
- this._event.emit("chartScroll", {
164
- x: x
165
- }));
166
- })), this._xScrollComponent.addEventListener("scrollUp", (e => {
167
- var _a;
168
- const value = e.detail.value, {percent: percent, x: x} = null !== (_a = this._computeFinalScrollX(-value[0] * this._scrollLimit.x.size)) && void 0 !== _a ? _a : {};
169
- void 0 !== percent && void 0 !== x && (this._updateScrollX(this.getRootMark(), x, percent),
170
- this._event.emit("chartScroll", {
171
- x: x
172
- }));
115
+ realTime: null === (_d = null == rest ? void 0 : rest.realTime) || void 0 === _d || _d
173
116
  })), null === (_e = this.getRootMark().parent) || void 0 === _e || _e.addChild(this._xScrollComponent);
174
117
  }
175
118
  return this._xScrollComponent;
176
119
  }
177
- scrollTo({x: x, y: y}) {
178
- var _a, _b;
179
- const rootMark = this.getRootMark();
180
- if (rootMark) {
181
- if (void 0 !== x) {
182
- const {x: finalX, percent: percent} = null !== (_a = this._computeFinalScrollX(x)) && void 0 !== _a ? _a : {};
183
- void 0 !== finalX && void 0 !== percent && this._updateScrollX(rootMark, finalX, percent);
184
- }
185
- if (void 0 !== y) {
186
- const {y: finalY, percent: percent} = null !== (_b = this._computeFinalScrollY(y)) && void 0 !== _b ? _b : {};
187
- void 0 !== finalY && void 0 !== percent && this._updateScrollY(rootMark, finalY, percent);
188
- }
189
- }
190
- }
191
120
  }
192
121
 
193
122
  exports.ScrollPlugin = ScrollPlugin, ScrollPlugin.pluginType = "chart", ScrollPlugin.type = "chartScroll";
194
123
 
195
- const registerScrollPlugin = theme => {
196
- var _a, _b, _c, _d, _e;
197
- DefaultTheme.size = null !== (_a = null == theme ? void 0 : theme.size) && void 0 !== _a ? _a : DefaultTheme.size,
198
- DefaultTheme.railStyle = (0, vutils_1.merge)({}, null !== (_b = DefaultTheme.railStyle) && void 0 !== _b ? _b : {}, null !== (_c = null == theme ? void 0 : theme.railStyle) && void 0 !== _c ? _c : {}),
199
- DefaultTheme.sliderStyle = (0, vutils_1.merge)({}, null !== (_d = DefaultTheme.sliderStyle) && void 0 !== _d ? _d : {}, null !== (_e = null == theme ? void 0 : theme.sliderStyle) && void 0 !== _e ? _e : {}),
124
+ const registerScrollPlugin = () => {
200
125
  (0, register_1.registerChartPlugin)(ScrollPlugin);
201
126
  };
202
127
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin/chart/scroll/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport type { IGroup, IRectGraphicAttribute } from '@visactor/vrender-core';\nimport { BasePlugin } from '../../base/base-plugin';\nimport type { IChartPluginService } from '../interface';\nimport { registerChartPlugin } from '../register';\nimport type { IScrollPlugin, IScrollPluginSpec } from './interface';\nimport { ScrollBar as ScrollBarComponent } from '@visactor/vrender-components';\nimport { Event } from '../../../event/event';\nimport type { ExtendEventParam } from '../../../event/interface';\n\n// 由vrender透出, 接入新版本后需修改\nconst SCROLLBAR_EVENT = 'scrollDrag';\nconst SCROLLBAR_END_EVENT = 'scrollUp';\n\nconst DefaultTheme: {\n size?: number;\n railStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n sliderStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n} = {\n size: 10,\n railStyle: undefined,\n sliderStyle: undefined\n};\n/**\n * ScrollPlugin 类\n * @since 1.0.0\n */\nexport class ScrollPlugin extends BasePlugin implements IScrollPlugin {\n static readonly pluginType: 'chart' = 'chart';\n static readonly type: string = 'chartScroll';\n readonly type: string = 'chartScroll';\n readonly name: string = ScrollPlugin.type;\n\n private _service: IChartPluginService;\n\n private _spec: IScrollPluginSpec;\n private _lastScrollX = 0;\n private _lastScrollY = 0;\n\n private _scrollLimit = {\n x: {\n min: 0,\n max: 0,\n size: 0,\n percent: 0\n },\n y: {\n min: 0,\n max: 0,\n size: 0,\n percent: 0\n }\n };\n\n private _xScrollComponent: ScrollBarComponent;\n private _yScrollComponent: ScrollBarComponent;\n private _event: Event;\n\n constructor() {\n super(ScrollPlugin.type);\n }\n\n /**\n * 初始化插件\n * @param service\n * @param chartSpec\n */\n onInit(service: IChartPluginService, chartSpec: any) {\n this._spec = chartSpec[ScrollPlugin.type] ?? {};\n this._service = service;\n this._bindEvent(service);\n }\n\n onLayoutRectUpdate(service: IChartPluginService) {\n const viewBoxSize = service.globalInstance.getChart().getViewRect();\n const canvasSize = service.globalInstance.getChart().getCanvasRect();\n this._scrollLimit.x.min = Math.min(canvasSize.width - viewBoxSize.width, 0);\n this._scrollLimit.x.percent = Math.abs(canvasSize.width / viewBoxSize.width);\n this._scrollLimit.x.size = viewBoxSize.width;\n this._scrollLimit.y.min = Math.min(canvasSize.height - viewBoxSize.height, 0);\n this._scrollLimit.y.percent = Math.abs(canvasSize.height / viewBoxSize.height);\n this._scrollLimit.y.size = viewBoxSize.height;\n\n if (!this._event) {\n this._event = new Event(this._service.globalInstance.getChart().getOption().eventDispatcher, null);\n }\n }\n\n onAfterRender() {\n const rootMark = this.getRootMark();\n if (rootMark) {\n if (!this._xScrollComponent) {\n this._updateScrollX(rootMark, 0, 0);\n }\n if (!this._yScrollComponent) {\n this._updateScrollY(rootMark, 0, 0);\n }\n }\n }\n\n /**\n * 释放插件资源\n */\n release() {\n this._service.globalInstance.getStage()?.off('wheel', this.onWheel);\n }\n\n protected _bindEvent(service: IChartPluginService) {\n service.globalInstance.getStage()?.on('wheel', this.onWheel);\n }\n\n protected getRootMark() {\n return this._service.globalInstance.getStage()?.find(node => node.name === 'root', true) as IGroup;\n }\n\n protected onWheel = (e: WheelEvent) => {\n const scrollX = e.deltaX;\n const scrollY = e.deltaY;\n const rootMark = this.getRootMark();\n if (!rootMark) {\n return;\n }\n const { percent: yPercent, y } = this._computeFinalScrollY(rootMark.attribute.y - scrollY) ?? {};\n const { percent: xPercent, x } = this._computeFinalScrollX(rootMark.attribute.x - scrollX) ?? {};\n const eventResult: { x?: number; y?: number } = {};\n if (isValidNumber(x)) {\n this._updateScrollX(rootMark, x, xPercent);\n eventResult.x = x;\n }\n if (isValidNumber(y)) {\n this._updateScrollY(rootMark, y, yPercent);\n eventResult.y = y;\n }\n\n this._event.emit('chartScroll', eventResult as ExtendEventParam);\n };\n\n private _computeFinalScrollY(y: number) {\n if (this._lastScrollY === y) {\n return null;\n }\n this._lastScrollY = y;\n if (this._spec.y?.enable === false) {\n return null;\n }\n const finalY = Math.max(this._scrollLimit.y.min, Math.min(y, this._scrollLimit.y.max));\n const percent = Math.abs(finalY / this._scrollLimit.y.size);\n return {\n y: finalY,\n percent\n };\n }\n private _computeFinalScrollX(x: number) {\n if (this._lastScrollX === x) {\n return null;\n }\n this._lastScrollX = x;\n if (this._spec.x?.enable === false) {\n return null;\n }\n const finalX = Math.max(this._scrollLimit.x.min, Math.min(x, this._scrollLimit.x.max));\n const percent = Math.abs(finalX / this._scrollLimit.x.size);\n return {\n x: finalX,\n percent\n };\n }\n\n private _updateScrollY(rootMark: IGroup, y: number, percent: number) {\n const yScrollComponent = this._getYScrollComponent();\n yScrollComponent.setAttribute('range', [percent, percent + this._scrollLimit.y.percent]);\n rootMark.setAttributes({\n y: y\n });\n }\n\n private _getYScrollComponent() {\n if (!this._yScrollComponent) {\n const canvasSize = this._service.globalInstance.getChart().getCanvasRect();\n const viewSize = this._service.globalInstance.getChart().getViewRect();\n const { enable, ...rest } = this._spec?.y ?? ({} as IScrollPluginSpec['y']);\n this._yScrollComponent = new ScrollBarComponent({\n ...rest,\n zIndex: 9999,\n x: canvasSize.width - DefaultTheme.size,\n y: 0,\n width: DefaultTheme.size,\n height: canvasSize.height,\n range: [0, canvasSize.height / viewSize.height],\n direction: 'vertical',\n delayTime: rest?.delayTime ?? 30,\n realTime: rest?.realTime ?? true,\n railStyle: DefaultTheme.railStyle,\n sliderStyle: DefaultTheme.sliderStyle\n });\n // 绑定事件,防抖,防止频繁触发\n this._yScrollComponent.addEventListener(SCROLLBAR_EVENT, (e: any) => {\n const value = e.detail.value;\n const { percent, y } = this._computeFinalScrollY(-value[0] * this._scrollLimit.y.size) ?? {};\n if (percent !== undefined && y !== undefined) {\n this._updateScrollY(this.getRootMark(), y, percent);\n this._event.emit('chartScroll', { y } as ExtendEventParam);\n }\n });\n this._yScrollComponent.addEventListener(SCROLLBAR_END_EVENT, (e: any) => {\n const value = e.detail.value;\n const { percent, y } = this._computeFinalScrollY(-value[0] * this._scrollLimit.y.size) ?? {};\n if (percent !== undefined && y !== undefined) {\n this._updateScrollY(this.getRootMark(), y, percent);\n this._event.emit('chartScroll', { y } as ExtendEventParam);\n }\n });\n this.getRootMark().parent?.addChild(this._yScrollComponent);\n }\n return this._yScrollComponent;\n }\n\n private _updateScrollX(rootMark: IGroup, x: number, percent: number) {\n const xScrollComponent = this._getXScrollComponent();\n xScrollComponent.setAttribute('range', [percent, percent + this._scrollLimit.x.percent]);\n rootMark.setAttributes({\n x: x\n });\n }\n\n private _getXScrollComponent() {\n if (!this._xScrollComponent) {\n const canvasSize = this._service.globalInstance.getChart().getCanvasRect();\n const viewSize = this._service.globalInstance.getChart().getViewRect();\n const { enable, ...rest } = this._spec?.x ?? ({} as IScrollPluginSpec['x']);\n this._xScrollComponent = new ScrollBarComponent({\n ...rest,\n zIndex: 9999,\n x: 0,\n y: canvasSize.height - DefaultTheme.size,\n width: canvasSize.width,\n height: DefaultTheme.size,\n range: [0, canvasSize.width / viewSize.width],\n direction: 'horizontal',\n delayTime: rest?.delayTime ?? 30,\n realTime: rest?.realTime ?? true,\n sliderStyle: DefaultTheme.sliderStyle,\n railStyle: DefaultTheme.railStyle\n });\n // 绑定事件,防抖,防止频繁触发\n this._xScrollComponent.addEventListener(SCROLLBAR_EVENT, (e: any) => {\n const value = e.detail.value;\n const { percent, x } = this._computeFinalScrollX(-value[0] * this._scrollLimit.x.size) ?? {};\n if (percent !== undefined && x !== undefined) {\n this._updateScrollX(this.getRootMark(), x, percent);\n this._event.emit('chartScroll', { x } as ExtendEventParam);\n }\n });\n this._xScrollComponent.addEventListener(SCROLLBAR_END_EVENT, (e: any) => {\n const value = e.detail.value;\n const { percent, x } = this._computeFinalScrollX(-value[0] * this._scrollLimit.x.size) ?? {};\n if (percent !== undefined && x !== undefined) {\n this._updateScrollX(this.getRootMark(), x, percent);\n this._event.emit('chartScroll', { x } as ExtendEventParam);\n }\n });\n this.getRootMark().parent?.addChild(this._xScrollComponent);\n }\n return this._xScrollComponent;\n }\n\n /**\n * api\n */\n scrollTo({ x, y }: { x?: number; y?: number }) {\n const rootMark = this.getRootMark();\n if (rootMark) {\n if (x !== undefined) {\n const { x: finalX, percent } = this._computeFinalScrollX(x) ?? {};\n if (finalX !== undefined && percent !== undefined) {\n this._updateScrollX(rootMark, finalX, percent);\n }\n }\n if (y !== undefined) {\n const { y: finalY, percent } = this._computeFinalScrollY(y) ?? {};\n if (finalY !== undefined && percent !== undefined) {\n this._updateScrollY(rootMark, finalY, percent);\n }\n }\n }\n }\n}\n\n/**\n * 注册 ScrollPlugin\n * @since 1.0.0\n */\nexport const registerScrollPlugin = (theme?: {\n size?: number;\n railStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n sliderStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n}) => {\n DefaultTheme.size = theme?.size ?? DefaultTheme.size;\n DefaultTheme.railStyle = merge({}, DefaultTheme.railStyle ?? {}, theme?.railStyle ?? {});\n DefaultTheme.sliderStyle = merge({}, DefaultTheme.sliderStyle ?? {}, theme?.sliderStyle ?? {});\n registerChartPlugin(ScrollPlugin);\n};\n"]}
1
+ {"version":3,"sources":["../src/plugin/chart/scroll/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\nimport { BasePlugin } from '../../base/base-plugin';\nimport type { IChartPluginService } from '../interface';\nimport { registerChartPlugin } from '../register';\nimport type { IScrollPlugin, IScrollPluginSpec } from './interface';\nimport { ScrollBar as ScrollBarComponent } from '@visactor/vrender-components';\n\nconst scrollBarSize = 10;\n\n/**\n * ScrollPlugin 类\n * @since 1.0.0\n */\nexport class ScrollPlugin extends BasePlugin implements IScrollPlugin {\n static readonly pluginType: 'chart' = 'chart';\n static readonly type: string = 'chartScroll';\n readonly type: string = 'chartScroll';\n\n private _service: IChartPluginService;\n\n private _spec: IScrollPluginSpec;\n\n private _scrollLimit = {\n x: {\n min: 0,\n max: 0,\n percent: 0\n },\n y: {\n min: 0,\n max: 0,\n percent: 0\n }\n };\n\n private _xScrollComponent: ScrollBarComponent;\n private _yScrollComponent: ScrollBarComponent;\n\n constructor() {\n super(ScrollPlugin.type);\n }\n\n /**\n * 初始化插件\n * @param service\n * @param chartSpec\n */\n onInit(service: IChartPluginService, chartSpec: any) {\n this._spec = chartSpec[ScrollPlugin.type] ?? {};\n this._service = service;\n this._bindEvent(service);\n }\n\n onLayoutRectUpdate(service: IChartPluginService) {\n const viewBoxSize = service.globalInstance.getChart().getViewRect();\n const canvasSize = service.globalInstance.getChart().getCanvasRect();\n this._scrollLimit.x.min = Math.min(canvasSize.width - viewBoxSize.width, 0);\n this._scrollLimit.x.percent = Math.abs(canvasSize.width / viewBoxSize.width);\n this._scrollLimit.y.min = Math.min(canvasSize.height - viewBoxSize.height, 0);\n this._scrollLimit.y.percent = Math.abs(canvasSize.height / viewBoxSize.height);\n }\n\n onAfterRender() {\n const rootMark = this.getRootMark();\n if (rootMark) {\n if (!this._xScrollComponent) {\n this._updateScrollX(rootMark, 0);\n }\n if (!this._yScrollComponent) {\n this._updateScrollY(rootMark, 0);\n }\n }\n }\n\n /**\n * 释放插件资源\n */\n release() {\n this._service.globalInstance.getStage()?.off('wheel', this.onWheel);\n }\n\n protected _bindEvent(service: IChartPluginService) {\n service.globalInstance.getStage()?.on('wheel', this.onWheel);\n }\n\n protected getRootMark() {\n return this._service.globalInstance.getStage()?.find(node => node.name === 'root', true) as IGroup;\n }\n\n protected onWheel = (e: WheelEvent) => {\n const scrollX = e.deltaX;\n const scrollY = e.deltaY;\n const rootMark = this.getRootMark();\n if (!rootMark) {\n return;\n }\n this._updateScrollX(rootMark, rootMark.attribute.x - scrollX);\n this._updateScrollY(rootMark, rootMark.attribute.y - scrollY);\n };\n\n private _updateScrollY(rootMark: IGroup, y: number) {\n if (this._spec.y?.enable === false) {\n return;\n }\n const finalY = Math.max(this._scrollLimit.y.min, Math.min(y, this._scrollLimit.y.max));\n const percent = Math.abs(finalY / this._scrollLimit.y.min);\n const yScrollComponent = this._getYScrollComponent();\n yScrollComponent.setAttribute('range', [percent, percent + this._scrollLimit.y.percent]);\n rootMark.setAttributes({\n y: finalY\n });\n }\n\n private _getYScrollComponent() {\n if (!this._yScrollComponent) {\n const canvasSize = this._service.globalInstance.getChart().getCanvasRect();\n const viewSize = this._service.globalInstance.getChart().getViewRect();\n const { enable, ...rest } = this._spec?.y ?? ({} as IScrollPluginSpec['y']);\n this._yScrollComponent = new ScrollBarComponent({\n ...rest,\n zIndex: 9999,\n x: canvasSize.width - scrollBarSize,\n y: 0,\n width: scrollBarSize,\n height: canvasSize.height,\n range: [0, canvasSize.height / viewSize.height],\n direction: 'vertical',\n delayTime: rest?.delayTime ?? 30,\n realTime: rest?.realTime ?? true,\n sliderStyle: { fill: 'rgba(0,0,0,0.3)' }\n });\n this.getRootMark().parent?.addChild(this._yScrollComponent);\n }\n return this._yScrollComponent;\n }\n\n private _updateScrollX(rootMark: IGroup, x: number) {\n if (this._spec.x?.enable === false) {\n return;\n }\n const finalX = Math.max(this._scrollLimit.x.min, Math.min(x, this._scrollLimit.x.max));\n const percent = Math.abs(finalX / this._scrollLimit.x.min);\n const xScrollComponent = this._getXScrollComponent();\n xScrollComponent.setAttribute('range', [percent, percent + this._scrollLimit.x.percent]);\n\n rootMark.setAttributes({\n x: finalX\n });\n }\n\n private _getXScrollComponent() {\n if (!this._xScrollComponent) {\n const canvasSize = this._service.globalInstance.getChart().getCanvasRect();\n const viewSize = this._service.globalInstance.getChart().getViewRect();\n const { enable, ...rest } = this._spec?.x ?? ({} as IScrollPluginSpec['x']);\n this._xScrollComponent = new ScrollBarComponent({\n ...rest,\n zIndex: 9999,\n x: 0,\n y: canvasSize.height - scrollBarSize,\n width: canvasSize.width,\n height: scrollBarSize,\n range: [0, canvasSize.width / viewSize.width],\n direction: 'horizontal',\n delayTime: rest?.delayTime ?? 30,\n realTime: rest?.realTime ?? true\n });\n this.getRootMark().parent?.addChild(this._xScrollComponent);\n }\n return this._xScrollComponent;\n }\n}\n\n/**\n * 注册 ScrollPlugin\n * @since 1.0.0\n */\nexport const registerScrollPlugin = () => {\n registerChartPlugin(ScrollPlugin);\n};\n"]}
@@ -4,8 +4,6 @@ import type { IRectMarkSpec, ILinkPathMarkSpec } from '../../typings/visual';
4
4
  import type { IAnimationSpec } from '../../animation/spec';
5
5
  import type { SeriesMarkNameEnum } from '../interface/type';
6
6
  import type { ILabelSpec } from '../../component/label/interface';
7
- import type { SankeyLayout } from '@visactor/vgrammar-sankey';
8
- import type { ISankeyOpt } from '../../data/transforms/sankey';
9
7
  export type SankeyMark = 'node' | 'link' | 'label';
10
8
  export type SankeyAppearPreset = 'growIn' | 'fadeIn';
11
9
  export interface ISankeyAnimationParams {
@@ -55,7 +53,6 @@ export interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimation
55
53
  };
56
54
  [SeriesMarkNameEnum.label]?: ISankeyLabelSpec | ISankeyLabelSpec[];
57
55
  overflow?: 'scroll' | 'hidden' | 'scroll-x' | 'scroll-y';
58
- customLayout?: (layout: SankeyLayout, originalData: SankeyData, view: ReturnType<ISankeyOpt['view']>) => ReturnType<SankeyLayout['layout']>;
59
56
  }
60
57
  export interface SankeyLinkDatum {
61
58
  source: string | number;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/sankey/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ISeriesSpec, DirectionType, IMarkTheme } from '../../typings';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport type { IRectMarkSpec, ILinkPathMarkSpec } from '../../typings/visual';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILabelSpec } from '../../component/label/interface';\nimport type { SankeyLayout } from '@visactor/vgrammar-sankey';\nimport type { ISankeyOpt } from '../../data/transforms/sankey';\n\nexport type SankeyMark = 'node' | 'link' | 'label';\n\nexport type SankeyAppearPreset = 'growIn' | 'fadeIn';\nexport interface ISankeyAnimationParams {\n direction: DirectionType;\n growFrom: () => number;\n}\n\nexport type ISankeyLabelSpec = ILabelSpec & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';\n /** 标签文字缩略 */\n limit?: number;\n};\n\nexport interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SankeyMark, SankeyAppearPreset> {\n type: 'sankey';\n\n /**\n * 数据字段配置\n */\n /** 节点名称字段配置 */\n categoryField: string;\n /** 节点之间关系的权重字段 */\n valueField: string;\n /** 来源节点数据字段\n * 层级数据不提供\n */\n sourceField?: string;\n /** 目标节点数据字段\n * 层级数据不提供\n */\n targetField?: string;\n\n /**\n * 图表布局方向\n */\n direction?: DirectionType;\n /**\n * 节点的对齐类型,所有深度相同的节点,采用什么对齐方式,决定了节点在第几层:\n * - 横向布局的桑基图,用于计算节点x坐标\n * - 纵向布局的桑基图,用于计算节点y坐标\n */\n nodeAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';\n /**\n * 横向布局的桑基图,设置节点Y坐标的对齐方式:\n * 'start' - '顶部对齐'\n * 'end' - '底部对齐'\n * 'middle' - '居中对齐'\n *\n * 纵向布局的桑基图,设置节点X坐标的对齐方式:\n * 'start' - '左对齐'\n * 'end' - '右对齐'\n * 'middle' - '居中对齐'\n * 'parent' - '父节点',从1.12.14版本开始支持\n *\n * @since 1.12.4\n */\n crossNodeAlign?: 'start' | 'end' | 'middle' | 'parent';\n /**\n * 是否反向\n * @since 1.12.2\n */\n inverse?: boolean;\n /**\n * 同一层中两个节点之间的间隙大小\n */\n nodeGap?: number;\n /**\n * 每个节点的宽度,支持三种取值\n * 1. 百分比字符串,例如:{ nodeWidth: '12%' }\n * 2. 以'px'为单位的简单数字,eg: { nodeWidth: 20 }\n * 3. function,通过自定义计算指定nodeWidth\n */\n nodeWidth?: string | number | ((node: SankeyNodeElement) => number);\n /**\n * link宽度,单位px\n */\n linkWidth?: number | ((link: SankeyLinkElement) => number);\n /**\n * link + node 的最小宽度\n */\n minStepWidth?: number;\n /**\n * 数据不为零或空时节点的最小大小\n * - 这个配置可以用来避免数据太小时看不到太细的节点\n * - 建议小于5px\n */\n minNodeHeight?: number;\n /**\n * 数据不为零或空时边的最小大小\n * - 这个配置可以用来避免数据太小的时候看不到太细的链接\n * - 建议小于5px\n * - 当同时指定 `minNodeHeight` 和 `minLinkHeight` 两个选项时,此选项应小于 `minNodeHeight`\n */\n minLinkHeight?: number;\n /**\n * 数据不为零或空时节点的最大大小\n * @since 1.12.14\n */\n maxNodeHeight?: number;\n /**\n * 数据不为零或空时边的最大大小\n * - 当同时指定 `maxNodeHeight` 和 `maxLinkHeight` 两个选项时,此选项应小于 `maxNodeHeight`\n * @since 1.12.14\n */\n maxLinkHeight?: number;\n /** 布局的迭代次数 */\n iterations?: number;\n /** 解析node的key,defaultValue */\n nodeKey?: string | number | ((datum: SankeyNodeDatum) => string | number);\n /** 按此funtion排序link */\n linkSortBy?: (a: SankeyLinkElement, b: SankeyLinkElement) => number;\n /** 按此funtion排序node */\n nodeSortBy?: (a: SankeyNodeElement, b: SankeyNodeElement) => number;\n /** 自定义指定节点层 */\n setNodeLayer?: (datum: SankeyNodeDatum) => number;\n /**\n * 是否丢弃孤立的节点\n * @since 1.11.0\n */\n dropIsolatedNode?: boolean;\n /**\n * set the height of node\n * @since 1.11.0\n */\n nodeHeight?: number | ((node: SankeyNodeElement) => number);\n /**\n * set the height of link\n * @since 1.11.0\n */\n linkHeight?: number | ((link: SankeyLinkElement, sourceNode: SankeyNodeElement, sourceNodeHeight: number) => number);\n /**\n * each node has same height\n * @since 1.11.0\n */\n equalNodeHeight?: boolean;\n /**\n * the layout type of link\n * @since 1.11.0\n */\n linkOverlap?: 'start' | 'center' | 'end';\n\n /** 节点配置 */\n [SeriesMarkNameEnum.node]?: IMarkSpec<IRectMarkSpec>;\n\n /** 边配置 */\n [SeriesMarkNameEnum.link]?: IMarkSpec<ILinkPathMarkSpec>;\n\n /** 联动交互配置 */\n emphasis?: {\n /** 是否开启交互 */\n enable: boolean;\n /**\n * 交互触发类型\n * 默认为‘click'\n */\n trigger?: 'click' | 'hover';\n /**桑基图提供3种在节点上的交互联动效果\n * self: 仅高亮当前节点。\n * adjacency: 高亮当前节点上下游节点和关联的边,淡化其它图形元素。\n * related: 高亮与当前节点相关的整条路径上的节点和边,淡化其它图形元素。 */\n effect: 'self' | 'adjacency' | 'related';\n /**\n * 高亮状态\n * @default 'selected'\n * @since 1.13.13\n */\n highlightState?: string;\n /**\n * 失焦状态\n * @default 'blur'\n * @since 1.13.13\n */\n blurState?: string;\n };\n\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: ISankeyLabelSpec | ISankeyLabelSpec[];\n\n /**\n * 当制定了节点、边的宽度的时候,可以配置这个属性\n * 当宽度大于图表region的宽度、高度大于图表resion高度的时候是否自动产生滚动条\n * @since 1.13.0\n */\n overflow?: 'scroll' | 'hidden' | 'scroll-x' | 'scroll-y';\n\n /** 进度条配置 */\n // scroll?: IScrollSpec & {\n // /** 是否开启进度条 */\n // enable: boolean;\n // };\n\n /**\n * 自定义布局\n * @since 1.13.19\n */\n customLayout?: (\n layout: SankeyLayout,\n originalData: SankeyData,\n view: ReturnType<ISankeyOpt['view']>\n ) => ReturnType<SankeyLayout['layout']>;\n}\n\nexport interface SankeyLinkDatum {\n source: string | number;\n target: string | number;\n value?: number;\n}\n\nexport interface SankeyNodeDatum {\n value?: number;\n}\n\nexport interface HierarchyNodeDatum {\n value?: number;\n children?: HierarchyNodeDatum[];\n}\n\nexport type SankeyData =\n | {\n nodes?: SankeyNodeDatum[];\n links: SankeyLinkDatum[];\n }\n | {\n nodes: HierarchyNodeDatum[];\n };\n\n/**\n * The node element after sankey layout\n */\nexport interface SankeyNodeElement {\n key: string | number;\n index: number;\n /** the depth of node, from source to target */\n depth: number;\n\n /** the depth of node, from target to source */\n endDepth?: number;\n /** the final layer index after layout */\n layer?: number;\n isLastLayer?: boolean;\n value: number;\n datum: SankeyNodeDatum;\n sourceLinks: SankeyLinkElement[];\n targetLinks: SankeyLinkElement[];\n x0?: number;\n y0?: number;\n x1?: number;\n y1?: number;\n}\n/**\n * the link element after sankey layout\n */\nexport interface SankeyLinkElement {\n vertical?: boolean;\n index: number;\n source: string | number;\n target: string | number;\n value: number;\n datum: SankeyLinkDatum | SankeyLinkDatum[];\n thickness?: number;\n sourceRect?: { x0: number; x1: number; y0: number; y1: number };\n targetRect?: { x0: number; x1: number; y0: number; y1: number };\n /** this will only be generate in hierarchy node data*/\n parents?: (string | number)[];\n y0?: number;\n y1?: number;\n x0?: number;\n x1?: number;\n}\n\nexport type SankeyLayoutResult = {\n nodes: SankeyNodeElement[];\n links: SankeyLinkElement[];\n columns: SankeyNodeElement[][];\n}[];\n\nexport interface ISankeySeriesTheme {\n [SeriesMarkNameEnum.node]?: IMarkTheme<IRectMarkSpec>;\n [SeriesMarkNameEnum.link]?: IMarkTheme<ILinkPathMarkSpec>;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/sankey/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ISeriesSpec, DirectionType, IMarkTheme } from '../../typings';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport type { IRectMarkSpec, ILinkPathMarkSpec } from '../../typings/visual';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILabelSpec } from '../../component/label/interface';\n\nexport type SankeyMark = 'node' | 'link' | 'label';\n\nexport type SankeyAppearPreset = 'growIn' | 'fadeIn';\nexport interface ISankeyAnimationParams {\n direction: DirectionType;\n growFrom: () => number;\n}\n\nexport type ISankeyLabelSpec = ILabelSpec & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';\n /** 标签文字缩略 */\n limit?: number;\n};\n\nexport interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SankeyMark, SankeyAppearPreset> {\n type: 'sankey';\n\n /**\n * 数据字段配置\n */\n /** 节点名称字段配置 */\n categoryField: string;\n /** 节点之间关系的权重字段 */\n valueField: string;\n /** 来源节点数据字段\n * 层级数据不提供\n */\n sourceField?: string;\n /** 目标节点数据字段\n * 层级数据不提供\n */\n targetField?: string;\n\n /**\n * 图表布局方向\n */\n direction?: DirectionType;\n /**\n * 节点的对齐类型,所有深度相同的节点,采用什么对齐方式,决定了节点在第几层:\n * - 横向布局的桑基图,用于计算节点x坐标\n * - 纵向布局的桑基图,用于计算节点y坐标\n */\n nodeAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';\n /**\n * 横向布局的桑基图,设置节点Y坐标的对齐方式:\n * 'start' - '顶部对齐'\n * 'end' - '底部对齐'\n * 'middle' - '居中对齐'\n *\n * 纵向布局的桑基图,设置节点X坐标的对齐方式:\n * 'start' - '左对齐'\n * 'end' - '右对齐'\n * 'middle' - '居中对齐'\n * 'parent' - '父节点',从1.12.14版本开始支持\n *\n * @since 1.12.4\n */\n crossNodeAlign?: 'start' | 'end' | 'middle' | 'parent';\n /**\n * 是否反向\n * @since 1.12.2\n */\n inverse?: boolean;\n /**\n * 同一层中两个节点之间的间隙大小\n */\n nodeGap?: number;\n /**\n * 每个节点的宽度,支持三种取值\n * 1. 百分比字符串,例如:{ nodeWidth: '12%' }\n * 2. 以'px'为单位的简单数字,eg: { nodeWidth: 20 }\n * 3. function,通过自定义计算指定nodeWidth\n */\n nodeWidth?: string | number | ((node: SankeyNodeElement) => number);\n /**\n * link宽度,单位px\n */\n linkWidth?: number | ((link: SankeyLinkElement) => number);\n /**\n * link + node 的最小宽度\n */\n minStepWidth?: number;\n /**\n * 数据不为零或空时节点的最小大小\n * - 这个配置可以用来避免数据太小时看不到太细的节点\n * - 建议小于5px\n */\n minNodeHeight?: number;\n /**\n * 数据不为零或空时边的最小大小\n * - 这个配置可以用来避免数据太小的时候看不到太细的链接\n * - 建议小于5px\n * - 当同时指定 `minNodeHeight` 和 `minLinkHeight` 两个选项时,此选项应小于 `minNodeHeight`\n */\n minLinkHeight?: number;\n /**\n * 数据不为零或空时节点的最大大小\n * @since 1.12.14\n */\n maxNodeHeight?: number;\n /**\n * 数据不为零或空时边的最大大小\n * - 当同时指定 `maxNodeHeight` 和 `maxLinkHeight` 两个选项时,此选项应小于 `maxNodeHeight`\n * @since 1.12.14\n */\n maxLinkHeight?: number;\n /** 布局的迭代次数 */\n iterations?: number;\n /** 解析node的key,defaultValue */\n nodeKey?: string | number | ((datum: SankeyNodeDatum) => string | number);\n /** 按此funtion排序link */\n linkSortBy?: (a: SankeyLinkElement, b: SankeyLinkElement) => number;\n /** 按此funtion排序node */\n nodeSortBy?: (a: SankeyNodeElement, b: SankeyNodeElement) => number;\n /** 自定义指定节点层 */\n setNodeLayer?: (datum: SankeyNodeDatum) => number;\n /**\n * 是否丢弃孤立的节点\n * @since 1.11.0\n */\n dropIsolatedNode?: boolean;\n /**\n * set the height of node\n * @since 1.11.0\n */\n nodeHeight?: number | ((node: SankeyNodeElement) => number);\n /**\n * set the height of link\n * @since 1.11.0\n */\n linkHeight?: number | ((link: SankeyLinkElement, sourceNode: SankeyNodeElement, sourceNodeHeight: number) => number);\n /**\n * each node has same height\n * @since 1.11.0\n */\n equalNodeHeight?: boolean;\n /**\n * the layout type of link\n * @since 1.11.0\n */\n linkOverlap?: 'start' | 'center' | 'end';\n\n /** 节点配置 */\n [SeriesMarkNameEnum.node]?: IMarkSpec<IRectMarkSpec>;\n\n /** 边配置 */\n [SeriesMarkNameEnum.link]?: IMarkSpec<ILinkPathMarkSpec>;\n\n /** 联动交互配置 */\n emphasis?: {\n /** 是否开启交互 */\n enable: boolean;\n /**\n * 交互触发类型\n * 默认为‘click'\n */\n trigger?: 'click' | 'hover';\n /**桑基图提供3种在节点上的交互联动效果\n * self: 仅高亮当前节点。\n * adjacency: 高亮当前节点上下游节点和关联的边,淡化其它图形元素。\n * related: 高亮与当前节点相关的整条路径上的节点和边,淡化其它图形元素。 */\n effect: 'self' | 'adjacency' | 'related';\n /**\n * 高亮状态\n * @default 'selected'\n * @since 1.13.13\n */\n highlightState?: string;\n /**\n * 失焦状态\n * @default 'blur'\n * @since 1.13.13\n */\n blurState?: string;\n };\n\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: ISankeyLabelSpec | ISankeyLabelSpec[];\n\n /**\n * 当制定了节点、边的宽度的时候,可以配置这个属性\n * 当宽度大于图表region的宽度、高度大于图表resion高度的时候是否自动产生滚动条\n * @since 1.13.0\n */\n overflow?: 'scroll' | 'hidden' | 'scroll-x' | 'scroll-y';\n\n /** 进度条配置 */\n // scroll?: IScrollSpec & {\n // /** 是否开启进度条 */\n // enable: boolean;\n // };\n}\n\nexport interface SankeyLinkDatum {\n source: string | number;\n target: string | number;\n value?: number;\n}\n\nexport interface SankeyNodeDatum {\n value?: number;\n}\n\nexport interface HierarchyNodeDatum {\n value?: number;\n children?: HierarchyNodeDatum[];\n}\n\nexport type SankeyData =\n | {\n nodes?: SankeyNodeDatum[];\n links: SankeyLinkDatum[];\n }\n | {\n nodes: HierarchyNodeDatum[];\n };\n\n/**\n * The node element after sankey layout\n */\nexport interface SankeyNodeElement {\n key: string | number;\n index: number;\n /** the depth of node, from source to target */\n depth: number;\n\n /** the depth of node, from target to source */\n endDepth?: number;\n /** the final layer index after layout */\n layer?: number;\n isLastLayer?: boolean;\n value: number;\n datum: SankeyNodeDatum;\n sourceLinks: SankeyLinkElement[];\n targetLinks: SankeyLinkElement[];\n x0?: number;\n y0?: number;\n x1?: number;\n y1?: number;\n}\n/**\n * the link element after sankey layout\n */\nexport interface SankeyLinkElement {\n vertical?: boolean;\n index: number;\n source: string | number;\n target: string | number;\n value: number;\n datum: SankeyLinkDatum | SankeyLinkDatum[];\n thickness?: number;\n sourceRect?: { x0: number; x1: number; y0: number; y1: number };\n targetRect?: { x0: number; x1: number; y0: number; y1: number };\n /** this will only be generate in hierarchy node data*/\n parents?: (string | number)[];\n y0?: number;\n y1?: number;\n x0?: number;\n x1?: number;\n}\n\nexport type SankeyLayoutResult = {\n nodes: SankeyNodeElement[];\n links: SankeyLinkElement[];\n columns: SankeyNodeElement[][];\n}[];\n\nexport interface ISankeySeriesTheme {\n [SeriesMarkNameEnum.node]?: IMarkTheme<IRectMarkSpec>;\n [SeriesMarkNameEnum.link]?: IMarkTheme<ILinkPathMarkSpec>;\n}\n"]}
@@ -6,7 +6,7 @@ import { SeriesData } from '../base/series-data';
6
6
  import type { ISankeySeriesSpec } from './interface';
7
7
  import type { ExtendEventParam } from '../../event/interface';
8
8
  import type { IElement, IGlyphElement, IMark as IVgrammarMark } from '@visactor/vgrammar-core';
9
- import type { IMark, ITextMark } from '../../mark/interface';
9
+ import type { ILinkPathMark, IMark, IRectMark, ITextMark } from '../../mark/interface';
10
10
  import { SankeySeriesSpecTransformer } from './sankey-transformer';
11
11
  import type { ILabelSpec } from '../../component';
12
12
  export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpec> extends CartesianSeries<T> {
@@ -15,8 +15,8 @@ export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpe
15
15
  static readonly transformerConstructor: any;
16
16
  readonly transformerConstructor: typeof SankeySeriesSpecTransformer;
17
17
  static readonly mark: SeriesMarkMap;
18
- private _nodeMark;
19
- private _linkMark;
18
+ protected _nodeMark: IRectMark;
19
+ protected _linkMark: ILinkPathMark;
20
20
  private _nodeLayoutZIndex;
21
21
  private _labelLayoutZIndex;
22
22
  protected _nodesSeriesData?: SeriesData;
@@ -25,7 +25,7 @@ export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpe
25
25
  protected _categoryField: string;
26
26
  private _colorScale;
27
27
  private _nodeList;
28
- private _needClear;
28
+ protected _needClear: boolean;
29
29
  get direction(): "vertical" | "horizontal";
30
30
  getCategoryField(): string;
31
31
  setCategoryField(f: string): string;
@@ -54,11 +54,11 @@ export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpe
54
54
  private nodesSeriesDataUpdate;
55
55
  private linksSeriesDataUpdate;
56
56
  protected _handleEmphasisElement: (params: ExtendEventParam) => void;
57
- protected _handleClearEmpty: (highlightState: string, blurState: string) => void;
57
+ protected _handleClearEmpty(highlightState: string, blurState: string): void;
58
58
  protected _handleNodeAdjacencyClick: (element: IElement, highlightState: string, blurState: string) => void;
59
59
  protected _handleLinkAdjacencyClick: (element: IGlyphElement, highlightState: string, blurState: string) => void;
60
- protected _handleNodeRelatedClick: (element: IElement, highlightState: string, blurState: string) => void;
61
- protected _handleLinkRelatedClick: (element: IGlyphElement, highlightState: string, blurState: string) => void;
60
+ protected _handleNodeRelatedClick(element: IElement, highlightState: string, blurState: string): void;
61
+ protected _handleLinkRelatedClick(element: IGlyphElement, highlightState: string, blurState: string): void;
62
62
  protected _highLightElements(vGrammarElements: IVgrammarMark['elements'], highlightNodes: string[], highlightState: string, blurState: string): void;
63
63
  protected initTooltip(): void;
64
64
  _setNodeOrdinalColorScale(): void;