@visactor/vgrammar-plot 0.7.0-alpha.3 → 0.7.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.
Files changed (147) hide show
  1. package/cjs/area.d.ts +2 -2
  2. package/cjs/area.js +2 -2
  3. package/cjs/area.js.map +1 -1
  4. package/cjs/cell.d.ts +2 -2
  5. package/cjs/cell.js +2 -2
  6. package/cjs/cell.js.map +1 -1
  7. package/cjs/circle-packing.d.ts +2 -2
  8. package/cjs/circle-packing.js +3 -3
  9. package/cjs/circle-packing.js.map +1 -1
  10. package/cjs/image.d.ts +2 -2
  11. package/cjs/image.js +2 -2
  12. package/cjs/image.js.map +1 -1
  13. package/cjs/interval.d.ts +2 -2
  14. package/cjs/interval.js +2 -2
  15. package/cjs/interval.js.map +1 -1
  16. package/cjs/line.d.ts +2 -2
  17. package/cjs/line.js +2 -2
  18. package/cjs/line.js.map +1 -1
  19. package/cjs/path.d.ts +2 -2
  20. package/cjs/path.js +2 -2
  21. package/cjs/path.js.map +1 -1
  22. package/cjs/plot.d.ts +23 -23
  23. package/cjs/plot.js +27 -27
  24. package/cjs/plot.js.map +1 -1
  25. package/cjs/polygon.d.ts +2 -2
  26. package/cjs/polygon.js +2 -2
  27. package/cjs/polygon.js.map +1 -1
  28. package/cjs/rect-x.d.ts +2 -2
  29. package/cjs/rect-x.js +8 -4
  30. package/cjs/rect-x.js.map +1 -1
  31. package/cjs/rect-y.d.ts +2 -2
  32. package/cjs/rect-y.js +8 -4
  33. package/cjs/rect-y.js.map +1 -1
  34. package/cjs/rect.d.ts +2 -2
  35. package/cjs/rect.js +14 -6
  36. package/cjs/rect.js.map +1 -1
  37. package/cjs/rule-x.d.ts +2 -2
  38. package/cjs/rule-x.js +2 -2
  39. package/cjs/rule-x.js.map +1 -1
  40. package/cjs/rule-y.d.ts +2 -2
  41. package/cjs/rule-y.js +2 -2
  42. package/cjs/rule-y.js.map +1 -1
  43. package/cjs/rule.d.ts +2 -2
  44. package/cjs/rule.js +2 -2
  45. package/cjs/rule.js.map +1 -1
  46. package/cjs/sankey.d.ts +4 -4
  47. package/cjs/sankey.js +5 -5
  48. package/cjs/sankey.js.map +1 -1
  49. package/cjs/semantic-mark.d.ts +5 -1
  50. package/cjs/semantic-mark.js +163 -43
  51. package/cjs/semantic-mark.js.map +1 -1
  52. package/cjs/sunburst.d.ts +3 -3
  53. package/cjs/sunburst.js +4 -4
  54. package/cjs/sunburst.js.map +1 -1
  55. package/cjs/symbol.d.ts +2 -2
  56. package/cjs/symbol.js +2 -2
  57. package/cjs/symbol.js.map +1 -1
  58. package/cjs/text.d.ts +2 -2
  59. package/cjs/text.js +2 -2
  60. package/cjs/text.js.map +1 -1
  61. package/cjs/tree.d.ts +2 -2
  62. package/cjs/tree.js +4 -4
  63. package/cjs/tree.js.map +1 -1
  64. package/cjs/treemap.d.ts +3 -3
  65. package/cjs/treemap.js +4 -4
  66. package/cjs/treemap.js.map +1 -1
  67. package/cjs/wordcloud-shape.d.ts +2 -2
  68. package/cjs/wordcloud-shape.js +3 -3
  69. package/cjs/wordcloud-shape.js.map +1 -1
  70. package/cjs/wordcloud.d.ts +2 -2
  71. package/cjs/wordcloud.js +3 -3
  72. package/cjs/wordcloud.js.map +1 -1
  73. package/es/area.d.ts +2 -2
  74. package/es/area.js +1 -1
  75. package/es/area.js.map +1 -1
  76. package/es/cell.d.ts +2 -2
  77. package/es/cell.js +1 -1
  78. package/es/cell.js.map +1 -1
  79. package/es/circle-packing.d.ts +2 -2
  80. package/es/circle-packing.js +2 -2
  81. package/es/circle-packing.js.map +1 -1
  82. package/es/image.d.ts +2 -2
  83. package/es/image.js +1 -1
  84. package/es/image.js.map +1 -1
  85. package/es/interval.d.ts +2 -2
  86. package/es/interval.js +1 -1
  87. package/es/interval.js.map +1 -1
  88. package/es/line.d.ts +2 -2
  89. package/es/line.js +1 -1
  90. package/es/line.js.map +1 -1
  91. package/es/path.d.ts +2 -2
  92. package/es/path.js +1 -1
  93. package/es/path.js.map +1 -1
  94. package/es/plot.d.ts +23 -23
  95. package/es/plot.js +1 -1
  96. package/es/plot.js.map +1 -1
  97. package/es/polygon.d.ts +2 -2
  98. package/es/polygon.js +1 -1
  99. package/es/polygon.js.map +1 -1
  100. package/es/rect-x.d.ts +2 -2
  101. package/es/rect-x.js +9 -3
  102. package/es/rect-x.js.map +1 -1
  103. package/es/rect-y.d.ts +2 -2
  104. package/es/rect-y.js +9 -3
  105. package/es/rect-y.js.map +1 -1
  106. package/es/rect.d.ts +2 -2
  107. package/es/rect.js +15 -5
  108. package/es/rect.js.map +1 -1
  109. package/es/rule-x.d.ts +2 -2
  110. package/es/rule-x.js +1 -1
  111. package/es/rule-x.js.map +1 -1
  112. package/es/rule-y.d.ts +2 -2
  113. package/es/rule-y.js +1 -1
  114. package/es/rule-y.js.map +1 -1
  115. package/es/rule.d.ts +2 -2
  116. package/es/rule.js +1 -1
  117. package/es/rule.js.map +1 -1
  118. package/es/sankey.d.ts +4 -4
  119. package/es/sankey.js +3 -3
  120. package/es/sankey.js.map +1 -1
  121. package/es/semantic-mark.d.ts +5 -1
  122. package/es/semantic-mark.js +137 -18
  123. package/es/semantic-mark.js.map +1 -1
  124. package/es/sunburst.d.ts +3 -3
  125. package/es/sunburst.js +2 -2
  126. package/es/sunburst.js.map +1 -1
  127. package/es/symbol.d.ts +2 -2
  128. package/es/symbol.js +1 -1
  129. package/es/symbol.js.map +1 -1
  130. package/es/text.d.ts +2 -2
  131. package/es/text.js +1 -1
  132. package/es/text.js.map +1 -1
  133. package/es/tree.d.ts +2 -2
  134. package/es/tree.js +3 -3
  135. package/es/tree.js.map +1 -1
  136. package/es/treemap.d.ts +3 -3
  137. package/es/treemap.js +2 -2
  138. package/es/treemap.js.map +1 -1
  139. package/es/wordcloud-shape.d.ts +2 -2
  140. package/es/wordcloud-shape.js +2 -2
  141. package/es/wordcloud-shape.js.map +1 -1
  142. package/es/wordcloud.d.ts +2 -2
  143. package/es/wordcloud.js +2 -2
  144. package/es/wordcloud.js.map +1 -1
  145. package/package.json +8 -8
  146. package/dist/index.js +0 -3448
  147. package/dist/index.min.js +0 -1
package/cjs/area.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { AreaEncodeChannels, SemanticTooltipOption, WithDefaultEncode, PlotAreaEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec } from '@visactor/vgrammar';
1
+ import type { AreaEncodeChannels, SemanticTooltipOption, WithDefaultEncode, PlotAreaEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec } from '@visactor/vgrammar-core';
2
2
  import { SemanticMark } from './semantic-mark';
3
- import { GrammarMarkType } from '@visactor/vgrammar';
3
+ import { GrammarMarkType } from '@visactor/vgrammar-core';
4
4
  import { PlotMakType } from './enums';
5
5
  export declare class Area extends SemanticMark<PlotAreaEncoderSpec, AreaEncodeChannels> {
6
6
  static readonly type = PlotMakType.area;
package/cjs/area.js CHANGED
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Area = void 0;
6
6
 
7
- const semantic_mark_1 = require("./semantic-mark"), vgrammar_1 = require("@visactor/vgrammar"), vutils_1 = require("@visactor/vutils"), enums_1 = require("./enums");
7
+ const semantic_mark_1 = require("./semantic-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), vutils_1 = require("@visactor/vutils"), enums_1 = require("./enums");
8
8
 
9
9
  class Area extends semantic_mark_1.SemanticMark {
10
10
  constructor(id) {
11
11
  super(enums_1.PlotMakType.area, id);
12
12
  }
13
13
  setMarkType() {
14
- return vgrammar_1.GrammarMarkType.area;
14
+ return vgrammar_core_1.GrammarMarkType.area;
15
15
  }
16
16
  parseScaleOfEncodeX(option) {
17
17
  const res = super.parseScaleOfEncodeX(option);
package/cjs/area.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type {\n AreaEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode,\n PlotAreaEncoderSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement,\n CrosshairSpec\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Area extends SemanticMark<PlotAreaEncoderSpec, AreaEncodeChannels> {\n static readonly type = PlotMakType.area;\n constructor(id?: string | number) {\n super(PlotMakType.area, id);\n }\n\n setMarkType() {\n return GrammarMarkType.area;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: AreaEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeX = this.spec.encode?.x;\n const encodeY = this.spec.encode?.y;\n return {\n disableGraphicTooltip: true,\n title: isArray(encodeX) ? encodeX[0] : encodeX,\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotAreaEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n let res: GenerateEncoderSpec<PlotAreaEncoderSpec>;\n\n if (isArray(markEncoder.x?.field)) {\n res = {\n y: markEncoder.y,\n x: { field: markEncoder.x.field[0], scale: markEncoder.x.scale },\n x1: { field: markEncoder.x.field[1], scale: markEncoder.x.scale }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else if (isArray(markEncoder.y?.field)) {\n res = {\n y: { field: markEncoder.y.field[0], scale: markEncoder.y.scale },\n y1: { field: markEncoder.y.field[1], scale: markEncoder.y.scale },\n x: markEncoder.x\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else {\n const scaleYId = this.getScaleId('y');\n res = {\n x: markEncoder.x,\n y: markEncoder.y,\n y1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const domain = scale.domain();\n const min = Math.min.apply(null, domain);\n const max = Math.max.apply(null, domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type {\n AreaEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode,\n PlotAreaEncoderSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement,\n CrosshairSpec\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Area extends SemanticMark<PlotAreaEncoderSpec, AreaEncodeChannels> {\n static readonly type = PlotMakType.area;\n constructor(id?: string | number) {\n super(PlotMakType.area, id);\n }\n\n setMarkType() {\n return GrammarMarkType.area;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: AreaEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeX = this.spec.encode?.x;\n const encodeY = this.spec.encode?.y;\n return {\n disableGraphicTooltip: true,\n title: isArray(encodeX) ? encodeX[0] : encodeX,\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotAreaEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n let res: GenerateEncoderSpec<PlotAreaEncoderSpec>;\n\n if (isArray(markEncoder.x?.field)) {\n res = {\n y: markEncoder.y,\n x: { field: markEncoder.x.field[0], scale: markEncoder.x.scale },\n x1: { field: markEncoder.x.field[1], scale: markEncoder.x.scale }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else if (isArray(markEncoder.y?.field)) {\n res = {\n y: { field: markEncoder.y.field[0], scale: markEncoder.y.scale },\n y1: { field: markEncoder.y.field[1], scale: markEncoder.y.scale },\n x: markEncoder.x\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else {\n const scaleYId = this.getScaleId('y');\n res = {\n x: markEncoder.x,\n y: markEncoder.y,\n y1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const domain = scale.domain();\n const min = Math.min.apply(null, domain);\n const max = Math.max.apply(null, domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
package/cjs/cell.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec, CellEncodeChannels, SemanticTooltipOption, WithDefaultEncode } from '@visactor/vgrammar';
1
+ import type { BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec, CellEncodeChannels, SemanticTooltipOption, WithDefaultEncode } from '@visactor/vgrammar-core';
2
2
  import { SemanticMark } from './semantic-mark';
3
- import { GrammarMarkType } from '@visactor/vgrammar';
3
+ import { GrammarMarkType } from '@visactor/vgrammar-core';
4
4
  import { PlotMakType } from './enums';
5
5
  export declare class Cell extends SemanticMark<BasicEncoderSpecMap['cell'], CellEncodeChannels> {
6
6
  static readonly type = PlotMakType.cell;
package/cjs/cell.js CHANGED
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Cell = void 0;
6
6
 
7
- const semantic_mark_1 = require("./semantic-mark"), vgrammar_1 = require("@visactor/vgrammar"), enums_1 = require("./enums");
7
+ const semantic_mark_1 = require("./semantic-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), enums_1 = require("./enums");
8
8
 
9
9
  class Cell extends semantic_mark_1.SemanticMark {
10
10
  constructor(id) {
11
11
  super(enums_1.PlotMakType.cell, id);
12
12
  }
13
13
  setMarkType() {
14
- return vgrammar_1.GrammarMarkType.cell;
14
+ return vgrammar_core_1.GrammarMarkType.cell;
15
15
  }
16
16
  parseScaleOfEncodeX(option) {
17
17
  const res = super.parseScaleOfEncodeX(option);
package/cjs/cell.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cell.ts"],"names":[],"mappings":";;;AAYA,mDAA+C;AAE/C,iDAAqD;AACrD,mCAAsC;AAEtC,MAAa,IAAK,SAAQ,4BAA6D;IAErF,YAAY,EAAoB;QAC9B,KAAK,CAAC,mBAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,0BAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAC3B,MAAuG;QAEvG,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAChB,OAA2B,EAC3B,MAAuG;QAEvG,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,iBAAiB;;QACf,OAAO;YACL,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;YAC1B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;iBAC3B;aACF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,MAA0E;;QAE1E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,WAAW,CAAC,CAAC;YAChB,CAAC,EAAE,WAAW,CAAC,CAAC;SACmC,CAAC;QAEtD,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;SACjC;QAED,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,IAAI,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,KAAK,CAAC;SACnD;aAAM;YACL,GAAG,CAAC,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,IAAI,mCAAI,MAAA,IAAI,CAAC,UAAU,EAAE,0CAAG,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,GAAG,CAAC;IACb,CAAC;;AAhEH,oBAiEC;AAhEiB,SAAI,GAAG,mBAAW,CAAC,IAAI,CAAC","file":"cell.js","sourcesContent":["import type {\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n CellEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\n\nexport class Cell extends SemanticMark<BasicEncoderSpecMap['cell'], CellEncodeChannels> {\n static readonly type = PlotMakType.cell;\n constructor(id?: string | number) {\n super(PlotMakType.cell, id);\n }\n\n setMarkType() {\n return GrammarMarkType.cell;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: CellEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n return {\n title: this.spec.encode?.x,\n content: [\n {\n value: this.spec.encode?.y\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['cell']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res = {\n y: markEncoder.y,\n x: markEncoder.x\n } as GenerateEncoderSpec<BasicEncoderSpecMap['cell']>;\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/cell.ts"],"names":[],"mappings":";;;AAYA,mDAA+C;AAE/C,2DAA0D;AAC1D,mCAAsC;AAEtC,MAAa,IAAK,SAAQ,4BAA6D;IAErF,YAAY,EAAoB;QAC9B,KAAK,CAAC,mBAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,+BAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAC3B,MAAuG;QAEvG,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAChB,OAA2B,EAC3B,MAAuG;QAEvG,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,iBAAiB;;QACf,OAAO;YACL,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;YAC1B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;iBAC3B;aACF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,MAA0E;;QAE1E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,WAAW,CAAC,CAAC;YAChB,CAAC,EAAE,WAAW,CAAC,CAAC;SACmC,CAAC;QAEtD,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;SACjC;QAED,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,IAAI,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,KAAK,CAAC;SACnD;aAAM;YACL,GAAG,CAAC,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,IAAI,mCAAI,MAAA,IAAI,CAAC,UAAU,EAAE,0CAAG,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,GAAG,CAAC;IACb,CAAC;;AAhEH,oBAiEC;AAhEiB,SAAI,GAAG,mBAAW,CAAC,IAAI,CAAC","file":"cell.js","sourcesContent":["import type {\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n CellEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\n\nexport class Cell extends SemanticMark<BasicEncoderSpecMap['cell'], CellEncodeChannels> {\n static readonly type = PlotMakType.cell;\n constructor(id?: string | number) {\n super(PlotMakType.cell, id);\n }\n\n setMarkType() {\n return GrammarMarkType.cell;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: CellEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n return {\n title: this.spec.encode?.x,\n content: [\n {\n value: this.spec.encode?.y\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['cell']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res = {\n y: markEncoder.y,\n x: markEncoder.x\n } as GenerateEncoderSpec<BasicEncoderSpecMap['cell']>;\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import type { GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, TransformSpec, ChannelEncodeType, CirclepackingEncodeChannels, WithDefaultEncode, PlotCirclePackingEncodeSpec, SemanticLabelOption } from '@visactor/vgrammar';
1
+ import type { GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, TransformSpec, ChannelEncodeType, CirclepackingEncodeChannels, WithDefaultEncode, PlotCirclePackingEncodeSpec, SemanticLabelOption } from '@visactor/vgrammar-core';
2
2
  import { SemanticMark } from './semantic-mark';
3
- import { GrammarMarkType } from '@visactor/vgrammar';
3
+ import { GrammarMarkType } from '@visactor/vgrammar-core';
4
4
  import { PlotMakType } from './enums';
5
5
  import type { ITextAttribute } from '@visactor/vrender';
6
6
  export declare class CirclePackingSemanticMark extends SemanticMark<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels> {
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.CirclePackingSemanticMark = void 0;
6
6
 
7
- const semantic_mark_1 = require("./semantic-mark"), vgrammar_1 = require("@visactor/vgrammar"), enums_1 = require("./enums"), vgrammar_util_1 = require("@visactor/vgrammar-util");
7
+ const semantic_mark_1 = require("./semantic-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), enums_1 = require("./enums"), vgrammar_util_1 = require("@visactor/vgrammar-util");
8
8
 
9
9
  class CirclePackingSemanticMark extends semantic_mark_1.SemanticMark {
10
10
  constructor(id) {
11
- super(enums_1.PlotMakType.circlePacking, id), (0, vgrammar_1.getTransform)(enums_1.PlotMakType.circlePacking) || this._logger.error("Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart");
11
+ super(enums_1.PlotMakType.circlePacking, id), vgrammar_core_1.Factory.getTransform(enums_1.PlotMakType.circlePacking) || this._logger.error("Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart");
12
12
  }
13
13
  setMarkType() {
14
- return vgrammar_1.GrammarMarkType.circle;
14
+ return vgrammar_core_1.GrammarMarkType.circle;
15
15
  }
16
16
  setDefaultDataTransform() {
17
17
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/circle-packing.ts"],"names":[],"mappings":"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","file":"circle-packing.js","sourcesContent":["import type {\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n TransformSpec,\n IElement,\n ChannelEncodeType,\n CirclepackingEncodeChannels,\n WithDefaultEncode,\n PlotCirclePackingEncodeSpec,\n SemanticLabelOption\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType, getTransform } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type { ITextAttribute } from '@visactor/vrender';\n\nexport class CirclePackingSemanticMark extends SemanticMark<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels> {\n static readonly type = PlotMakType.circlePacking;\n constructor(id?: string | number) {\n super(PlotMakType.circlePacking, id);\n\n if (!getTransform(PlotMakType.circlePacking)) {\n this._logger.error(\n `Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart`\n );\n }\n }\n\n setMarkType() {\n return GrammarMarkType.circle;\n }\n\n setDefaultDataTransform(): TransformSpec[] {\n return [\n {\n type: PlotMakType.circlePacking,\n width: { signal: 'viewWidth' },\n height: { signal: 'viewHeight' },\n nodeKey: this.spec.encode?.node,\n flatten: true\n }\n ];\n }\n parseScaleByEncode(\n channel: CirclepackingEncodeChannels,\n option: ValueOf<\n WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>,\n CirclepackingEncodeChannels\n >\n ): ScaleSpec | Nil {\n if (channel === 'color') {\n return {\n type: 'ordinal',\n id: this.getScaleId('color'),\n domain: {\n data: this.getDataIdOfFiltered(),\n field: option as string\n },\n range: this.getPalette()\n };\n }\n\n return null;\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotCirclePackingEncodeSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res: GenerateEncoderSpec<PlotCirclePackingEncodeSpec> = {\n x: { field: 'x' },\n y: { field: 'y' },\n radius: { field: 'radius' }\n };\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color) {\n const scaleColorId = this.getScaleId('color');\n const colorAccessor = getFieldAccessor(markEncoder.color.field);\n\n res.fill = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleColorId];\n return datum?.datum ? scale.scale(colorAccessor(datum.datum[datum.datum.length - 1])) : undefined;\n };\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n\n setMainMarkSpec() {\n return { key: 'key' };\n }\n\n protected setLabelTextGetter(\n channel: string,\n option: SemanticLabelOption | boolean\n ): ChannelEncodeType<ITextAttribute['text']> {\n const textGetter = getFieldAccessor(channel);\n return (datum: any, el: IElement, params: any) => {\n return textGetter(datum.datum[datum.datum.length - 1]);\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/circle-packing.ts"],"names":[],"mappings":"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","file":"circle-packing.js","sourcesContent":["import type {\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n TransformSpec,\n IElement,\n ChannelEncodeType,\n CirclepackingEncodeChannels,\n WithDefaultEncode,\n PlotCirclePackingEncodeSpec,\n SemanticLabelOption\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType, Factory } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type { ITextAttribute } from '@visactor/vrender';\n\nexport class CirclePackingSemanticMark extends SemanticMark<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels> {\n static readonly type = PlotMakType.circlePacking;\n constructor(id?: string | number) {\n super(PlotMakType.circlePacking, id);\n\n if (!Factory.getTransform(PlotMakType.circlePacking)) {\n this._logger.error(\n `Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart`\n );\n }\n }\n\n setMarkType() {\n return GrammarMarkType.circle;\n }\n\n setDefaultDataTransform(): TransformSpec[] {\n return [\n {\n type: PlotMakType.circlePacking,\n width: { signal: 'viewWidth' },\n height: { signal: 'viewHeight' },\n nodeKey: this.spec.encode?.node,\n flatten: true\n }\n ];\n }\n parseScaleByEncode(\n channel: CirclepackingEncodeChannels,\n option: ValueOf<\n WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>,\n CirclepackingEncodeChannels\n >\n ): ScaleSpec | Nil {\n if (channel === 'color') {\n return {\n type: 'ordinal',\n id: this.getScaleId('color'),\n domain: {\n data: this.getDataIdOfFiltered(),\n field: option as string\n },\n range: this.getPalette()\n };\n }\n\n return null;\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotCirclePackingEncodeSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res: GenerateEncoderSpec<PlotCirclePackingEncodeSpec> = {\n x: { field: 'x' },\n y: { field: 'y' },\n radius: { field: 'radius' }\n };\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color) {\n const scaleColorId = this.getScaleId('color');\n const colorAccessor = getFieldAccessor(markEncoder.color.field);\n\n res.fill = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleColorId];\n return datum?.datum ? scale.scale(colorAccessor(datum.datum[datum.datum.length - 1])) : undefined;\n };\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n\n setMainMarkSpec() {\n return { key: 'key' };\n }\n\n protected setLabelTextGetter(\n channel: string,\n option: SemanticLabelOption | boolean\n ): ChannelEncodeType<ITextAttribute['text']> {\n const textGetter = getFieldAccessor(channel);\n return (datum: any, el: IElement, params: any) => {\n return textGetter(datum.datum[datum.datum.length - 1]);\n };\n }\n}\n"]}
package/cjs/image.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { SemanticMark } from './semantic-mark';
2
- import type { ImageEncodeChannels, WithDefaultEncode, PlotImageEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
3
- import { GrammarMarkType } from '@visactor/vgrammar';
2
+ import type { ImageEncodeChannels, WithDefaultEncode, PlotImageEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar-core';
3
+ import { GrammarMarkType } from '@visactor/vgrammar-core';
4
4
  import { PlotMakType } from './enums';
5
5
  export declare class ImageSemanticMark extends SemanticMark<PlotImageEncoderSpec, ImageEncodeChannels> {
6
6
  static readonly type = PlotMakType.image;
package/cjs/image.js CHANGED
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.ImageSemanticMark = void 0;
6
6
 
7
- const semantic_mark_1 = require("./semantic-mark"), vgrammar_1 = require("@visactor/vgrammar"), vutils_1 = require("@visactor/vutils"), vgrammar_util_1 = require("@visactor/vgrammar-util"), enums_1 = require("./enums");
7
+ const semantic_mark_1 = require("./semantic-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), vutils_1 = require("@visactor/vutils"), vgrammar_util_1 = require("@visactor/vgrammar-util"), enums_1 = require("./enums");
8
8
 
9
9
  class ImageSemanticMark extends semantic_mark_1.SemanticMark {
10
10
  constructor(id) {
11
11
  super(enums_1.PlotMakType.image, id);
12
12
  }
13
13
  setMarkType() {
14
- return vgrammar_1.GrammarMarkType.image;
14
+ return vgrammar_core_1.GrammarMarkType.image;
15
15
  }
16
16
  parseScaleOfEncodeX(option) {
17
17
  const res = super.parseScaleOfEncodeX(option);
package/cjs/image.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/image.ts"],"names":[],"mappings":"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","file":"image.js","sourcesContent":["import { SemanticMark } from './semantic-mark';\nimport type {\n ImageEncodeChannels,\n WithDefaultEncode,\n PlotImageEncoderSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n IElement,\n Nil,\n ScaleSpec,\n ValueOf\n} from '@visactor/vgrammar';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar';\nimport { isArray } from '@visactor/vutils';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport { PlotMakType } from './enums';\n\nexport class ImageSemanticMark extends SemanticMark<PlotImageEncoderSpec, ImageEncodeChannels> {\n static readonly type = PlotMakType.image;\n static defaultSpec: PlotImageEncoderSpec = { width: 10, height: 10 };\n constructor(id?: string | number) {\n super(PlotMakType.image, id);\n }\n\n setMarkType() {\n return GrammarMarkType.image;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: ImageEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>\n ): ScaleSpec | Nil {\n if (channel === 'src') {\n return {\n type: 'ordinal',\n id: this.getScaleId('src'),\n domain: {\n data: this.getDataIdOfMain(),\n field: option as string\n }\n };\n }\n\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotImageEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const res: GenerateEncoderSpec<PlotImageEncoderSpec> = {\n image: markEncoder.src\n };\n\n if (markEncoder.src) {\n res.image = markEncoder.src;\n }\n\n if (isArray(markEncoder.x?.field)) {\n const xAccessor = getFieldAccessor(markEncoder.x.field[0]);\n const x1Accessor = getFieldAccessor(markEncoder.x.field[1]);\n res.x = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return Math.min(scale.scale(xAccessor(datum)), scale.scale(x1Accessor(datum)));\n };\n res.width = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return Math.abs(scale.scale(xAccessor(datum)) - scale.scale(x1Accessor(datum)));\n };\n } else {\n const width = this.spec.style?.width ?? ImageSemanticMark.defaultSpec.width;\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n\n res.x = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return scale.scale(xAccessor(datum)) - width / 2;\n };\n res.width = width;\n }\n\n if (isArray(markEncoder.y?.field)) {\n const yAccessor = getFieldAccessor(markEncoder.y.field[0]);\n const y1Accessor = getFieldAccessor(markEncoder.y.field[1]);\n res.y = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n\n return Math.min(scale.scale(yAccessor(datum)), scale.scale(y1Accessor(datum)));\n };\n res.height = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n\n return Math.abs(scale.scale(yAccessor(datum)) - scale.scale(y1Accessor(datum)));\n };\n } else {\n const height = this.spec.style?.height ?? ImageSemanticMark.defaultSpec.height;\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n\n res.y = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return scale.scale(yAccessor(datum)) - height / 2;\n };\n res.height = height;\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/image.ts"],"names":[],"mappings":"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","file":"image.js","sourcesContent":["import { SemanticMark } from './semantic-mark';\nimport type {\n ImageEncodeChannels,\n WithDefaultEncode,\n PlotImageEncoderSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n IElement,\n Nil,\n ScaleSpec,\n ValueOf\n} from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { isArray } from '@visactor/vutils';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport { PlotMakType } from './enums';\n\nexport class ImageSemanticMark extends SemanticMark<PlotImageEncoderSpec, ImageEncodeChannels> {\n static readonly type = PlotMakType.image;\n static defaultSpec: PlotImageEncoderSpec = { width: 10, height: 10 };\n constructor(id?: string | number) {\n super(PlotMakType.image, id);\n }\n\n setMarkType() {\n return GrammarMarkType.image;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: ImageEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>\n ): ScaleSpec | Nil {\n if (channel === 'src') {\n return {\n type: 'ordinal',\n id: this.getScaleId('src'),\n domain: {\n data: this.getDataIdOfMain(),\n field: option as string\n }\n };\n }\n\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotImageEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const res: GenerateEncoderSpec<PlotImageEncoderSpec> = {\n image: markEncoder.src\n };\n\n if (markEncoder.src) {\n res.image = markEncoder.src;\n }\n\n if (isArray(markEncoder.x?.field)) {\n const xAccessor = getFieldAccessor(markEncoder.x.field[0]);\n const x1Accessor = getFieldAccessor(markEncoder.x.field[1]);\n res.x = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return Math.min(scale.scale(xAccessor(datum)), scale.scale(x1Accessor(datum)));\n };\n res.width = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return Math.abs(scale.scale(xAccessor(datum)) - scale.scale(x1Accessor(datum)));\n };\n } else {\n const width = this.spec.style?.width ?? ImageSemanticMark.defaultSpec.width;\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n\n res.x = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return scale.scale(xAccessor(datum)) - width / 2;\n };\n res.width = width;\n }\n\n if (isArray(markEncoder.y?.field)) {\n const yAccessor = getFieldAccessor(markEncoder.y.field[0]);\n const y1Accessor = getFieldAccessor(markEncoder.y.field[1]);\n res.y = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n\n return Math.min(scale.scale(yAccessor(datum)), scale.scale(y1Accessor(datum)));\n };\n res.height = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n\n return Math.abs(scale.scale(yAccessor(datum)) - scale.scale(y1Accessor(datum)));\n };\n } else {\n const height = this.spec.style?.height ?? ImageSemanticMark.defaultSpec.height;\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n\n res.y = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return scale.scale(yAccessor(datum)) - height / 2;\n };\n res.height = height;\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
package/cjs/interval.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { IntervalEncodeChannels, PlotIntervalEncoderSpec, SemanticTooltipOption, WithDefaultEncode, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec, AttributeTransform, TransformSpec } from '@visactor/vgrammar';
1
+ import type { IntervalEncodeChannels, PlotIntervalEncoderSpec, SemanticTooltipOption, WithDefaultEncode, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec, AttributeTransform, TransformSpec } from '@visactor/vgrammar-core';
2
2
  import { SemanticMark } from './semantic-mark';
3
- import { GrammarMarkType } from '@visactor/vgrammar';
3
+ import { GrammarMarkType } from '@visactor/vgrammar-core';
4
4
  import { PlotMakType } from './enums';
5
5
  export declare class Interval extends SemanticMark<PlotIntervalEncoderSpec, IntervalEncodeChannels> {
6
6
  static readonly type = PlotMakType.interval;
package/cjs/interval.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Interval = void 0;
6
6
 
7
- const vgrammar_util_1 = require("@visactor/vgrammar-util"), semantic_mark_1 = require("./semantic-mark"), vgrammar_1 = require("@visactor/vgrammar"), vutils_1 = require("@visactor/vutils"), enums_1 = require("./enums");
7
+ const vgrammar_util_1 = require("@visactor/vgrammar-util"), semantic_mark_1 = require("./semantic-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), vutils_1 = require("@visactor/vutils"), enums_1 = require("./enums");
8
8
 
9
9
  class Interval extends semantic_mark_1.SemanticMark {
10
10
  constructor(id) {
@@ -12,7 +12,7 @@ class Interval extends semantic_mark_1.SemanticMark {
12
12
  }
13
13
  setMarkType() {
14
14
  var _a;
15
- return "polar" === (null === (_a = this._coordinate) || void 0 === _a ? void 0 : _a.type) ? vgrammar_1.GrammarMarkType.arc : vgrammar_1.GrammarMarkType.rect;
15
+ return "polar" === (null === (_a = this._coordinate) || void 0 === _a ? void 0 : _a.type) ? vgrammar_core_1.GrammarMarkType.arc : vgrammar_core_1.GrammarMarkType.rect;
16
16
  }
17
17
  parseScaleByEncode(channel, option) {
18
18
  return this.parseScaleOfCommonEncode(channel, option);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interval.ts"],"names":[],"mappings":"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","file":"interval.js","sourcesContent":["import type { IBandLikeScale } from '@visactor/vscale';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n IntervalEncodeChannels,\n PlotIntervalEncoderSpec,\n SemanticTooltipOption,\n WithDefaultEncode,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n GenerateEncoderSpec,\n AttributeTransform,\n IElement,\n TransformSpec\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar';\nimport type { IPolarCoordinate } from '@visactor/vgrammar-coordinate';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Interval extends SemanticMark<PlotIntervalEncoderSpec, IntervalEncodeChannels> {\n static readonly type = PlotMakType.interval;\n constructor(id?: string | number) {\n super(PlotMakType.interval, id);\n }\n\n setMarkType() {\n return this._coordinate?.type === 'polar' ? GrammarMarkType.arc : GrammarMarkType.rect;\n }\n\n parseScaleByEncode(\n channel: IntervalEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>, IntervalEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultMarkTransform(): TransformSpec[] {\n return [\n {\n type: 'dodge',\n minWidth: this.spec.style?.minWidth,\n maxWidth: this.spec.style?.maxWidth,\n innerGap: this.spec.style?.innerGap,\n categoryGap: this.spec.style?.categoryGap\n }\n ];\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'rect' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeY = this.spec.encode?.y;\n return {\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n setMainMarkSpec() {\n return this._coordinate?.type === 'polar'\n ? {\n attributeTransforms: [\n {\n channels: ['x', 'y', 'x1', 'y1', 'cx', 'cy'],\n transform: (graphicAttributes: any, nextAttrs: any, storedAttrs: any) => {\n graphicAttributes.x = storedAttrs.cx;\n graphicAttributes.y = storedAttrs.cy;\n if (this._coordinate.transpose) {\n graphicAttributes.startAngle = storedAttrs.y;\n graphicAttributes.endAngle = storedAttrs.y1;\n graphicAttributes.innerRadius = storedAttrs.x;\n graphicAttributes.outerRadius = storedAttrs.x1;\n } else {\n //\n graphicAttributes.startAngle = storedAttrs.x;\n graphicAttributes.endAngle = storedAttrs.x1;\n graphicAttributes.innerRadius = storedAttrs.y;\n graphicAttributes.outerRadius = storedAttrs.y1;\n }\n },\n storedAttrs: 'sizeAttrs'\n }\n ] as AttributeTransform[]\n }\n : {};\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotIntervalEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n const res: GenerateEncoderSpec<PlotIntervalEncoderSpec> = {\n x: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + bandWidth / 4;\n },\n x1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + (3 * bandWidth) / 4;\n }\n };\n\n if (isArray(markEncoder.y?.field)) {\n res.y = { field: markEncoder.y.field[0], scale: markEncoder.y.scale };\n res.y1 = { field: markEncoder.y.field[1], scale: markEncoder.y.scale };\n } else {\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n res.y = (datum: any, el: IElement, params: any) => {\n const yVals = yAccessor(datum);\n const scale = params[scaleYId];\n\n return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);\n };\n res.y1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const yVals = yAccessor(datum);\n\n if (isArray(yVals) && yVals.length > 1) {\n return scale.scale(yVals[1]);\n }\n const domain = scale.domain();\n const min = Math.min.apply(null, domain);\n const max = Math.max.apply(null, domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n };\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n if (this._coordinate?.type === 'polar') {\n (res as any).cx = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.x;\n };\n (res as any).cy = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.y;\n };\n }\n\n return res;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/interval.ts"],"names":[],"mappings":"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","file":"interval.js","sourcesContent":["import type { IBandLikeScale } from '@visactor/vscale';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n IntervalEncodeChannels,\n PlotIntervalEncoderSpec,\n SemanticTooltipOption,\n WithDefaultEncode,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n GenerateEncoderSpec,\n AttributeTransform,\n IElement,\n TransformSpec\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport type { IPolarCoordinate } from '@visactor/vgrammar-coordinate';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Interval extends SemanticMark<PlotIntervalEncoderSpec, IntervalEncodeChannels> {\n static readonly type = PlotMakType.interval;\n constructor(id?: string | number) {\n super(PlotMakType.interval, id);\n }\n\n setMarkType() {\n return this._coordinate?.type === 'polar' ? GrammarMarkType.arc : GrammarMarkType.rect;\n }\n\n parseScaleByEncode(\n channel: IntervalEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>, IntervalEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultMarkTransform(): TransformSpec[] {\n return [\n {\n type: 'dodge',\n minWidth: this.spec.style?.minWidth,\n maxWidth: this.spec.style?.maxWidth,\n innerGap: this.spec.style?.innerGap,\n categoryGap: this.spec.style?.categoryGap\n }\n ];\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'rect' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeY = this.spec.encode?.y;\n return {\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n setMainMarkSpec() {\n return this._coordinate?.type === 'polar'\n ? {\n attributeTransforms: [\n {\n channels: ['x', 'y', 'x1', 'y1', 'cx', 'cy'],\n transform: (graphicAttributes: any, nextAttrs: any, storedAttrs: any) => {\n graphicAttributes.x = storedAttrs.cx;\n graphicAttributes.y = storedAttrs.cy;\n if (this._coordinate.transpose) {\n graphicAttributes.startAngle = storedAttrs.y;\n graphicAttributes.endAngle = storedAttrs.y1;\n graphicAttributes.innerRadius = storedAttrs.x;\n graphicAttributes.outerRadius = storedAttrs.x1;\n } else {\n //\n graphicAttributes.startAngle = storedAttrs.x;\n graphicAttributes.endAngle = storedAttrs.x1;\n graphicAttributes.innerRadius = storedAttrs.y;\n graphicAttributes.outerRadius = storedAttrs.y1;\n }\n },\n storedAttrs: 'sizeAttrs'\n }\n ] as AttributeTransform[]\n }\n : {};\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotIntervalEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n const res: GenerateEncoderSpec<PlotIntervalEncoderSpec> = {\n x: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + bandWidth / 4;\n },\n x1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + (3 * bandWidth) / 4;\n }\n };\n\n if (isArray(markEncoder.y?.field)) {\n res.y = { field: markEncoder.y.field[0], scale: markEncoder.y.scale };\n res.y1 = { field: markEncoder.y.field[1], scale: markEncoder.y.scale };\n } else {\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n res.y = (datum: any, el: IElement, params: any) => {\n const yVals = yAccessor(datum);\n const scale = params[scaleYId];\n\n return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);\n };\n res.y1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const yVals = yAccessor(datum);\n\n if (isArray(yVals) && yVals.length > 1) {\n return scale.scale(yVals[1]);\n }\n const domain = scale.domain();\n const min = Math.min.apply(null, domain);\n const max = Math.max.apply(null, domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n };\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n if (this._coordinate?.type === 'polar') {\n (res as any).cx = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.x;\n };\n (res as any).cy = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.y;\n };\n }\n\n return res;\n }\n}\n"]}
package/cjs/line.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { LineEncodeChannels, SemanticTooltipOption, WithDefaultEncode, BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec } from '@visactor/vgrammar';
1
+ import type { LineEncodeChannels, SemanticTooltipOption, WithDefaultEncode, BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec } from '@visactor/vgrammar-core';
2
2
  import { SemanticMark } from './semantic-mark';
3
- import { GrammarMarkType } from '@visactor/vgrammar';
3
+ import { GrammarMarkType } from '@visactor/vgrammar-core';
4
4
  import { PlotMakType } from './enums';
5
5
  export declare class Line extends SemanticMark<BasicEncoderSpecMap['line'], LineEncodeChannels> {
6
6
  static readonly type = PlotMakType.line;
package/cjs/line.js CHANGED
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Line = void 0;
6
6
 
7
- const semantic_mark_1 = require("./semantic-mark"), vgrammar_1 = require("@visactor/vgrammar"), enums_1 = require("./enums");
7
+ const semantic_mark_1 = require("./semantic-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), enums_1 = require("./enums");
8
8
 
9
9
  class Line extends semantic_mark_1.SemanticMark {
10
10
  constructor(id) {
11
11
  super(enums_1.PlotMakType.line, id);
12
12
  }
13
13
  setMarkType() {
14
- return vgrammar_1.GrammarMarkType.line;
14
+ return vgrammar_core_1.GrammarMarkType.line;
15
15
  }
16
16
  parseScaleOfEncodeX(option) {
17
17
  const res = super.parseScaleOfEncodeX(option);
package/cjs/line.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/line.ts"],"names":[],"mappings":";;;AAYA,mDAA+C;AAE/C,iDAAqD;AACrD,mCAAsC;AAEtC,MAAa,IAAK,SAAQ,4BAA6D;IAErF,YAAY,EAAoB;QAC9B,KAAK,CAAC,mBAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,0BAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAC3B,MAAuG;QAEvG,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAChB,OAA2B,EAC3B,MAAuG;QAEvG,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,iBAAiB;;QACf,OAAO;YACL,qBAAqB,EAAE,IAAI;YAC3B,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;YAC1B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;iBAC3B;aACF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,MAA0E;;QAE1E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,WAAW,CAAC,CAAC;YAChB,CAAC,EAAE,WAAW,CAAC,CAAC;SACmC,CAAC;QAEtD,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,KAAK,CAAC;SACrD;aAAM;YACL,GAAG,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,MAAM,mCAAI,MAAA,IAAI,CAAC,UAAU,EAAE,0CAAG,CAAC,CAAC,CAAC;SAChE;QAED,OAAO,GAAG,CAAC;IACb,CAAC;;AA7DH,oBA8DC;AA7DiB,SAAI,GAAG,mBAAW,CAAC,IAAI,CAAC","file":"line.js","sourcesContent":["import type {\n LineEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode,\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n GenerateEncoderSpec\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\n\nexport class Line extends SemanticMark<BasicEncoderSpecMap['line'], LineEncodeChannels> {\n static readonly type = PlotMakType.line;\n constructor(id?: string | number) {\n super(PlotMakType.line, id);\n }\n\n setMarkType() {\n return GrammarMarkType.line;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['line'], LineEncodeChannels>, LineEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: LineEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['line'], LineEncodeChannels>, LineEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n return {\n disableGraphicTooltip: true,\n title: this.spec.encode?.x,\n content: [\n {\n value: this.spec.encode?.y\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['line'], LineEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['line']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res = {\n y: markEncoder.y,\n x: markEncoder.x\n } as GenerateEncoderSpec<BasicEncoderSpecMap['line']>;\n\n if (markEncoder.color || markEncoder.group) {\n res.stroke = markEncoder.color ?? markEncoder.group;\n } else {\n res.stroke = this.spec.style?.stroke ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/line.ts"],"names":[],"mappings":";;;AAYA,mDAA+C;AAE/C,2DAA0D;AAC1D,mCAAsC;AAEtC,MAAa,IAAK,SAAQ,4BAA6D;IAErF,YAAY,EAAoB;QAC9B,KAAK,CAAC,mBAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,+BAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAC3B,MAAuG;QAEvG,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAChB,OAA2B,EAC3B,MAAuG;QAEvG,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,iBAAiB;;QACf,OAAO;YACL,qBAAqB,EAAE,IAAI;YAC3B,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;YAC1B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;iBAC3B;aACF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,MAA0E;;QAE1E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,WAAW,CAAC,CAAC;YAChB,CAAC,EAAE,WAAW,CAAC,CAAC;SACmC,CAAC;QAEtD,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,KAAK,CAAC;SACrD;aAAM;YACL,GAAG,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,MAAM,mCAAI,MAAA,IAAI,CAAC,UAAU,EAAE,0CAAG,CAAC,CAAC,CAAC;SAChE;QAED,OAAO,GAAG,CAAC;IACb,CAAC;;AA7DH,oBA8DC;AA7DiB,SAAI,GAAG,mBAAW,CAAC,IAAI,CAAC","file":"line.js","sourcesContent":["import type {\n LineEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode,\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n GenerateEncoderSpec\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\n\nexport class Line extends SemanticMark<BasicEncoderSpecMap['line'], LineEncodeChannels> {\n static readonly type = PlotMakType.line;\n constructor(id?: string | number) {\n super(PlotMakType.line, id);\n }\n\n setMarkType() {\n return GrammarMarkType.line;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['line'], LineEncodeChannels>, LineEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: LineEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['line'], LineEncodeChannels>, LineEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n return {\n disableGraphicTooltip: true,\n title: this.spec.encode?.x,\n content: [\n {\n value: this.spec.encode?.y\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['line'], LineEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['line']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res = {\n y: markEncoder.y,\n x: markEncoder.x\n } as GenerateEncoderSpec<BasicEncoderSpecMap['line']>;\n\n if (markEncoder.color || markEncoder.group) {\n res.stroke = markEncoder.color ?? markEncoder.group;\n } else {\n res.stroke = this.spec.style?.stroke ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
package/cjs/path.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { GrammarMarkType } from '@visactor/vgrammar';
2
- import type { PathEncodeChannels, WithDefaultEncode, BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
1
+ import { GrammarMarkType } from '@visactor/vgrammar-core';
2
+ import type { PathEncodeChannels, WithDefaultEncode, BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar-core';
3
3
  import { PlotMakType } from './enums';
4
4
  import { SemanticMark } from './semantic-mark';
5
5
  export declare class PathSemanticMark extends SemanticMark<BasicEncoderSpecMap['path'], PathEncodeChannels> {
package/cjs/path.js CHANGED
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.PathSemanticMark = void 0;
6
6
 
7
- const vgrammar_1 = require("@visactor/vgrammar"), enums_1 = require("./enums"), semantic_mark_1 = require("./semantic-mark");
7
+ const vgrammar_core_1 = require("@visactor/vgrammar-core"), enums_1 = require("./enums"), semantic_mark_1 = require("./semantic-mark");
8
8
 
9
9
  class PathSemanticMark extends semantic_mark_1.SemanticMark {
10
10
  constructor(id) {
11
11
  super(enums_1.PlotMakType.path, id);
12
12
  }
13
13
  setMarkType() {
14
- return vgrammar_1.GrammarMarkType.path;
14
+ return vgrammar_core_1.GrammarMarkType.path;
15
15
  }
16
16
  parseScaleByEncode(channel, option) {
17
17
  return null;
package/cjs/path.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/path.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAWrD,mCAAsC;AACtC,mDAA+C;AAE/C,MAAa,gBAAiB,SAAQ,4BAA6D;IAEjG,YAAY,EAAoB;QAC9B,KAAK,CAAC,mBAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,0BAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,kBAAkB,CAChB,OAA2B,EAC3B,MAAuG;QAEvG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CACf,MAA0E;;QAE1E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,GAAG,GAAqD,EAAE,CAAC;QAEjE,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;SACjC;QACD,GAAG,CAAC,IAAI,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,mCAAI,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,IAAI,mCAAI,MAAA,IAAI,CAAC,UAAU,EAAE,0CAAG,CAAC,CAAC,CAAC;QAEhF,OAAO,IAAI,CAAC;IACd,CAAC;;AA5BH,4CA6BC;AA5BiB,qBAAI,GAAG,mBAAW,CAAC,IAAI,CAAC","file":"path.js","sourcesContent":["import { GrammarMarkType } from '@visactor/vgrammar';\nimport type {\n PathEncodeChannels,\n WithDefaultEncode,\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n GenerateEncoderSpec\n} from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\nimport { SemanticMark } from './semantic-mark';\n\nexport class PathSemanticMark extends SemanticMark<BasicEncoderSpecMap['path'], PathEncodeChannels> {\n static readonly type = PlotMakType.path;\n constructor(id?: string | number) {\n super(PlotMakType.path, id);\n }\n\n setMarkType() {\n return GrammarMarkType.path;\n }\n parseScaleByEncode(\n channel: PathEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['path'], PathEncodeChannels>, PathEncodeChannels>\n ): ScaleSpec | Nil {\n return null;\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['path'], PathEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['path']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const res: GenerateEncoderSpec<BasicEncoderSpecMap['path']> = {};\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n res.fill = markEncoder.color ?? this.spec.style?.fill ?? this.getPalette()?.[0];\n\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/path.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAW1D,mCAAsC;AACtC,mDAA+C;AAE/C,MAAa,gBAAiB,SAAQ,4BAA6D;IAEjG,YAAY,EAAoB;QAC9B,KAAK,CAAC,mBAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,+BAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,kBAAkB,CAChB,OAA2B,EAC3B,MAAuG;QAEvG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CACf,MAA0E;;QAE1E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,GAAG,GAAqD,EAAE,CAAC;QAEjE,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;SACjC;QACD,GAAG,CAAC,IAAI,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,mCAAI,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,IAAI,mCAAI,MAAA,IAAI,CAAC,UAAU,EAAE,0CAAG,CAAC,CAAC,CAAC;QAEhF,OAAO,IAAI,CAAC;IACd,CAAC;;AA5BH,4CA6BC;AA5BiB,qBAAI,GAAG,mBAAW,CAAC,IAAI,CAAC","file":"path.js","sourcesContent":["import { GrammarMarkType } from '@visactor/vgrammar-core';\nimport type {\n PathEncodeChannels,\n WithDefaultEncode,\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n GenerateEncoderSpec\n} from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\nimport { SemanticMark } from './semantic-mark';\n\nexport class PathSemanticMark extends SemanticMark<BasicEncoderSpecMap['path'], PathEncodeChannels> {\n static readonly type = PlotMakType.path;\n constructor(id?: string | number) {\n super(PlotMakType.path, id);\n }\n\n setMarkType() {\n return GrammarMarkType.path;\n }\n parseScaleByEncode(\n channel: PathEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['path'], PathEncodeChannels>, PathEncodeChannels>\n ): ScaleSpec | Nil {\n return null;\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['path'], PathEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['path']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const res: GenerateEncoderSpec<BasicEncoderSpecMap['path']> = {};\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n res.fill = markEncoder.color ?? this.spec.style?.fill ?? this.getPalette()?.[0];\n\n return null;\n }\n}\n"]}
package/cjs/plot.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import type { CoordinateType } from '@visactor/vgrammar-coordinate';
3
- import type { BaseEventHandler, IRunningConfig, IView, ViewSpec, CoordinateOption, IPlot, IPlotMarkConstructor, IPlotOptions, PlotSpec } from '@visactor/vgrammar';
3
+ import type { BaseEventHandler, IRunningConfig, IView, ViewSpec, CoordinateOption, IPlot, IPlotMarkConstructor, IPlotOptions, PlotSpec } from '@visactor/vgrammar-core';
4
4
  export declare class Plot implements IPlot {
5
5
  static useMarks(marks: IPlotMarkConstructor[]): void;
6
6
  readonly view: IView;
@@ -23,26 +23,26 @@ export declare class Plot implements IPlot {
23
23
  off(type: string, handler?: BaseEventHandler): this;
24
24
  protected getCoordinateId(viewId?: string | number): string;
25
25
  coordinate(type: CoordinateType, spec?: Omit<CoordinateOption, 'type'>): this;
26
- interval(): import("@visactor/vgrammar").ISemanticMark<any, any>;
27
- line(): import("@visactor/vgrammar").ISemanticMark<any, any>;
28
- area(): import("@visactor/vgrammar").ISemanticMark<any, any>;
29
- cell(): import("@visactor/vgrammar").ISemanticMark<any, any>;
30
- ruleX(): import("@visactor/vgrammar").ISemanticMark<any, any>;
31
- ruleY(): import("@visactor/vgrammar").ISemanticMark<any, any>;
32
- image(): import("@visactor/vgrammar").ISemanticMark<any, any>;
33
- path(): import("@visactor/vgrammar").ISemanticMark<any, any>;
34
- polygon(): import("@visactor/vgrammar").ISemanticMark<any, any>;
35
- rectX(): import("@visactor/vgrammar").ISemanticMark<any, any>;
36
- rectY(): import("@visactor/vgrammar").ISemanticMark<any, any>;
37
- rect(): import("@visactor/vgrammar").ISemanticMark<any, any>;
38
- rule(): import("@visactor/vgrammar").ISemanticMark<any, any>;
39
- symbol(): import("@visactor/vgrammar").ISemanticMark<any, any>;
40
- text(): import("@visactor/vgrammar").ISemanticMark<any, any>;
41
- sankey(): import("@visactor/vgrammar").ISemanticMark<any, any>;
42
- sunburst(): import("@visactor/vgrammar").ISemanticMark<any, any>;
43
- tree(): import("@visactor/vgrammar").ISemanticMark<any, any>;
44
- treemap(): import("@visactor/vgrammar").ISemanticMark<any, any>;
45
- circlePacking(): import("@visactor/vgrammar").ISemanticMark<any, any>;
46
- wordcloud(): import("@visactor/vgrammar").ISemanticMark<any, any>;
47
- wordcloudShape(): import("@visactor/vgrammar").ISemanticMark<any, any>;
26
+ interval(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
27
+ line(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
28
+ area(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
29
+ cell(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
30
+ ruleX(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
31
+ ruleY(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
32
+ image(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
33
+ path(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
34
+ polygon(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
35
+ rectX(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
36
+ rectY(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
37
+ rect(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
38
+ rule(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
39
+ symbol(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
40
+ text(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
41
+ sankey(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
42
+ sunburst(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
43
+ tree(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
44
+ treemap(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
45
+ circlePacking(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
46
+ wordcloud(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
47
+ wordcloudShape(): import("@visactor/vgrammar-core").ISemanticMark<any, any>;
48
48
  }