@visactor/vgrammar-core 0.14.0-alpha.2 → 0.14.0-alpha.4

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 (215) hide show
  1. package/cjs/component/axis.d.ts +2 -0
  2. package/cjs/component/axis.js +15 -1
  3. package/cjs/component/axis.js.map +1 -1
  4. package/cjs/component/grid.d.ts +2 -0
  5. package/cjs/component/grid.js +15 -1
  6. package/cjs/component/grid.js.map +1 -1
  7. package/cjs/component/index.d.ts +2 -2
  8. package/cjs/component/index.js +21 -1
  9. package/cjs/component/index.js.map +1 -1
  10. package/cjs/core/factory.d.ts +8 -1
  11. package/cjs/core/factory.js +8 -1
  12. package/cjs/core/factory.js.map +1 -1
  13. package/cjs/glyph/boxplot.js +5 -5
  14. package/cjs/glyph/boxplot.js.map +1 -1
  15. package/cjs/glyph/link-path.js +2 -2
  16. package/cjs/glyph/link-path.js.map +1 -1
  17. package/cjs/glyph/ripple.js +3 -2
  18. package/cjs/glyph/ripple.js.map +1 -1
  19. package/cjs/glyph/tree-path.js +2 -2
  20. package/cjs/glyph/tree-path.js.map +1 -1
  21. package/cjs/glyph/violin.js +4 -4
  22. package/cjs/glyph/violin.js.map +1 -1
  23. package/cjs/glyph/wave.js +3 -2
  24. package/cjs/glyph/wave.js.map +1 -1
  25. package/cjs/graph/animation/animation/update.js +2 -2
  26. package/cjs/graph/animation/animation/update.js.map +1 -1
  27. package/cjs/graph/animation/morph.d.ts +2 -12
  28. package/cjs/graph/animation/morph.js +76 -163
  29. package/cjs/graph/animation/morph.js.map +1 -1
  30. package/cjs/graph/attributes/line.d.ts +1 -0
  31. package/cjs/graph/attributes/line.js +17 -5
  32. package/cjs/graph/attributes/line.js.map +1 -1
  33. package/cjs/graph/canvas-renderer.d.ts +1 -1
  34. package/cjs/graph/canvas-renderer.js +4 -4
  35. package/cjs/graph/canvas-renderer.js.map +1 -1
  36. package/cjs/graph/constants.d.ts +1 -0
  37. package/cjs/graph/constants.js +2 -2
  38. package/cjs/graph/constants.js.map +1 -1
  39. package/cjs/graph/element.d.ts +1 -0
  40. package/cjs/graph/element.js +18 -11
  41. package/cjs/graph/element.js.map +1 -1
  42. package/cjs/graph/glyph-element.js +7 -6
  43. package/cjs/graph/glyph-element.js.map +1 -1
  44. package/cjs/graph/layout/layout.d.ts +1 -0
  45. package/cjs/graph/layout/layout.js +8 -2
  46. package/cjs/graph/layout/layout.js.map +1 -1
  47. package/cjs/graph/mark/graphic.js +14 -8
  48. package/cjs/graph/mark/graphic.js.map +1 -1
  49. package/cjs/graph/util/point.js +10 -26
  50. package/cjs/graph/util/point.js.map +1 -1
  51. package/cjs/graph/view-diff.d.ts +8 -0
  52. package/cjs/graph/view-diff.js +93 -0
  53. package/cjs/graph/view-diff.js.map +1 -0
  54. package/cjs/index.d.ts +8 -1
  55. package/cjs/index.js +66 -2
  56. package/cjs/index.js.map +1 -1
  57. package/cjs/interactions/brush-base.js +1 -2
  58. package/cjs/interactions/brush-filter.js +2 -1
  59. package/cjs/interactions/fish-eye.js +1 -2
  60. package/cjs/interactions/index.js +2 -1
  61. package/cjs/interactions/tooltip.js +1 -1
  62. package/cjs/parse/event.d.ts +0 -2
  63. package/cjs/parse/event.js +4 -10
  64. package/cjs/parse/event.js.map +1 -1
  65. package/cjs/parse/util.js.map +1 -1
  66. package/cjs/transforms/mark/mark-overlap.js +6 -6
  67. package/cjs/transforms/mark/mark-overlap.js.map +1 -1
  68. package/cjs/types/element.d.ts +1 -1
  69. package/cjs/types/element.js.map +1 -1
  70. package/cjs/types/morph.d.ts +1 -2
  71. package/cjs/types/morph.js.map +1 -1
  72. package/cjs/types/renderer.d.ts +6 -1
  73. package/cjs/types/renderer.js.map +1 -1
  74. package/cjs/view/View.d.ts +3 -6
  75. package/cjs/view/View.js +52 -105
  76. package/cjs/view/View.js.map +1 -1
  77. package/cjs/view/animate.js +2 -1
  78. package/cjs/view/animate.js.map +1 -1
  79. package/cjs/view/constants.d.ts +2 -0
  80. package/cjs/view/constants.js +3 -2
  81. package/cjs/view/constants.js.map +1 -1
  82. package/cjs/view/events.d.ts +0 -1
  83. package/cjs/view/events.js +3 -17
  84. package/cjs/view/events.js.map +1 -1
  85. package/cjs/view/glyph.d.ts +4 -0
  86. package/cjs/view/glyph.js +12 -3
  87. package/cjs/view/glyph.js.map +1 -1
  88. package/cjs/view/group.js +3 -3
  89. package/cjs/view/group.js.map +1 -1
  90. package/cjs/view/mark-animate-mixin.d.ts +1 -0
  91. package/cjs/view/mark-animate-mixin.js +29 -0
  92. package/cjs/view/mark-animate-mixin.js.map +1 -0
  93. package/cjs/view/mark.d.ts +2 -0
  94. package/cjs/view/mark.js +30 -23
  95. package/cjs/view/mark.js.map +1 -1
  96. package/cjs/view/view-animate-mixin.d.ts +1 -0
  97. package/cjs/view/view-animate-mixin.js +26 -0
  98. package/cjs/view/view-animate-mixin.js.map +1 -0
  99. package/cjs/view/view-event-mixin.d.ts +1 -0
  100. package/cjs/view/view-event-mixin.js +92 -0
  101. package/cjs/view/view-event-mixin.js.map +1 -0
  102. package/cjs/view/view-morph-mixin.d.ts +1 -0
  103. package/cjs/view/view-morph-mixin.js +32 -0
  104. package/cjs/view/view-morph-mixin.js.map +1 -0
  105. package/es/component/axis.d.ts +2 -0
  106. package/es/component/axis.js +10 -0
  107. package/es/component/axis.js.map +1 -1
  108. package/es/component/grid.d.ts +2 -0
  109. package/es/component/grid.js +10 -0
  110. package/es/component/grid.js.map +1 -1
  111. package/es/component/index.d.ts +2 -2
  112. package/es/component/index.js +2 -2
  113. package/es/component/index.js.map +1 -1
  114. package/es/core/factory.d.ts +8 -1
  115. package/es/core/factory.js +8 -1
  116. package/es/core/factory.js.map +1 -1
  117. package/es/glyph/boxplot.js +4 -2
  118. package/es/glyph/boxplot.js.map +1 -1
  119. package/es/glyph/link-path.js +4 -2
  120. package/es/glyph/link-path.js.map +1 -1
  121. package/es/glyph/ripple.js +3 -1
  122. package/es/glyph/ripple.js.map +1 -1
  123. package/es/glyph/tree-path.js +4 -2
  124. package/es/glyph/tree-path.js.map +1 -1
  125. package/es/glyph/violin.js +4 -2
  126. package/es/glyph/violin.js.map +1 -1
  127. package/es/glyph/wave.js +3 -1
  128. package/es/glyph/wave.js.map +1 -1
  129. package/es/graph/animation/animation/update.js +1 -3
  130. package/es/graph/animation/animation/update.js.map +1 -1
  131. package/es/graph/animation/morph.d.ts +2 -12
  132. package/es/graph/animation/morph.js +72 -159
  133. package/es/graph/animation/morph.js.map +1 -1
  134. package/es/graph/attributes/line.d.ts +1 -0
  135. package/es/graph/attributes/line.js +14 -3
  136. package/es/graph/attributes/line.js.map +1 -1
  137. package/es/graph/canvas-renderer.d.ts +1 -1
  138. package/es/graph/canvas-renderer.js +5 -5
  139. package/es/graph/canvas-renderer.js.map +1 -1
  140. package/es/graph/constants.d.ts +1 -0
  141. package/es/graph/constants.js +2 -0
  142. package/es/graph/constants.js.map +1 -1
  143. package/es/graph/element.d.ts +1 -0
  144. package/es/graph/element.js +18 -13
  145. package/es/graph/element.js.map +1 -1
  146. package/es/graph/glyph-element.js +6 -8
  147. package/es/graph/glyph-element.js.map +1 -1
  148. package/es/graph/layout/layout.d.ts +1 -0
  149. package/es/graph/layout/layout.js +6 -0
  150. package/es/graph/layout/layout.js.map +1 -1
  151. package/es/graph/mark/graphic.js +13 -7
  152. package/es/graph/mark/graphic.js.map +1 -1
  153. package/es/graph/util/point.js +10 -26
  154. package/es/graph/util/point.js.map +1 -1
  155. package/es/graph/view-diff.d.ts +8 -0
  156. package/es/graph/view-diff.js +89 -0
  157. package/es/graph/view-diff.js.map +1 -0
  158. package/es/index.d.ts +8 -1
  159. package/es/index.js +29 -1
  160. package/es/index.js.map +1 -1
  161. package/es/interactions/element-active.js +1 -2
  162. package/es/interactions/element-highlight-by-group.js +2 -1
  163. package/es/interactions/fish-eye.js +1 -1
  164. package/es/parse/event.d.ts +0 -2
  165. package/es/parse/event.js +3 -7
  166. package/es/parse/event.js.map +1 -1
  167. package/es/parse/option.js +1 -2
  168. package/es/parse/scale.js +2 -1
  169. package/es/parse/util.js.map +1 -1
  170. package/es/transforms/mark/mark-overlap.js +6 -6
  171. package/es/transforms/mark/mark-overlap.js.map +1 -1
  172. package/es/types/element.d.ts +1 -1
  173. package/es/types/element.js.map +1 -1
  174. package/es/types/morph.d.ts +1 -2
  175. package/es/types/morph.js.map +1 -1
  176. package/es/types/renderer.d.ts +6 -1
  177. package/es/types/renderer.js.map +1 -1
  178. package/es/view/View.d.ts +3 -6
  179. package/es/view/View.js +53 -114
  180. package/es/view/View.js.map +1 -1
  181. package/es/view/animate.js +2 -1
  182. package/es/view/animate.js.map +1 -1
  183. package/es/view/constants.d.ts +2 -0
  184. package/es/view/constants.js +4 -0
  185. package/es/view/constants.js.map +1 -1
  186. package/es/view/events.d.ts +0 -1
  187. package/es/view/events.js +1 -15
  188. package/es/view/events.js.map +1 -1
  189. package/es/view/glyph.d.ts +4 -0
  190. package/es/view/glyph.js +11 -0
  191. package/es/view/glyph.js.map +1 -1
  192. package/es/view/group.js +2 -4
  193. package/es/view/group.js.map +1 -1
  194. package/es/view/mark-animate-mixin.d.ts +1 -0
  195. package/es/view/mark-animate-mixin.js +25 -0
  196. package/es/view/mark-animate-mixin.js.map +1 -0
  197. package/es/view/mark.d.ts +2 -0
  198. package/es/view/mark.js +30 -25
  199. package/es/view/mark.js.map +1 -1
  200. package/es/view/view-animate-mixin.d.ts +1 -0
  201. package/es/view/view-animate-mixin.js +16 -0
  202. package/es/view/view-animate-mixin.js.map +1 -0
  203. package/es/view/view-event-mixin.d.ts +1 -0
  204. package/es/view/view-event-mixin.js +90 -0
  205. package/es/view/view-event-mixin.js.map +1 -0
  206. package/es/view/view-morph-mixin.d.ts +1 -0
  207. package/es/view/view-morph-mixin.js +22 -0
  208. package/es/view/view-morph-mixin.js.map +1 -0
  209. package/package.json +12 -12
  210. package/cjs/graph/util/element.d.ts +0 -2
  211. package/cjs/graph/util/element.js +0 -10
  212. package/cjs/graph/util/element.js.map +0 -1
  213. package/es/graph/util/element.d.ts +0 -2
  214. package/es/graph/util/element.js +0 -8
  215. package/es/graph/util/element.js.map +0 -1
package/cjs/view/group.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.GroupMark = void 0;
6
6
 
7
- const attributes_1 = require("../graph/attributes"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), element_1 = require("../graph/util/element"), graphic_1 = require("../graph/util/graphic"), mark_1 = require("./mark"), vutils_1 = require("@visactor/vutils"), encode_1 = require("../graph/mark/encode");
7
+ const attributes_1 = require("../graph/attributes"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), graphic_1 = require("../graph/util/graphic"), mark_1 = require("./mark"), vutils_1 = require("@visactor/vutils"), encode_1 = require("../graph/mark/encode");
8
8
 
9
9
  class GroupMark extends mark_1.Mark {
10
10
  constructor(view, group) {
@@ -33,8 +33,8 @@ class GroupMark extends mark_1.Mark {
33
33
  }
34
34
  evaluateJoin(data) {
35
35
  if (!this.elements.length) {
36
- const el = (0, element_1.createElement)(this);
37
- el.updateData(constants_1.DefaultKey, constants_1.DefaultMarkData, (() => ""), this.view),
36
+ const el = this.createElement();
37
+ el.updateData(constants_1.DefaultKey, constants_1.DefaultMarkData, (() => "")),
38
38
  this.elements = [ el ], this.elementMap.set(constants_1.DefaultKey, el);
39
39
  }
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/view/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import type { INode } from '@visactor/vrender-core';\nimport { transformsByType } from '../graph/attributes';\nimport { DefaultKey, DefaultMarkData } from '../graph/constants';\nimport { BuiltInEncodeNames, GrammarMarkType, HOOK_EVENT } from '../graph/enums';\nimport { createElement } from '../graph/util/element';\nimport { createGraphicItem } from '../graph/util/graphic';\nimport type { IElement, IGlyphMark, IGroupMark, IMark, IView } from '../types';\nimport { Mark } from './mark';\nimport { isFunction, isNil } from '@visactor/vutils';\nimport { invokeEncoderToItems } from '../graph/mark/encode';\n\nexport class GroupMark extends Mark implements IGroupMark {\n children: (IMark | IGroupMark | IGlyphMark)[];\n\n layoutChildren?: (IMark | IGroupMark | IGlyphMark)[];\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, GrammarMarkType.group, group);\n this.children = [];\n }\n\n parseRenderContext() {\n return { large: false };\n }\n\n appendChild(mark: IMark) {\n this.children.push(mark);\n return this;\n }\n removeChild(mark: IMark) {\n this.children = this.children.filter(child => child !== mark);\n return this;\n }\n\n includesChild(mark: IMark, descendant: boolean = true) {\n if (this.children.includes(mark)) {\n return true;\n }\n if (!descendant) {\n return false;\n }\n return this.children.some(child => {\n if (child.markType === GrammarMarkType.group) {\n return (child as IGroupMark).includesChild(mark, true);\n }\n return false;\n });\n }\n\n updateLayoutChildren() {\n if (!this.children.length) {\n return this;\n }\n if (!this.layoutChildren) {\n this.layoutChildren = [];\n }\n\n this.layoutChildren = this.children.filter(child => child.needLayout());\n\n return this;\n }\n\n getAttributeTransforms() {\n return transformsByType.rect;\n }\n\n protected evaluateJoin(data: any[]) {\n if (!this.elements.length) {\n const el = createElement(this);\n\n el.updateData(DefaultKey, DefaultMarkData, () => '', this.view);\n this.elements = [el];\n this.elementMap.set(DefaultKey, el);\n }\n }\n\n protected getChannelsFromConfig(element?: IElement) {\n const spec = this.spec;\n\n const initAttrs: any = {};\n\n if (!isNil(spec.clip)) {\n initAttrs.clip = spec.clip;\n }\n\n if (!isNil(spec.zIndex)) {\n initAttrs.zIndex = spec.zIndex;\n }\n\n if (!isNil(spec.clipPath)) {\n const paths = isFunction(spec.clipPath) ? spec.clipPath([element]) : spec.clipPath;\n\n if (paths && paths.length) {\n initAttrs.path = paths;\n } else {\n initAttrs.path = null;\n initAttrs.clip = false;\n }\n }\n\n if (!isNil(spec.interactive)) {\n initAttrs.pickable = spec.interactive;\n }\n\n return initAttrs;\n }\n\n protected evaluateGroupEncode(elements: IElement[], groupEncode: any, parameters: any) {\n const el = this.elements[0];\n const nextAttrs = {};\n const items = [Object.assign({}, el.items?.[0], { nextAttrs })];\n invokeEncoderToItems(el, items, groupEncode, parameters);\n\n this._groupEncodeResult = nextAttrs;\n return nextAttrs;\n }\n\n protected evaluateEncode(elements: IElement[], encoders: any, parameters: any, noGroupEncode?: boolean) {\n const initAttrs = this.getChannelsFromConfig();\n\n if (encoders) {\n this.emit(HOOK_EVENT.BEFORE_ELEMENT_ENCODE, { encoders, parameters }, this);\n\n const groupEncodeAttrs = noGroupEncode\n ? null\n : this.evaluateGroupEncode(elements, encoders[BuiltInEncodeNames.group], parameters);\n\n elements.forEach(element => {\n element.items.forEach(item => {\n item.nextAttrs = Object.assign(item.nextAttrs, initAttrs, groupEncodeAttrs);\n });\n\n element.encodeItems(element.items, encoders, this._isReentered, parameters);\n });\n\n this._isReentered = false;\n\n this.evaluateTransform(this._getTransformsAfterEncodeItems(), elements, parameters);\n\n elements.forEach(element => {\n element.encodeGraphic();\n });\n this.emit(HOOK_EVENT.AFTER_ELEMENT_ENCODE, { encoders, parameters }, this);\n } else {\n elements.forEach(element => {\n element.initGraphicItem(initAttrs);\n });\n }\n }\n\n addGraphicItem(attrs: any, groupKey?: string, newGraphicItem?: any) {\n const graphicItem: any = newGraphicItem ?? createGraphicItem(this, this.markType, attrs);\n\n if (!graphicItem) {\n return;\n }\n\n this.emit(HOOK_EVENT.BEFORE_ADD_VRENDER_MARK, { graphicItem });\n\n graphicItem.name = `${this.id() || this.markType}`;\n\n this.graphicParent.insertIntoKeepIdx(graphicItem as unknown as INode, this.graphicIndex);\n this.emit(HOOK_EVENT.AFTER_ADD_VRENDER_MARK, { graphicItem });\n\n return graphicItem;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/view/group.ts"],"names":[],"mappings":";;;AACA,oDAAuD;AACvD,kDAAiE;AACjE,0CAAiF;AACjF,mDAA0D;AAE1D,iCAA8B;AAC9B,6CAAqD;AACrD,iDAA4D;AAE5D,MAAa,SAAU,SAAQ,WAAI;IAKjC,YAAY,IAAW,EAAE,KAAkB;QACzC,KAAK,CAAC,IAAI,EAAE,uBAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,kBAAkB;QAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,IAAW;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,IAAW;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,IAAW,EAAE,aAAsB,IAAI;QACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,uBAAe,CAAC,KAAK,EAAE;gBAC5C,OAAQ,KAAoB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACxD;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;QACpB,OAAO,6BAAgB,CAAC,IAAI,CAAC;IAC/B,CAAC;IAES,YAAY,CAAC,IAAW;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,EAAE,CAAC,UAAU,CAAC,sBAAU,EAAE,2BAAe,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,sBAAU,EAAE,EAAE,CAAC,CAAC;SACrC;IACH,CAAC;IAES,qBAAqB,CAAC,OAAkB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,MAAM,SAAS,GAAQ,EAAE,CAAC;QAE1B,IAAI,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrB,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC5B;QAED,IAAI,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACvB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAChC;QAED,IAAI,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACzB,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAEnF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBACzB,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;aACxB;iBAAM;gBACL,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;gBACtB,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;aACxB;SACF;QAED,IAAI,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC5B,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;SACvC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,mBAAmB,CAAC,QAAoB,EAAE,WAAgB,EAAE,UAAe;;QACnF,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAA,EAAE,CAAC,KAAK,0CAAG,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAChE,IAAA,6BAAoB,EAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAEzD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,cAAc,CAAC,QAAoB,EAAE,QAAa,EAAE,UAAe,EAAE,aAAuB;QACpG,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE/C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,kBAAU,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;YAE5E,MAAM,gBAAgB,GAAG,aAAa;gBACpC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,0BAAkB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;YAEvF,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAC9E,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAEpF,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,kBAAU,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;SAC5E;aAAM;YACL,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,cAAc,CAAC,KAAU,EAAE,QAAiB,EAAE,cAAoB;QAChE,MAAM,WAAW,GAAQ,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAA,2BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEzF,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,kBAAU,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAE/D,WAAW,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEnD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAA+B,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,CAAC,kBAAU,CAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA3JD,8BA2JC","file":"group.js","sourcesContent":["import type { INode } from '@visactor/vrender-core';\nimport { transformsByType } from '../graph/attributes';\nimport { DefaultKey, DefaultMarkData } from '../graph/constants';\nimport { BuiltInEncodeNames, GrammarMarkType, HOOK_EVENT } from '../graph/enums';\nimport { createGraphicItem } from '../graph/util/graphic';\nimport type { IElement, IGlyphMark, IGroupMark, IMark, IView } from '../types';\nimport { Mark } from './mark';\nimport { isFunction, isNil } from '@visactor/vutils';\nimport { invokeEncoderToItems } from '../graph/mark/encode';\n\nexport class GroupMark extends Mark implements IGroupMark {\n children: (IMark | IGroupMark | IGlyphMark)[];\n\n layoutChildren?: (IMark | IGroupMark | IGlyphMark)[];\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, GrammarMarkType.group, group);\n this.children = [];\n }\n\n parseRenderContext() {\n return { large: false };\n }\n\n appendChild(mark: IMark) {\n this.children.push(mark);\n return this;\n }\n removeChild(mark: IMark) {\n this.children = this.children.filter(child => child !== mark);\n return this;\n }\n\n includesChild(mark: IMark, descendant: boolean = true) {\n if (this.children.includes(mark)) {\n return true;\n }\n if (!descendant) {\n return false;\n }\n return this.children.some(child => {\n if (child.markType === GrammarMarkType.group) {\n return (child as IGroupMark).includesChild(mark, true);\n }\n return false;\n });\n }\n\n updateLayoutChildren() {\n if (!this.children.length) {\n return this;\n }\n if (!this.layoutChildren) {\n this.layoutChildren = [];\n }\n\n this.layoutChildren = this.children.filter(child => child.needLayout());\n\n return this;\n }\n\n getAttributeTransforms() {\n return transformsByType.rect;\n }\n\n protected evaluateJoin(data: any[]) {\n if (!this.elements.length) {\n const el = this.createElement();\n\n el.updateData(DefaultKey, DefaultMarkData, () => '');\n this.elements = [el];\n this.elementMap.set(DefaultKey, el);\n }\n }\n\n protected getChannelsFromConfig(element?: IElement) {\n const spec = this.spec;\n\n const initAttrs: any = {};\n\n if (!isNil(spec.clip)) {\n initAttrs.clip = spec.clip;\n }\n\n if (!isNil(spec.zIndex)) {\n initAttrs.zIndex = spec.zIndex;\n }\n\n if (!isNil(spec.clipPath)) {\n const paths = isFunction(spec.clipPath) ? spec.clipPath([element]) : spec.clipPath;\n\n if (paths && paths.length) {\n initAttrs.path = paths;\n } else {\n initAttrs.path = null;\n initAttrs.clip = false;\n }\n }\n\n if (!isNil(spec.interactive)) {\n initAttrs.pickable = spec.interactive;\n }\n\n return initAttrs;\n }\n\n protected evaluateGroupEncode(elements: IElement[], groupEncode: any, parameters: any) {\n const el = this.elements[0];\n const nextAttrs = {};\n const items = [Object.assign({}, el.items?.[0], { nextAttrs })];\n invokeEncoderToItems(el, items, groupEncode, parameters);\n\n this._groupEncodeResult = nextAttrs;\n return nextAttrs;\n }\n\n protected evaluateEncode(elements: IElement[], encoders: any, parameters: any, noGroupEncode?: boolean) {\n const initAttrs = this.getChannelsFromConfig();\n\n if (encoders) {\n this.emit(HOOK_EVENT.BEFORE_ELEMENT_ENCODE, { encoders, parameters }, this);\n\n const groupEncodeAttrs = noGroupEncode\n ? null\n : this.evaluateGroupEncode(elements, encoders[BuiltInEncodeNames.group], parameters);\n\n elements.forEach(element => {\n element.items.forEach(item => {\n item.nextAttrs = Object.assign(item.nextAttrs, initAttrs, groupEncodeAttrs);\n });\n\n element.encodeItems(element.items, encoders, this._isReentered, parameters);\n });\n\n this._isReentered = false;\n\n this.evaluateTransform(this._getTransformsAfterEncodeItems(), elements, parameters);\n\n elements.forEach(element => {\n element.encodeGraphic();\n });\n this.emit(HOOK_EVENT.AFTER_ELEMENT_ENCODE, { encoders, parameters }, this);\n } else {\n elements.forEach(element => {\n element.initGraphicItem(initAttrs);\n });\n }\n }\n\n addGraphicItem(attrs: any, groupKey?: string, newGraphicItem?: any) {\n const graphicItem: any = newGraphicItem ?? createGraphicItem(this, this.markType, attrs);\n\n if (!graphicItem) {\n return;\n }\n\n this.emit(HOOK_EVENT.BEFORE_ADD_VRENDER_MARK, { graphicItem });\n\n graphicItem.name = `${this.id() || this.markType}`;\n\n this.graphicParent.insertIntoKeepIdx(graphicItem as unknown as INode, this.graphicIndex);\n this.emit(HOOK_EVENT.AFTER_ADD_VRENDER_MARK, { graphicItem });\n\n return graphicItem;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const registerMarkAnimateAPI: () => void;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.registerMarkAnimateAPI = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), animate_1 = require("../graph/animation/animate"), mark_1 = require("./mark");
8
+
9
+ class MarkAnimateMixin {
10
+ constructor() {
11
+ this.animate = new animate_1.Animate(this, {});
12
+ }
13
+ initAnimate(spec) {
14
+ this.animate || (this.animate = new animate_1.Animate(this, spec.animation), this.needAnimate() && this.animate.updateState(spec.animationState));
15
+ }
16
+ reuseAnimate(mark) {
17
+ this.animate = mark.animate, this.animate.mark = this;
18
+ }
19
+ updateAnimate(spec) {
20
+ spec.animation && this.animate.updateConfig(spec.animation), this.animate.updateState(spec.animationState);
21
+ }
22
+ }
23
+
24
+ const registerMarkAnimateAPI = () => {
25
+ (0, vutils_1.mixin)(mark_1.Mark, MarkAnimateMixin);
26
+ };
27
+
28
+ exports.registerMarkAnimateAPI = registerMarkAnimateAPI;
29
+ //# sourceMappingURL=mark-animate-mixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/view/mark-animate-mixin.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,wDAAqD;AAGrD,iCAA8B;AAE9B,MAAM,gBAAgB;IAAtB;QACE,YAAO,GAAa,IAAI,iBAAO,CAAC,IAAwB,EAAE,EAAE,CAAC,CAAC;IAsBhE,CAAC;IApBC,WAAW,CAAC,IAAc;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrE,IAAK,IAAY,CAAC,WAAW,EAAE,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC/C;SACF;IACH,CAAC;IAED,YAAY,CAAC,IAAW;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAwB,CAAC;IAC/C,CAAC;IAED,aAAa,CAAC,IAAc;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;CACF;AAEM,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,IAAA,cAAK,EAAC,WAAI,EAAE,gBAAgB,CAAC,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC","file":"mark-animate-mixin.js","sourcesContent":["import { mixin } from '@visactor/vutils';\nimport { Animate } from '../graph/animation/animate';\nimport type { IMark, MarkSpec } from '../types';\nimport type { IAnimate } from '../types/animate';\nimport { Mark } from './mark';\n\nclass MarkAnimateMixin {\n animate: IAnimate = new Animate(this as unknown as IMark, {});\n\n initAnimate(spec: MarkSpec) {\n if (!this.animate) {\n this.animate = new Animate(this as unknown as IMark, spec.animation);\n if ((this as any).needAnimate()) {\n this.animate.updateState(spec.animationState);\n }\n }\n }\n\n reuseAnimate(mark: IMark) {\n this.animate = mark.animate;\n this.animate.mark = this as unknown as IMark;\n }\n\n updateAnimate(spec: MarkSpec) {\n if (spec.animation) {\n this.animate.updateConfig(spec.animation);\n }\n this.animate.updateState(spec.animationState);\n }\n}\n\nexport const registerMarkAnimateAPI = () => {\n mixin(Mark, MarkAnimateMixin);\n};\n"]}
@@ -4,6 +4,7 @@ import { Differ } from '../graph/mark/differ';
4
4
  import { GrammarBase } from './grammar-base';
5
5
  import type { GrammarType, ICoordinate, IData, IElement, IGrammarBase, IGroupMark, IMark, IMarkConfig, IView, MarkAnimationSpec, MarkFunctionType, MarkKeySpec, MarkLayoutCallback, MarkLayoutSpec, MarkSortSpec, MarkSpec, MarkStateSpec, MarkType, TransformSpec, Nil, IAnimate, MarkStateSortSpec, BaseSingleEncodeSpec } from '../types';
6
6
  import type { IBaseScale } from '@visactor/vscale';
7
+ import { Element } from '../graph/element';
7
8
  export declare class Mark extends GrammarBase implements IMark {
8
9
  readonly grammarType: GrammarType;
9
10
  protected spec: MarkSpec;
@@ -65,6 +66,7 @@ export declare class Mark extends GrammarBase implements IMark {
65
66
  getFieldsByChannel(): Record<string, string>;
66
67
  protected init(stage: any, parameters: any): void;
67
68
  protected update(spec: MarkSpec): void;
69
+ createElement(): Element;
68
70
  protected evaluateJoin(data: any[]): void;
69
71
  protected evaluateState(elements: IElement[], stateSpec: MarkStateSpec, parameters: any): void;
70
72
  protected evaluateGroupEncode(elements: IElement[], groupEncode: any, parameters: any): {};
package/cjs/view/mark.js CHANGED
@@ -10,14 +10,13 @@ Object.defineProperty(exports, "__esModule", {
10
10
  value: !0
11
11
  }), exports.Mark = void 0;
12
12
 
13
- const vutils_1 = require("@visactor/vutils"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), differ_1 = require("../graph/mark/differ"), animate_1 = require("../graph/animation/animate"), graphic_1 = require("../graph/util/graphic"), grammar_base_1 = require("./grammar-base"), mark_1 = require("../parse/mark"), util_1 = require("../parse/util"), transform_1 = require("../parse/transform"), element_1 = require("../graph/util/element"), encode_1 = require("../graph/mark/encode"), attributes_1 = require("../graph/attributes"), events_extend_1 = __importDefault(require("../graph/util/events-extend")), constants_2 = require("./constants");
13
+ const vutils_1 = require("@visactor/vutils"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), differ_1 = require("../graph/mark/differ"), graphic_1 = require("../graph/util/graphic"), grammar_base_1 = require("./grammar-base"), mark_1 = require("../parse/mark"), util_1 = require("../parse/util"), transform_1 = require("../parse/transform"), encode_1 = require("../graph/mark/encode"), attributes_1 = require("../graph/attributes"), events_extend_1 = __importDefault(require("../graph/util/events-extend")), constants_2 = require("./constants"), element_1 = require("../graph/element");
14
14
 
15
15
  class Mark extends grammar_base_1.GrammarBase {
16
16
  constructor(view, markType, group) {
17
17
  super(view), this.grammarType = "mark", this.elements = [], this.elementMap = new Map,
18
- this.isUpdated = !0, this._isReentered = !1, this.animate = new animate_1.Animate(this, {}),
19
- this.differ = new differ_1.Differ([]), this.markType = markType, this.spec.type = markType,
20
- this.spec.encode = {
18
+ this.isUpdated = !0, this._isReentered = !1, this.differ = new differ_1.Differ([]),
19
+ this.markType = markType, this.spec.type = markType, this.spec.encode = {
21
20
  update: {}
22
21
  }, this.spec.group = group, group && (this.group = group, this.attach(group), group.appendChild(this));
23
22
  }
@@ -46,11 +45,12 @@ class Mark extends grammar_base_1.GrammarBase {
46
45
  return this;
47
46
  }
48
47
  reuse(grammar) {
48
+ var _b;
49
49
  if (grammar.grammarType !== this.grammarType) return this;
50
50
  const mark = grammar;
51
51
  return this.markType = mark.markType, this.coord = mark.coord, this.elementMap = mark.elementMap,
52
52
  this.elements = mark.elements, this.elementMap.forEach((element => element.mark = this)),
53
- this.differ = mark.differ, this.animate = mark.animate, this.animate.mark = this,
53
+ this.differ = mark.differ, null === (_b = this.reuseAnimate) || void 0 === _b || _b.call(this, mark),
54
54
  this._context = mark._context, this.graphicItem = mark.graphicItem, this.graphicIndex = mark.graphicIndex,
55
55
  this.graphicParent = mark.graphicParent, this.needClear = mark.needClear, this.isUpdated = mark.isUpdated,
56
56
  this;
@@ -222,7 +222,7 @@ class Mark extends grammar_base_1.GrammarBase {
222
222
  })), res;
223
223
  }
224
224
  init(stage, parameters) {
225
- var _a, _b, _c, _d;
225
+ var _b, _c, _d, _e, _f;
226
226
  if (this._delegateEvent || (this._delegateEvent = (event, type) => {
227
227
  var _a;
228
228
  const activeElement = null === (_a = event.target) || void 0 === _a ? void 0 : _a[constants_1.BridgeElementKey];
@@ -230,17 +230,17 @@ class Mark extends grammar_base_1.GrammarBase {
230
230
  const extendedEvt = (0, events_extend_1.default)(this.view, event, activeElement, type, constants_2.EVENT_SOURCE_VIEW);
231
231
  this.emitGrammarEvent(type, extendedEvt, activeElement);
232
232
  }
233
- }, this.initEvent()), this.animate || (this.animate = new animate_1.Animate(this, this.spec.animation),
234
- this.needAnimate() && this.animate.updateState(this.spec.animationState)), !this.group) {
233
+ }, this.initEvent()), null === (_b = this.initAnimate) || void 0 === _b || _b.call(this, this.spec),
234
+ !this.group) {
235
235
  const group = (0, util_1.getGrammarOutput)(this.spec.group, parameters);
236
236
  this.group = group, group && group.appendChild(this);
237
237
  }
238
- const groupGraphicItem = this.group ? this.group.getGroupGraphicItem() : stage.defaultLayer, markIndex = null !== (_c = null === (_b = null === (_a = this.group) || void 0 === _a ? void 0 : _a.children) || void 0 === _b ? void 0 : _b.indexOf(this)) && void 0 !== _c ? _c : 0;
238
+ const groupGraphicItem = this.group ? this.group.getGroupGraphicItem() : stage.defaultLayer, markIndex = null !== (_e = null === (_d = null === (_c = this.group) || void 0 === _c ? void 0 : _c.children) || void 0 === _d ? void 0 : _d.indexOf(this)) && void 0 !== _e ? _e : 0;
239
239
  if (this.markType !== enums_1.GrammarMarkType.group) {
240
240
  if (!this.graphicItem) {
241
241
  const graphicItem = (0, graphic_1.createGraphicItem)(this, enums_1.GrammarMarkType.group, {
242
242
  pickable: !1,
243
- zIndex: null !== (_d = this.spec.zIndex) && void 0 !== _d ? _d : 0
243
+ zIndex: null !== (_f = this.spec.zIndex) && void 0 !== _f ? _f : 0
244
244
  });
245
245
  (this.spec.support3d || constants_1.Mark3DType.includes(this.markType)) && graphicItem.setMode("3d"),
246
246
  graphicItem.name = `${this.id() || this.markType}`, this.graphicItem = graphicItem;
@@ -250,8 +250,9 @@ class Mark extends grammar_base_1.GrammarBase {
250
250
  this.graphicIndex = markIndex;
251
251
  }
252
252
  update(spec) {
253
- if (this._context = this.spec.context, this.isUpdated = !0, this.renderContext.progressive || (this.animate.updateConfig(spec.animation),
254
- this.animate.updateState(spec.animationState)), this.markType !== enums_1.GrammarMarkType.group) {
253
+ var _b;
254
+ if (this._context = this.spec.context, this.isUpdated = !0, this.renderContext.progressive || null === (_b = this.updateAnimate) || void 0 === _b || _b.call(this, spec),
255
+ this.markType !== enums_1.GrammarMarkType.group) {
255
256
  if ((0, vutils_1.isNil)(spec.zIndex) || this.graphicItem.setAttribute("zIndex", spec.zIndex),
256
257
  (0, vutils_1.isNil)(spec.clip) || this.graphicItem.setAttribute("clip", spec.clip),
257
258
  !(0, vutils_1.isNil)(spec.clipPath)) {
@@ -268,29 +269,34 @@ class Mark extends grammar_base_1.GrammarBase {
268
269
  element.updateGraphicItem();
269
270
  }));
270
271
  }
272
+ createElement() {
273
+ return new element_1.Element(this);
274
+ }
271
275
  evaluateJoin(data) {
272
276
  var _a, _b, _c, _d;
273
277
  this.needClear = !0;
274
278
  const keyGetter = (0, util_1.parseField)(null !== (_c = null !== (_a = this.spec.key) && void 0 !== _a ? _a : null === (_b = this.grammarSource) || void 0 === _b ? void 0 : _b.getDataIDKey()) && void 0 !== _c ? _c : () => constants_1.DefaultKey), groupKeyGetter = (0,
275
279
  util_1.parseField)(null !== (_d = this.spec.groupBy) && void 0 !== _d ? _d : () => constants_1.DefaultKey), sort = this.spec.sort, isCollectionMark = this.isCollectionMark(), enterElements = new Set(this.elements.filter((element => element.diffState === enums_1.DiffState.enter))), elements = [];
276
280
  this.differ.setCallback(((key, data, prevData) => {
281
+ var _a;
277
282
  const elementKey = key;
278
283
  let element;
279
284
  if ((0, vutils_1.isNil)(data)) element = this.elementMap.get(elementKey), element && (element.diffState = enums_1.DiffState.exit); else if ((0,
280
285
  vutils_1.isNil)(prevData)) {
281
- if (element = this.elementMap.has(elementKey) ? this.elementMap.get(elementKey) : (0,
282
- element_1.createElement)(this), element.diffState === enums_1.DiffState.exit) {
286
+ if (element = this.elementMap.has(elementKey) ? this.elementMap.get(elementKey) : this.createElement(),
287
+ element.diffState === enums_1.DiffState.exit) {
283
288
  element.diffState = enums_1.DiffState.enter;
284
- this.animate.getElementAnimators(element, enums_1.DiffState.exit).forEach((animator => animator.stop("start")));
289
+ const animators = null === (_a = this.animate) || void 0 === _a ? void 0 : _a.getElementAnimators(element, enums_1.DiffState.exit);
290
+ animators && animators.forEach((animator => animator.stop("start")));
285
291
  }
286
292
  element.diffState = enums_1.DiffState.enter;
287
293
  const groupKey = isCollectionMark ? key : groupKeyGetter(data[0]);
288
- element.updateData(groupKey, data, keyGetter, this.view), this.elementMap.set(elementKey, element),
294
+ element.updateData(groupKey, data, keyGetter), this.elementMap.set(elementKey, element),
289
295
  elements.push(element);
290
296
  } else if (element = this.elementMap.get(elementKey), element) {
291
297
  element.diffState = enums_1.DiffState.update;
292
298
  const groupKey = isCollectionMark ? key : groupKeyGetter(data[0]);
293
- element.updateData(groupKey, data, keyGetter, this.view), elements.push(element);
299
+ element.updateData(groupKey, data, keyGetter), elements.push(element);
294
300
  }
295
301
  enterElements.delete(element);
296
302
  }));
@@ -410,20 +416,20 @@ class Mark extends grammar_base_1.GrammarBase {
410
416
  if (this.isCollectionMark()) return this._groupKeys.forEach(((key, index) => {
411
417
  const data = this.renderContext.progressive.groupedData.get(key), groupStep = this.renderContext.progressive.step, dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep);
412
418
  if (0 === currentIndex) {
413
- const element = (0, element_1.createElement)(this);
414
- element.diffState = enums_1.DiffState.enter, element.updateData(key, dataSlice, keyGetter, this.view),
419
+ const element = this.createElement();
420
+ element.diffState = enums_1.DiffState.enter, element.updateData(key, dataSlice, keyGetter),
415
421
  elements.push(element);
416
422
  } else {
417
423
  const element = this.elements[index];
418
- element.updateData(key, dataSlice, keyGetter, this.view), elements.push(element);
424
+ element.updateData(key, dataSlice, keyGetter), elements.push(element);
419
425
  }
420
426
  })), elements;
421
427
  const groupElements = {};
422
428
  return this._groupKeys.forEach((key => {
423
429
  const data = this.renderContext.progressive.groupedData.get(key), groupStep = this.renderContext.progressive.step, dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep), group = [];
424
430
  dataSlice.forEach((entry => {
425
- const element = (0, element_1.createElement)(this);
426
- element.diffState = enums_1.DiffState.enter, element.updateData(key, [ entry ], keyGetter, this.view),
431
+ const element = this.createElement();
432
+ element.diffState = enums_1.DiffState.enter, element.updateData(key, [ entry ], keyGetter),
427
433
  group.push(element), elements.push(element);
428
434
  })), groupElements[key] = group;
429
435
  })), {
@@ -539,7 +545,8 @@ class Mark extends grammar_base_1.GrammarBase {
539
545
  this.group = null, super.clear();
540
546
  }
541
547
  prepareRelease() {
542
- this.animate.stop(), this.elementMap.forEach((element => element.diffState = enums_1.DiffState.exit)),
548
+ var _a;
549
+ null === (_a = this.animate) || void 0 === _a || _a.stop(), this.elementMap.forEach((element => element.diffState = enums_1.DiffState.exit)),
543
550
  this._finalParameters = this.parameters();
544
551
  }
545
552
  release() {