@visactor/vgrammar-core 0.13.10 → 0.14.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) 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/attributes/line.js.map +1 -1
  28. package/cjs/graph/canvas-renderer.d.ts +1 -1
  29. package/cjs/graph/canvas-renderer.js +4 -4
  30. package/cjs/graph/canvas-renderer.js.map +1 -1
  31. package/cjs/graph/element.js +3 -3
  32. package/cjs/graph/element.js.map +1 -1
  33. package/cjs/graph/glyph-element.js +3 -2
  34. package/cjs/graph/glyph-element.js.map +1 -1
  35. package/cjs/graph/layout/layout.d.ts +1 -0
  36. package/cjs/graph/layout/layout.js +8 -2
  37. package/cjs/graph/layout/layout.js.map +1 -1
  38. package/cjs/graph/mark/graphic.js +14 -8
  39. package/cjs/graph/mark/graphic.js.map +1 -1
  40. package/cjs/graph/util/point.js +10 -26
  41. package/cjs/graph/util/point.js.map +1 -1
  42. package/cjs/index.d.ts +6 -1
  43. package/cjs/index.js +51 -2
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/parse/event.d.ts +0 -2
  46. package/cjs/parse/event.js +4 -10
  47. package/cjs/parse/event.js.map +1 -1
  48. package/cjs/types/element.d.ts +1 -1
  49. package/cjs/types/element.js.map +1 -1
  50. package/cjs/types/renderer.d.ts +6 -1
  51. package/cjs/types/renderer.js.map +1 -1
  52. package/cjs/view/View.d.ts +2 -4
  53. package/cjs/view/View.js +21 -76
  54. package/cjs/view/View.js.map +1 -1
  55. package/cjs/view/constants.d.ts +2 -0
  56. package/cjs/view/constants.js +3 -2
  57. package/cjs/view/constants.js.map +1 -1
  58. package/cjs/view/events.d.ts +0 -1
  59. package/cjs/view/events.js +3 -17
  60. package/cjs/view/events.js.map +1 -1
  61. package/cjs/view/glyph.d.ts +4 -0
  62. package/cjs/view/glyph.js +12 -3
  63. package/cjs/view/glyph.js.map +1 -1
  64. package/cjs/view/group.js +3 -3
  65. package/cjs/view/group.js.map +1 -1
  66. package/cjs/view/mark.d.ts +2 -0
  67. package/cjs/view/mark.js +13 -10
  68. package/cjs/view/mark.js.map +1 -1
  69. package/cjs/view/view-event-mixin.d.ts +1 -0
  70. package/cjs/view/view-event-mixin.js +92 -0
  71. package/cjs/view/view-event-mixin.js.map +1 -0
  72. package/es/component/axis.d.ts +2 -0
  73. package/es/component/axis.js +10 -0
  74. package/es/component/axis.js.map +1 -1
  75. package/es/component/grid.d.ts +2 -0
  76. package/es/component/grid.js +10 -0
  77. package/es/component/grid.js.map +1 -1
  78. package/es/component/index.d.ts +2 -2
  79. package/es/component/index.js +2 -2
  80. package/es/component/index.js.map +1 -1
  81. package/es/core/factory.d.ts +8 -1
  82. package/es/core/factory.js +8 -1
  83. package/es/core/factory.js.map +1 -1
  84. package/es/glyph/boxplot.js +4 -2
  85. package/es/glyph/boxplot.js.map +1 -1
  86. package/es/glyph/link-path.js +4 -2
  87. package/es/glyph/link-path.js.map +1 -1
  88. package/es/glyph/ripple.js +3 -1
  89. package/es/glyph/ripple.js.map +1 -1
  90. package/es/glyph/tree-path.js +4 -2
  91. package/es/glyph/tree-path.js.map +1 -1
  92. package/es/glyph/violin.js +4 -2
  93. package/es/glyph/violin.js.map +1 -1
  94. package/es/glyph/wave.js +3 -1
  95. package/es/glyph/wave.js.map +1 -1
  96. package/es/graph/animation/animation/update.js +1 -3
  97. package/es/graph/animation/animation/update.js.map +1 -1
  98. package/es/graph/attributes/line.js.map +1 -1
  99. package/es/graph/canvas-renderer.d.ts +1 -1
  100. package/es/graph/canvas-renderer.js +5 -5
  101. package/es/graph/canvas-renderer.js.map +1 -1
  102. package/es/graph/element.js +1 -3
  103. package/es/graph/element.js.map +1 -1
  104. package/es/graph/glyph-element.js +2 -4
  105. package/es/graph/glyph-element.js.map +1 -1
  106. package/es/graph/layout/layout.d.ts +1 -0
  107. package/es/graph/layout/layout.js +6 -0
  108. package/es/graph/layout/layout.js.map +1 -1
  109. package/es/graph/mark/graphic.js +13 -7
  110. package/es/graph/mark/graphic.js.map +1 -1
  111. package/es/graph/util/point.js +10 -26
  112. package/es/graph/util/point.js.map +1 -1
  113. package/es/index.d.ts +6 -1
  114. package/es/index.js +19 -1
  115. package/es/index.js.map +1 -1
  116. package/es/interactions/brush-filter.js +2 -1
  117. package/es/interactions/element-highlight-by-group.js +1 -2
  118. package/es/interactions/index.js +2 -1
  119. package/es/interactions/legend-filter.js +1 -1
  120. package/es/interactions/player-filter.js +1 -1
  121. package/es/interactions/roll-up.js +1 -1
  122. package/es/interactions/scrollbar-filter.js +1 -1
  123. package/es/interactions/slider-filter.js +1 -1
  124. package/es/interactions/toggle-state-mixin.js +1 -1
  125. package/es/interactions/tooltip.js +1 -1
  126. package/es/parse/coordinate.js +1 -1
  127. package/es/parse/event.d.ts +0 -2
  128. package/es/parse/event.js +4 -8
  129. package/es/parse/event.js.map +1 -1
  130. package/es/parse/mark.js +1 -1
  131. package/es/parse/option.js +1 -1
  132. package/es/parse/scale.js +1 -2
  133. package/es/parse/transform.js +1 -1
  134. package/es/parse/util.js +1 -1
  135. package/es/parse/view.js +1 -1
  136. package/es/types/element.d.ts +1 -1
  137. package/es/types/element.js.map +1 -1
  138. package/es/types/renderer.d.ts +6 -1
  139. package/es/types/renderer.js.map +1 -1
  140. package/es/view/View.d.ts +2 -4
  141. package/es/view/View.js +20 -82
  142. package/es/view/View.js.map +1 -1
  143. package/es/view/constants.d.ts +2 -0
  144. package/es/view/constants.js +4 -0
  145. package/es/view/constants.js.map +1 -1
  146. package/es/view/events.d.ts +0 -1
  147. package/es/view/events.js +1 -15
  148. package/es/view/events.js.map +1 -1
  149. package/es/view/glyph.d.ts +4 -0
  150. package/es/view/glyph.js +11 -0
  151. package/es/view/glyph.js.map +1 -1
  152. package/es/view/group.js +2 -4
  153. package/es/view/group.js.map +1 -1
  154. package/es/view/mark.d.ts +2 -0
  155. package/es/view/mark.js +13 -10
  156. package/es/view/mark.js.map +1 -1
  157. package/es/view/view-event-mixin.d.ts +1 -0
  158. package/es/view/view-event-mixin.js +90 -0
  159. package/es/view/view-event-mixin.js.map +1 -0
  160. package/package.json +7 -7
  161. package/cjs/graph/util/element.d.ts +0 -2
  162. package/cjs/graph/util/element.js +0 -10
  163. package/cjs/graph/util/element.js.map +0 -1
  164. package/es/graph/util/element.d.ts +0 -2
  165. package/es/graph/util/element.js +0 -8
  166. package/es/graph/util/element.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph/glyph-element.ts"],"names":[],"mappings":"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","file":"glyph-element.js","sourcesContent":["import { has, isNil, isBoolean, isFunction } from '@visactor/vutils';\nimport { isEqual } from '@visactor/vgrammar-util';\nimport type {\n IGlyphElement,\n IGlyphMark,\n MarkElementItem,\n MarkSpec,\n IGlyphMeta,\n MarkType,\n StateProxyEncodeSpec\n} from '../types';\nimport { cloneTransformAttributes, transformAttributes } from './attributes/transform';\nimport { BridgeElementKey, CollectionMarkType } from './constants';\nimport { DiffState, HOOK_EVENT, GrammarMarkType } from './enums';\nimport { Element } from './element';\nimport { invokeEncoderToItems } from './mark/encode';\nimport type { IGraphicAttribute, IGlyph } from '@visactor/vrender-core';\n\nexport class GlyphElement extends Element implements IGlyphElement {\n declare graphicItem: IGlyph;\n\n declare mark: IGlyphMark;\n protected glyphGraphicItems: { [markName: string]: any };\n\n private glyphMeta: IGlyphMeta;\n\n constructor(mark: IGlyphMark) {\n super(mark);\n this.glyphMeta = this.mark.getGlyphMeta();\n }\n\n getGlyphGraphicItems() {\n return this.glyphGraphicItems;\n }\n\n initGraphicItem(attributes: any = {}) {\n if (this.graphicItem) {\n return;\n }\n\n this.graphicItem = this.mark.addGraphicItem(attributes, this.groupKey) as IGlyph;\n this.graphicItem[BridgeElementKey] = this;\n this.graphicItem.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(false);\n\n const glyphMarks = this.glyphMeta.getMarks();\n this.glyphGraphicItems = {};\n this.graphicItem.getSubGraphic().forEach((graphic: any) => {\n const markType = glyphMarks[graphic.name];\n this.glyphGraphicItems[graphic.name] = graphic;\n graphic.onBeforeAttributeUpdate = (attributes: any) => {\n // mark might be released\n if (!this.mark) {\n return attributes;\n }\n const graphicAttributes = transformAttributes(markType, attributes, this, graphic.name);\n return graphicAttributes;\n };\n });\n\n this.clearGraphicAttributes();\n }\n\n useStates(states: string[], hasAnimation?: boolean) {\n if (!this.graphicItem) {\n return false;\n }\n this.mark.emit(HOOK_EVENT.BEFORE_ELEMENT_STATE, { states }, this);\n\n this.states = states.slice();\n\n const stateAnimationEnable = isBoolean(hasAnimation)\n ? hasAnimation\n : this.mark.animate.getAnimationConfigs('state').length !== 0;\n\n this.graphicItem.glyphStateProxy = this.getStateAttrs;\n this.graphicItem.useStates(this.states, stateAnimationEnable);\n\n this.mark.emit(HOOK_EVENT.AFTER_ELEMENT_STATE, { states }, this);\n\n return true;\n }\n\n protected getStateAttrs = (stateName: string, nextStates: string[]) => {\n const isRuntimeState = !isNil(this.runtimeStatesEncoder?.[stateName]);\n const encoder = isRuntimeState\n ? {\n ...(this.mark.getSpec() as MarkSpec).encode?.[stateName],\n ...this.runtimeStatesEncoder[stateName]\n }\n : (this.mark.getSpec() as MarkSpec).encode?.[stateName];\n\n const glyphStateAttributes = {} as {\n attributes: Partial<IGraphicAttribute>;\n subAttributes: Partial<IGraphicAttribute>[];\n };\n\n if (!encoder) {\n return glyphStateAttributes;\n }\n\n if (isFunction(encoder)) {\n glyphStateAttributes.attributes = (encoder as StateProxyEncodeSpec)(this.getDatum(), this, stateName, nextStates);\n return glyphStateAttributes;\n }\n\n if (!isRuntimeState && this.graphicItem.glyphStates?.[stateName]) {\n return this.graphicItem.glyphStates[stateName];\n }\n\n if (encoder) {\n const item = this.items[0];\n const targetItems = [Object.assign({}, item, { nextAttrs: {} })];\n\n invokeEncoderToItems(this, targetItems, encoder, (this.mark as any).parameters());\n this.coordinateTransformEncode(targetItems);\n\n glyphStateAttributes.attributes = targetItems[0].nextAttrs;\n\n if (!this.graphicItem.glyphStates) {\n this.graphicItem.glyphStates = { [stateName]: glyphStateAttributes };\n } else if (!this.graphicItem.glyphStates[stateName]) {\n this.graphicItem.glyphStates[stateName] = glyphStateAttributes;\n }\n\n return glyphStateAttributes;\n }\n\n return glyphStateAttributes;\n };\n\n encodeGraphic() {\n this.coordinateTransformEncode(this.items);\n const graphicAttributes = this.transformElementItems(this.items, this.mark.markType);\n\n if (!this.graphicItem) {\n this.initGraphicItem();\n }\n\n if (this.diffState === DiffState.enter) {\n // apply default encoder when enter\n this.graphicItem.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(true);\n this.applyGraphicAttributes(graphicAttributes);\n this.graphicItem.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(false);\n } else {\n this.applyGraphicAttributes(graphicAttributes);\n }\n\n if ((this.diffState === DiffState.enter || this.diffState === DiffState.update) && this.states.length) {\n Object.values(this.glyphGraphicItems).forEach(graphicItem => {\n // 更新数据流后,states计算不缓存\n graphicItem.states = {};\n });\n this.useStates(this.states);\n }\n\n // clear item attributes\n this.items.map(item => {\n item.nextAttrs = {};\n });\n }\n\n encodeCustom(nextAttrs?: any): { [markName: string]: any } {\n let customEncodeValues: { [markName: string]: any } = {};\n const channelEncoder = this.glyphMeta.getChannelEncoder();\n const functionEncoder = this.glyphMeta.getFunctionEncoder();\n\n if (functionEncoder) {\n customEncodeValues = functionEncoder.call(\n null,\n Object.assign({}, this.graphicItem?.attribute, nextAttrs),\n this.getDatum(),\n this,\n this.mark.getGlyphConfig()\n );\n }\n if (channelEncoder) {\n // TODO: maybe delete origin encode value?\n let allAttrs: any;\n Object.keys(channelEncoder).forEach(channel => {\n if (!isNil(nextAttrs[channel])) {\n if (!allAttrs) {\n allAttrs = Object.assign({}, this.graphicItem?.attribute, nextAttrs);\n }\n const encodeResult = channelEncoder[channel].call(\n null,\n channel,\n nextAttrs[channel],\n allAttrs,\n this.getDatum(),\n this,\n this.mark.getGlyphConfig()\n );\n Object.keys(encodeResult ?? {}).forEach(markName => {\n customEncodeValues[markName] = Object.assign(customEncodeValues[markName] ?? {}, encodeResult[markName]);\n });\n }\n });\n }\n return customEncodeValues;\n }\n\n private encodeDefault() {\n const defaultEncodeValues: { [markName: string]: any } = {};\n // apply default encode\n if (this.diffState === DiffState.enter && this.glyphMeta.getDefaultEncoder()) {\n const defaultEncodeResult = this.glyphMeta\n .getDefaultEncoder()\n .call(null, this.getDatum(), this, this.mark.getGlyphConfig());\n Object.assign(defaultEncodeValues, defaultEncodeResult);\n }\n return defaultEncodeValues;\n }\n\n private _onGlyphAttributeUpdate(first: boolean = false) {\n return (attributes: any) => {\n // mark might be released\n if (!this.mark) {\n return attributes;\n }\n const glyphMarks = this.glyphMeta.getMarks();\n\n const graphicAttributes = transformAttributes(this.mark.getAttributeTransforms(), attributes, this);\n\n // apply default encode\n const defaultEncodeValues = first ? this.encodeDefault() : null;\n // apply custom encode\n const customEncodeValues = this.encodeCustom(attributes);\n\n Object.keys(glyphMarks).forEach(markName => {\n const markType = glyphMarks[markName];\n const graphicItem = this.glyphGraphicItems[markName];\n const customAttributes = customEncodeValues?.[markName];\n const additionalAttributes = Object.assign({}, customAttributes);\n if (first) {\n // apply default attributes when visual channel is not set\n const defaultAttributes = defaultEncodeValues?.[markName];\n Object.keys(defaultAttributes ?? {}).forEach(key => {\n if (!has(this.items[0].nextAttrs, key) && !has(additionalAttributes, key)) {\n additionalAttributes[key] = defaultAttributes[key];\n }\n });\n }\n const glyphAttributes = Object.assign({}, cloneTransformAttributes(markType, attributes), additionalAttributes);\n const glyphItems = this._generateGlyphItems(markType, this.items, glyphAttributes);\n this.coordinateTransformEncode(glyphItems);\n const graphicAttributes = this.transformElementItems(glyphItems, markType);\n\n this.applyGlyphGraphicAttributes(graphicAttributes, markName, graphicItem);\n\n if (markType === GrammarMarkType.shape) {\n // FIXME: shape需要拿到原始数据进行编码,暂时把数据绑定到graphicItem上,看后续graphicItem是否需要支持数据绑定\n graphicItem.datum = glyphItems[0].datum;\n }\n });\n\n return graphicAttributes;\n };\n }\n\n private _generateGlyphItems(markType: MarkType, items: MarkElementItem[], additionalAttributes: any) {\n const glyphItems = items.map(item => Object.assign({}, item, { nextAttrs: additionalAttributes }));\n\n if ((CollectionMarkType as string[]).includes(markType) && this.mark.getSpec().enableSegments) {\n // segment mark require all items to apply additional attributes\n glyphItems.forEach((glyphItem, index) => {\n glyphItem.nextAttrs = Object.assign({}, items[index].nextAttrs, additionalAttributes);\n });\n }\n\n return glyphItems;\n }\n\n getGraphicAttribute(channel: string, prev: boolean = false, markName?: any) {\n if (!this.graphicItem) {\n return undefined;\n }\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName);\n if (prev && has(prevGraphicAttributes, channel)) {\n return prevGraphicAttributes[channel];\n }\n\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.attribute[channel];\n }\n\n setGraphicAttribute(channel: string, value: any, final: boolean = true, markName?: any) {\n if (!this.graphicItem) {\n return;\n }\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName);\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName);\n\n if (final) {\n finalGraphicAttributes[channel] = value;\n }\n if (!has(prevGraphicAttributes, channel)) {\n prevGraphicAttributes[channel] = graphicItem.attribute[channel];\n }\n\n graphicItem.setAttribute(channel, value);\n }\n\n setGraphicAttributes(attributes: { [channel: string]: any }, final: boolean = true, markName?: any) {\n if (!this.graphicItem) {\n return;\n }\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName);\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName);\n\n Object.keys(attributes).forEach(key => {\n if (final) {\n finalGraphicAttributes[key] = attributes[key];\n }\n if (!has(prevGraphicAttributes, key)) {\n prevGraphicAttributes[key] = graphicItem.attribute[key];\n }\n });\n\n graphicItem.setAttributes(attributes);\n }\n\n protected diffAttributes(graphicAttributes: { [channel: string]: any }, markName?: string) {\n const diffResult = {};\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName);\n for (const key in graphicAttributes) {\n if (!isEqual(key, finalGraphicAttributes, graphicAttributes)) {\n diffResult[key] = graphicAttributes[key];\n }\n }\n return diffResult;\n }\n\n protected applyGlyphGraphicAttributes(graphicAttributes: any, markName: string, graphicItem: any): void {\n if (this.mark.needAnimate()) {\n // If mark need animate, diff attributes.\n const nextGraphicAttributes = this.diffAttributes(graphicAttributes, markName);\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName) ?? {};\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName) ?? {};\n Object.keys(nextGraphicAttributes).forEach(channel => {\n prevGraphicAttributes[channel] = graphicItem.attribute[channel];\n finalGraphicAttributes[channel] = nextGraphicAttributes[channel];\n });\n this.setNextGraphicAttributes(nextGraphicAttributes, markName);\n this.setPrevGraphicAttributes(prevGraphicAttributes, markName);\n this.setFinalGraphicAttributes(finalGraphicAttributes, markName);\n\n // Apply next attributes to current graphic item immediately.\n // Scene graph tree should be handled like no animation exists in dataflow procedure.\n graphicItem.setAttributes(nextGraphicAttributes);\n } else {\n graphicItem.setAttributes(graphicAttributes);\n }\n }\n\n getFinalGraphicAttributes(markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.finalAttrs;\n }\n\n protected setFinalGraphicAttributes(attributes: { [channel: string]: any }, markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n graphicItem.finalAttrs = attributes;\n }\n\n getPrevGraphicAttributes(markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.prevAttrs;\n }\n\n protected setPrevGraphicAttributes(attributes: { [channel: string]: any }, markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n graphicItem.prevAttrs = attributes;\n }\n\n getNextGraphicAttributes(markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.nextAttrs;\n }\n\n protected setNextGraphicAttributes(attributes: { [channel: string]: any }, markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n graphicItem.nextAttrs = attributes;\n }\n\n clearChangedGraphicAttributes() {\n this.setPrevGraphicAttributes(null);\n this.setNextGraphicAttributes(null);\n Object.keys(this.glyphGraphicItems).forEach(markName => {\n this.setPrevGraphicAttributes(null, markName);\n this.setNextGraphicAttributes(null, markName);\n });\n }\n\n clearGraphicAttributes() {\n this.setPrevGraphicAttributes(null);\n this.setNextGraphicAttributes(null);\n this.setFinalGraphicAttributes(null);\n Object.keys(this.glyphGraphicItems).forEach(markName => {\n this.setPrevGraphicAttributes(null, markName);\n this.setNextGraphicAttributes(null, markName);\n this.setFinalGraphicAttributes(null, markName);\n });\n }\n\n remove() {\n this.glyphGraphicItems = null;\n super.remove();\n }\n\n release() {\n if (this.glyphGraphicItems) {\n Object.values(this.glyphGraphicItems).forEach(graphicItem => {\n graphicItem[BridgeElementKey] = null;\n });\n this.glyphGraphicItems = null;\n }\n super.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/graph/glyph-element.ts"],"names":[],"mappings":"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","file":"glyph-element.js","sourcesContent":["import { has, isNil, isBoolean, isFunction, isEqual } from '@visactor/vutils';\nimport type {\n IGlyphElement,\n IGlyphMark,\n MarkElementItem,\n MarkSpec,\n IGlyphMeta,\n MarkType,\n StateProxyEncodeSpec\n} from '../types';\nimport { cloneTransformAttributes, transformAttributes } from './attributes/transform';\nimport { BridgeElementKey, CollectionMarkType } from './constants';\nimport { DiffState, HOOK_EVENT, GrammarMarkType } from './enums';\nimport { Element } from './element';\nimport { invokeEncoderToItems } from './mark/encode';\nimport type { IGraphicAttribute, IGlyph } from '@visactor/vrender-core';\n\nexport class GlyphElement extends Element implements IGlyphElement {\n declare graphicItem: IGlyph;\n\n declare mark: IGlyphMark;\n protected glyphGraphicItems: { [markName: string]: any };\n\n private glyphMeta: IGlyphMeta;\n\n constructor(mark: IGlyphMark) {\n super(mark);\n this.glyphMeta = this.mark.getGlyphMeta();\n }\n\n getGlyphGraphicItems() {\n return this.glyphGraphicItems;\n }\n\n initGraphicItem(attributes: any = {}) {\n if (this.graphicItem) {\n return;\n }\n\n this.graphicItem = this.mark.addGraphicItem(attributes, this.groupKey) as IGlyph;\n this.graphicItem[BridgeElementKey] = this;\n this.graphicItem.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(false);\n\n const glyphMarks = this.glyphMeta.getMarks();\n this.glyphGraphicItems = {};\n this.graphicItem.getSubGraphic().forEach((graphic: any) => {\n const markType = glyphMarks[graphic.name];\n this.glyphGraphicItems[graphic.name] = graphic;\n graphic.onBeforeAttributeUpdate = (attributes: any) => {\n // mark might be released\n if (!this.mark) {\n return attributes;\n }\n const graphicAttributes = transformAttributes(markType, attributes, this, graphic.name);\n return graphicAttributes;\n };\n });\n\n this.clearGraphicAttributes();\n }\n\n useStates(states: string[], hasAnimation?: boolean) {\n if (!this.graphicItem) {\n return false;\n }\n this.mark.emit(HOOK_EVENT.BEFORE_ELEMENT_STATE, { states }, this);\n\n this.states = states.slice();\n\n const stateAnimationEnable = isBoolean(hasAnimation)\n ? hasAnimation\n : this.mark.animate.getAnimationConfigs('state').length !== 0;\n\n this.graphicItem.glyphStateProxy = this.getStateAttrs;\n this.graphicItem.useStates(this.states, stateAnimationEnable);\n\n this.mark.emit(HOOK_EVENT.AFTER_ELEMENT_STATE, { states }, this);\n\n return true;\n }\n\n protected getStateAttrs = (stateName: string, nextStates: string[]) => {\n const isRuntimeState = !isNil(this.runtimeStatesEncoder?.[stateName]);\n const encoder = isRuntimeState\n ? {\n ...(this.mark.getSpec() as MarkSpec).encode?.[stateName],\n ...this.runtimeStatesEncoder[stateName]\n }\n : (this.mark.getSpec() as MarkSpec).encode?.[stateName];\n\n const glyphStateAttributes = {} as {\n attributes: Partial<IGraphicAttribute>;\n subAttributes: Partial<IGraphicAttribute>[];\n };\n\n if (!encoder) {\n return glyphStateAttributes;\n }\n\n if (isFunction(encoder)) {\n glyphStateAttributes.attributes = (encoder as StateProxyEncodeSpec)(this.getDatum(), this, stateName, nextStates);\n return glyphStateAttributes;\n }\n\n if (!isRuntimeState && this.graphicItem.glyphStates?.[stateName]) {\n return this.graphicItem.glyphStates[stateName];\n }\n\n if (encoder) {\n const item = this.items[0];\n const targetItems = [Object.assign({}, item, { nextAttrs: {} })];\n\n invokeEncoderToItems(this, targetItems, encoder, (this.mark as any).parameters());\n this.coordinateTransformEncode(targetItems);\n\n glyphStateAttributes.attributes = targetItems[0].nextAttrs;\n\n if (!this.graphicItem.glyphStates) {\n this.graphicItem.glyphStates = { [stateName]: glyphStateAttributes };\n } else if (!this.graphicItem.glyphStates[stateName]) {\n this.graphicItem.glyphStates[stateName] = glyphStateAttributes;\n }\n\n return glyphStateAttributes;\n }\n\n return glyphStateAttributes;\n };\n\n encodeGraphic() {\n this.coordinateTransformEncode(this.items);\n const graphicAttributes = this.transformElementItems(this.items, this.mark.markType);\n\n if (!this.graphicItem) {\n this.initGraphicItem();\n }\n\n if (this.diffState === DiffState.enter) {\n // apply default encoder when enter\n this.graphicItem.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(true);\n this.applyGraphicAttributes(graphicAttributes);\n this.graphicItem.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(false);\n } else {\n this.applyGraphicAttributes(graphicAttributes);\n }\n\n if ((this.diffState === DiffState.enter || this.diffState === DiffState.update) && this.states.length) {\n Object.values(this.glyphGraphicItems).forEach(graphicItem => {\n // 更新数据流后,states计算不缓存\n graphicItem.states = {};\n });\n this.useStates(this.states);\n }\n\n // clear item attributes\n this.items.map(item => {\n item.nextAttrs = {};\n });\n }\n\n encodeCustom(nextAttrs?: any): { [markName: string]: any } {\n let customEncodeValues: { [markName: string]: any } = {};\n const channelEncoder = this.glyphMeta.getChannelEncoder();\n const functionEncoder = this.glyphMeta.getFunctionEncoder();\n\n if (functionEncoder) {\n customEncodeValues = functionEncoder.call(\n null,\n Object.assign({}, this.graphicItem?.attribute, nextAttrs),\n this.getDatum(),\n this,\n this.mark.getGlyphConfig()\n );\n }\n if (channelEncoder) {\n // TODO: maybe delete origin encode value?\n let allAttrs: any;\n Object.keys(channelEncoder).forEach(channel => {\n if (!isNil(nextAttrs[channel])) {\n if (!allAttrs) {\n allAttrs = Object.assign({}, this.graphicItem?.attribute, nextAttrs);\n }\n const encodeResult = channelEncoder[channel].call(\n null,\n channel,\n nextAttrs[channel],\n allAttrs,\n this.getDatum(),\n this,\n this.mark.getGlyphConfig()\n );\n Object.keys(encodeResult ?? {}).forEach(markName => {\n customEncodeValues[markName] = Object.assign(customEncodeValues[markName] ?? {}, encodeResult[markName]);\n });\n }\n });\n }\n return customEncodeValues;\n }\n\n private encodeDefault() {\n const defaultEncodeValues: { [markName: string]: any } = {};\n // apply default encode\n if (this.diffState === DiffState.enter && this.glyphMeta.getDefaultEncoder()) {\n const defaultEncodeResult = this.glyphMeta\n .getDefaultEncoder()\n .call(null, this.getDatum(), this, this.mark.getGlyphConfig());\n Object.assign(defaultEncodeValues, defaultEncodeResult);\n }\n return defaultEncodeValues;\n }\n\n private _onGlyphAttributeUpdate(first: boolean = false) {\n return (attributes: any) => {\n // mark might be released\n if (!this.mark) {\n return attributes;\n }\n const glyphMarks = this.glyphMeta.getMarks();\n\n const graphicAttributes = transformAttributes(this.mark.getAttributeTransforms(), attributes, this);\n\n // apply default encode\n const defaultEncodeValues = first ? this.encodeDefault() : null;\n // apply custom encode\n const customEncodeValues = this.encodeCustom(attributes);\n\n Object.keys(glyphMarks).forEach(markName => {\n const markType = glyphMarks[markName];\n const graphicItem = this.glyphGraphicItems[markName];\n const customAttributes = customEncodeValues?.[markName];\n const additionalAttributes = Object.assign({}, customAttributes);\n if (first) {\n // apply default attributes when visual channel is not set\n const defaultAttributes = defaultEncodeValues?.[markName];\n Object.keys(defaultAttributes ?? {}).forEach(key => {\n if (!has(this.items[0].nextAttrs, key) && !has(additionalAttributes, key)) {\n additionalAttributes[key] = defaultAttributes[key];\n }\n });\n }\n const glyphAttributes = Object.assign({}, cloneTransformAttributes(markType, attributes), additionalAttributes);\n const glyphItems = this._generateGlyphItems(markType, this.items, glyphAttributes);\n this.coordinateTransformEncode(glyphItems);\n const graphicAttributes = this.transformElementItems(glyphItems, markType);\n\n this.applyGlyphGraphicAttributes(graphicAttributes, markName, graphicItem);\n\n if (markType === GrammarMarkType.shape) {\n // FIXME: shape需要拿到原始数据进行编码,暂时把数据绑定到graphicItem上,看后续graphicItem是否需要支持数据绑定\n graphicItem.datum = glyphItems[0].datum;\n }\n });\n\n return graphicAttributes;\n };\n }\n\n private _generateGlyphItems(markType: MarkType, items: MarkElementItem[], additionalAttributes: any) {\n const glyphItems = items.map(item => Object.assign({}, item, { nextAttrs: additionalAttributes }));\n\n if ((CollectionMarkType as string[]).includes(markType) && this.mark.getSpec().enableSegments) {\n // segment mark require all items to apply additional attributes\n glyphItems.forEach((glyphItem, index) => {\n glyphItem.nextAttrs = Object.assign({}, items[index].nextAttrs, additionalAttributes);\n });\n }\n\n return glyphItems;\n }\n\n getGraphicAttribute(channel: string, prev: boolean = false, markName?: any) {\n if (!this.graphicItem) {\n return undefined;\n }\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName);\n if (prev && has(prevGraphicAttributes, channel)) {\n return prevGraphicAttributes[channel];\n }\n\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.attribute[channel];\n }\n\n setGraphicAttribute(channel: string, value: any, final: boolean = true, markName?: any) {\n if (!this.graphicItem) {\n return;\n }\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName);\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName);\n\n if (final) {\n finalGraphicAttributes[channel] = value;\n }\n if (!has(prevGraphicAttributes, channel)) {\n prevGraphicAttributes[channel] = graphicItem.attribute[channel];\n }\n\n graphicItem.setAttribute(channel, value);\n }\n\n setGraphicAttributes(attributes: { [channel: string]: any }, final: boolean = true, markName?: any) {\n if (!this.graphicItem) {\n return;\n }\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName);\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName);\n\n Object.keys(attributes).forEach(key => {\n if (final) {\n finalGraphicAttributes[key] = attributes[key];\n }\n if (!has(prevGraphicAttributes, key)) {\n prevGraphicAttributes[key] = graphicItem.attribute[key];\n }\n });\n\n graphicItem.setAttributes(attributes);\n }\n\n protected diffAttributes(graphicAttributes: { [channel: string]: any }, markName?: string) {\n const diffResult = {};\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName);\n for (const key in graphicAttributes) {\n if (!has(finalGraphicAttributes, key) || !isEqual(finalGraphicAttributes[key], graphicAttributes[key])) {\n diffResult[key] = graphicAttributes[key];\n }\n }\n return diffResult;\n }\n\n protected applyGlyphGraphicAttributes(graphicAttributes: any, markName: string, graphicItem: any): void {\n if (this.mark.needAnimate()) {\n // If mark need animate, diff attributes.\n const nextGraphicAttributes = this.diffAttributes(graphicAttributes, markName);\n const prevGraphicAttributes = this.getPrevGraphicAttributes(markName) ?? {};\n const finalGraphicAttributes = this.getFinalGraphicAttributes(markName) ?? {};\n Object.keys(nextGraphicAttributes).forEach(channel => {\n prevGraphicAttributes[channel] = graphicItem.attribute[channel];\n finalGraphicAttributes[channel] = nextGraphicAttributes[channel];\n });\n this.setNextGraphicAttributes(nextGraphicAttributes, markName);\n this.setPrevGraphicAttributes(prevGraphicAttributes, markName);\n this.setFinalGraphicAttributes(finalGraphicAttributes, markName);\n\n // Apply next attributes to current graphic item immediately.\n // Scene graph tree should be handled like no animation exists in dataflow procedure.\n graphicItem.setAttributes(nextGraphicAttributes);\n } else {\n graphicItem.setAttributes(graphicAttributes);\n }\n }\n\n getFinalGraphicAttributes(markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.finalAttrs;\n }\n\n protected setFinalGraphicAttributes(attributes: { [channel: string]: any }, markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n graphicItem.finalAttrs = attributes;\n }\n\n getPrevGraphicAttributes(markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.prevAttrs;\n }\n\n protected setPrevGraphicAttributes(attributes: { [channel: string]: any }, markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n graphicItem.prevAttrs = attributes;\n }\n\n getNextGraphicAttributes(markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n return graphicItem.nextAttrs;\n }\n\n protected setNextGraphicAttributes(attributes: { [channel: string]: any }, markName?: string) {\n const graphicItem = markName ? this.glyphGraphicItems[markName] : this.graphicItem;\n graphicItem.nextAttrs = attributes;\n }\n\n clearChangedGraphicAttributes() {\n this.setPrevGraphicAttributes(null);\n this.setNextGraphicAttributes(null);\n Object.keys(this.glyphGraphicItems).forEach(markName => {\n this.setPrevGraphicAttributes(null, markName);\n this.setNextGraphicAttributes(null, markName);\n });\n }\n\n clearGraphicAttributes() {\n this.setPrevGraphicAttributes(null);\n this.setNextGraphicAttributes(null);\n this.setFinalGraphicAttributes(null);\n Object.keys(this.glyphGraphicItems).forEach(markName => {\n this.setPrevGraphicAttributes(null, markName);\n this.setNextGraphicAttributes(null, markName);\n this.setFinalGraphicAttributes(null, markName);\n });\n }\n\n remove() {\n this.glyphGraphicItems = null;\n super.remove();\n }\n\n release() {\n if (this.glyphGraphicItems) {\n Object.values(this.glyphGraphicItems).forEach(graphicItem => {\n graphicItem[BridgeElementKey] = null;\n });\n this.glyphGraphicItems = null;\n }\n super.release();\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
1
  import type { IMark } from '../../types/grammar';
2
2
  import type { ILayoutOptions, IView } from '../../types/view';
3
3
  export declare const defaultDoLayout: (layoutMarks: IMark[], options: ILayoutOptions, view: IView) => void;
4
+ export declare const registerDefaultLayout: () => void;
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.defaultDoLayout = void 0;
5
+ }), exports.registerDefaultLayout = exports.defaultDoLayout = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), constants_1 = require("./../../view/constants"), enums_1 = require("../enums"), grid_1 = require("./grid"), relative_1 = require("./relative"), defaultDoLayout = (layoutMarks, options, view) => {
7
+ const vutils_1 = require("@visactor/vutils"), constants_1 = require("./../../view/constants"), enums_1 = require("../enums"), grid_1 = require("./grid"), relative_1 = require("./relative"), factory_1 = require("../../core/factory"), defaultDoLayout = (layoutMarks, options, view) => {
8
8
  null == layoutMarks || layoutMarks.forEach((mark => {
9
9
  var _a;
10
10
  if (mark.markType !== enums_1.GrammarMarkType.group) return;
@@ -30,4 +30,10 @@ const vutils_1 = require("@visactor/vutils"), constants_1 = require("./../../vie
30
30
  };
31
31
 
32
32
  exports.defaultDoLayout = defaultDoLayout;
33
+
34
+ const registerDefaultLayout = () => {
35
+ factory_1.Factory.registerDefaultLayout(exports.defaultDoLayout);
36
+ };
37
+
38
+ exports.registerDefaultLayout = registerDefaultLayout;
33
39
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph/layout/layout.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAC9C,sDAA+F;AAE/F,oCAA2C;AAG3C,iCAAsC;AACtC,yCAA8C;AAEvC,MAAM,eAAe,GAAG,CAAC,WAAoB,EAAE,OAAuB,EAAE,IAAW,EAAE,EAAE;IAC5F,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,IAAI,CAAC,EAAE;;QAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAe,CAAC,KAAK,EAAE;YAC3C,OAAO;SACR;QAED,MAAM,cAAc,GAAI,IAAmB,CAAC,cAAc,CAAC;QAO3D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAErD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,EAAE;YAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SAC5E;aAAM,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1C,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACrF;aAAM,IAAK,UAAwC,CAAC,OAAO,KAAK,UAAU,EAAE;YAC3E,IAAI,UAAU,CAAC,iBAAiB,EAAE;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAErC,IAAI,UAAU,EAAE;oBACd,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;iBAC9B;gBAED,MAAM,UAAU,GAAG,IAAA,2BAAgB,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzF,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG;oBACd,GAAG,EAAE,UAAU,CAAC,EAAE;oBAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE;oBACnC,IAAI,EAAE,UAAU,CAAC,EAAE;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;iBACtC,CAAC;gBACD,IAAY,CAAC,YAAY,CAAC,6BAAiB,EAAE,SAAS,CAAC,CAAC;gBACxD,IAAY,CAAC,YAAY,CAAC,8BAAkB,EAAE,UAAU,CAAC,CAAC;gBAC1D,IAAY,CAAC,YAAY,CAAC,0BAAc,EAAE,OAAO,CAAC,CAAC;aACrD;iBAAM;gBACL,IAAA,2BAAgB,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;aACvE;SACF;aAAM,IAAK,UAAoC,CAAC,OAAO,KAAK,MAAM,EAAE;YACnE,IAAA,mBAAY,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACnE;QAED,IAAA,uBAAe,EAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AArDW,QAAA,eAAe,mBAqD1B","file":"layout.js","sourcesContent":["import { isFunction } from '@visactor/vutils';\nimport { SIGNAL_VIEW_HEIGHT, SIGNAL_PADDING, SIGNAL_VIEW_WIDTH } from './../../view/constants';\nimport type { MarkRelativeContainerSpec, MarkGridContainerSpec } from './../../types/mark';\nimport { GrammarMarkType } from '../enums';\nimport type { IMark, IGroupMark } from '../../types/grammar';\nimport type { ILayoutOptions, IView } from '../../types/view';\nimport { doGridLayout } from './grid';\nimport { doRelativeLayout } from './relative';\n\nexport const defaultDoLayout = (layoutMarks: IMark[], options: ILayoutOptions, view: IView) => {\n layoutMarks?.forEach(mark => {\n if (mark.markType !== GrammarMarkType.group) {\n return;\n }\n\n const layoutChildren = (mark as IGroupMark).layoutChildren;\n\n // FIXME buildLayoutTree的时候过滤一下空的group\n // if (!layoutChildren?.length) {\n // return;\n // }\n\n const layoutSpec = mark.getSpec().layout;\n const bounds = mark.layoutBounds ?? mark.getBounds();\n\n if (!bounds) {\n return;\n }\n\n if (isFunction(layoutSpec)) {\n layoutSpec.call(null, mark as IGroupMark, layoutChildren, bounds, options);\n } else if (isFunction(layoutSpec.callback)) {\n layoutSpec.callback.call(null, mark as IGroupMark, layoutChildren, bounds, options);\n } else if ((layoutSpec as MarkRelativeContainerSpec).display === 'relative') {\n if (layoutSpec.updateViewSignals) {\n const oldViewBox = view.getViewBox();\n\n if (oldViewBox) {\n bounds.intersect(oldViewBox);\n }\n\n const viewBounds = doRelativeLayout(mark as IGroupMark, layoutChildren, bounds, options);\n const viewWidth = viewBounds.width();\n const viewHeight = viewBounds.height();\n const padding = {\n top: viewBounds.y1,\n right: view.width() - viewBounds.x2,\n left: viewBounds.x1,\n bottom: view.height() - viewBounds.y2\n };\n (view as any).updateSignal(SIGNAL_VIEW_WIDTH, viewWidth);\n (view as any).updateSignal(SIGNAL_VIEW_HEIGHT, viewHeight);\n (view as any).updateSignal(SIGNAL_PADDING, padding);\n } else {\n doRelativeLayout(mark as IGroupMark, layoutChildren, bounds, options);\n }\n } else if ((layoutSpec as MarkGridContainerSpec).display === 'grid') {\n doGridLayout(mark as IGroupMark, layoutChildren, bounds, options);\n }\n\n defaultDoLayout(layoutChildren, options, view);\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/graph/layout/layout.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAC9C,sDAA+F;AAE/F,oCAA2C;AAG3C,iCAAsC;AACtC,yCAA8C;AAC9C,gDAA6C;AAEtC,MAAM,eAAe,GAAG,CAAC,WAAoB,EAAE,OAAuB,EAAE,IAAW,EAAE,EAAE;IAC5F,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,IAAI,CAAC,EAAE;;QAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAe,CAAC,KAAK,EAAE;YAC3C,OAAO;SACR;QAED,MAAM,cAAc,GAAI,IAAmB,CAAC,cAAc,CAAC;QAO3D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAErD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,EAAE;YAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SAC5E;aAAM,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1C,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACrF;aAAM,IAAK,UAAwC,CAAC,OAAO,KAAK,UAAU,EAAE;YAC3E,IAAI,UAAU,CAAC,iBAAiB,EAAE;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAErC,IAAI,UAAU,EAAE;oBACd,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;iBAC9B;gBAED,MAAM,UAAU,GAAG,IAAA,2BAAgB,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzF,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG;oBACd,GAAG,EAAE,UAAU,CAAC,EAAE;oBAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE;oBACnC,IAAI,EAAE,UAAU,CAAC,EAAE;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;iBACtC,CAAC;gBACD,IAAY,CAAC,YAAY,CAAC,6BAAiB,EAAE,SAAS,CAAC,CAAC;gBACxD,IAAY,CAAC,YAAY,CAAC,8BAAkB,EAAE,UAAU,CAAC,CAAC;gBAC1D,IAAY,CAAC,YAAY,CAAC,0BAAc,EAAE,OAAO,CAAC,CAAC;aACrD;iBAAM;gBACL,IAAA,2BAAgB,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;aACvE;SACF;aAAM,IAAK,UAAoC,CAAC,OAAO,KAAK,MAAM,EAAE;YACnE,IAAA,mBAAY,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACnE;QAED,IAAA,uBAAe,EAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AArDW,QAAA,eAAe,mBAqD1B;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,iBAAO,CAAC,qBAAqB,CAAC,uBAAe,CAAC,CAAC;AACjD,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC","file":"layout.js","sourcesContent":["import { isFunction } from '@visactor/vutils';\nimport { SIGNAL_VIEW_HEIGHT, SIGNAL_PADDING, SIGNAL_VIEW_WIDTH } from './../../view/constants';\nimport type { MarkRelativeContainerSpec, MarkGridContainerSpec } from './../../types/mark';\nimport { GrammarMarkType } from '../enums';\nimport type { IMark, IGroupMark } from '../../types/grammar';\nimport type { ILayoutOptions, IView } from '../../types/view';\nimport { doGridLayout } from './grid';\nimport { doRelativeLayout } from './relative';\nimport { Factory } from '../../core/factory';\n\nexport const defaultDoLayout = (layoutMarks: IMark[], options: ILayoutOptions, view: IView) => {\n layoutMarks?.forEach(mark => {\n if (mark.markType !== GrammarMarkType.group) {\n return;\n }\n\n const layoutChildren = (mark as IGroupMark).layoutChildren;\n\n // FIXME buildLayoutTree的时候过滤一下空的group\n // if (!layoutChildren?.length) {\n // return;\n // }\n\n const layoutSpec = mark.getSpec().layout;\n const bounds = mark.layoutBounds ?? mark.getBounds();\n\n if (!bounds) {\n return;\n }\n\n if (isFunction(layoutSpec)) {\n layoutSpec.call(null, mark as IGroupMark, layoutChildren, bounds, options);\n } else if (isFunction(layoutSpec.callback)) {\n layoutSpec.callback.call(null, mark as IGroupMark, layoutChildren, bounds, options);\n } else if ((layoutSpec as MarkRelativeContainerSpec).display === 'relative') {\n if (layoutSpec.updateViewSignals) {\n const oldViewBox = view.getViewBox();\n\n if (oldViewBox) {\n bounds.intersect(oldViewBox);\n }\n\n const viewBounds = doRelativeLayout(mark as IGroupMark, layoutChildren, bounds, options);\n const viewWidth = viewBounds.width();\n const viewHeight = viewBounds.height();\n const padding = {\n top: viewBounds.y1,\n right: view.width() - viewBounds.x2,\n left: viewBounds.x1,\n bottom: view.height() - viewBounds.y2\n };\n (view as any).updateSignal(SIGNAL_VIEW_WIDTH, viewWidth);\n (view as any).updateSignal(SIGNAL_VIEW_HEIGHT, viewHeight);\n (view as any).updateSignal(SIGNAL_PADDING, padding);\n } else {\n doRelativeLayout(mark as IGroupMark, layoutChildren, bounds, options);\n }\n } else if ((layoutSpec as MarkGridContainerSpec).display === 'grid') {\n doGridLayout(mark as IGroupMark, layoutChildren, bounds, options);\n }\n\n defaultDoLayout(layoutChildren, options, view);\n });\n};\n\nexport const registerDefaultLayout = () => {\n Factory.registerDefaultLayout(defaultDoLayout);\n};\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerLargeSymbolsGraphic = exports.registerLargeRectsGraphic = exports.registerGlyphGraphic = exports.registerIntervalGraphic = exports.registerCellGraphic = exports.registerRichTextGraphic = exports.registerPolygonGraphic = exports.registerTextGraphic = exports.registerSymbolGraphic = exports.registerShapeGraphic = exports.registerRuleGraphic = exports.registerRect3dGraphic = exports.registerRectGraphic = exports.registerPathGraphic = exports.registerLineGraphic = exports.registerImageGraphic = exports.registerGroupGraphic = exports.registerAreaGraphic = exports.registerPyramid3dGraphic = exports.registerArc3dGraphic = exports.registerArcGraphic = exports.registerCircleGraphic = void 0;
6
6
 
7
- const factory_1 = require("../../core/factory"), enums_1 = require("../enums"), large_rects_1 = require("./large-rects"), large_symbols_1 = require("./large-symbols"), vrender_kits_1 = require("@visactor/vrender-kits"), vrender_core_1 = require("@visactor/vrender-core"), registerCircleGraphic = () => {
7
+ const factory_1 = require("../../core/factory"), enums_1 = require("../enums"), large_rects_1 = require("./large-rects"), large_symbols_1 = require("./large-symbols"), vrender_kits_1 = require("@visactor/vrender-kits"), vrender_core_1 = require("@visactor/vrender-core"), vrender_components_1 = require("@visactor/vrender-components"), registerCircleGraphic = () => {
8
8
  (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerCircle)(),
9
9
  factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.circle, vrender_core_1.createCircle);
10
10
  };
@@ -12,7 +12,8 @@ const factory_1 = require("../../core/factory"), enums_1 = require("../enums"),
12
12
  exports.registerCircleGraphic = registerCircleGraphic;
13
13
 
14
14
  const registerArcGraphic = () => {
15
- (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArc)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.arc, vrender_core_1.createArc);
15
+ (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArc)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.arc, vrender_core_1.createArc),
16
+ (0, vrender_components_1.registerArcDataLabel)();
16
17
  };
17
18
 
18
19
  exports.registerArcGraphic = registerArcGraphic;
@@ -31,7 +32,8 @@ const registerPyramid3dGraphic = () => {
31
32
  exports.registerPyramid3dGraphic = registerPyramid3dGraphic;
32
33
 
33
34
  const registerAreaGraphic = () => {
34
- (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArea)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.area, vrender_core_1.createArea);
35
+ (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArea)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.area, vrender_core_1.createArea),
36
+ (0, vrender_components_1.registerLineDataLabel)(), (0, vrender_components_1.registerSymbolDataLabel)();
35
37
  };
36
38
 
37
39
  exports.registerAreaGraphic = registerAreaGraphic;
@@ -49,7 +51,9 @@ const registerImageGraphic = () => {
49
51
  exports.registerImageGraphic = registerImageGraphic;
50
52
 
51
53
  const registerLineGraphic = () => {
52
- (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerLine)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.line, vrender_core_1.createLine);
54
+ (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerLine)(), (0,
55
+ vrender_components_1.registerLineDataLabel)(), (0, vrender_components_1.registerSymbolDataLabel)(),
56
+ factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.line, vrender_core_1.createLine);
53
57
  };
54
58
 
55
59
  exports.registerLineGraphic = registerLineGraphic;
@@ -61,7 +65,8 @@ const registerPathGraphic = () => {
61
65
  exports.registerPathGraphic = registerPathGraphic;
62
66
 
63
67
  const registerRectGraphic = () => {
64
- (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerRect)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.rect, vrender_core_1.createRect);
68
+ (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerRect)(), (0,
69
+ vrender_components_1.registerRectDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.rect, vrender_core_1.createRect);
65
70
  };
66
71
 
67
72
  exports.registerRectGraphic = registerRectGraphic;
@@ -87,7 +92,7 @@ exports.registerShapeGraphic = registerShapeGraphic;
87
92
 
88
93
  const registerSymbolGraphic = () => {
89
94
  (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerSymbol)(),
90
- factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.symbol, vrender_core_1.createSymbol);
95
+ (0, vrender_components_1.registerSymbolDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.symbol, vrender_core_1.createSymbol);
91
96
  };
92
97
 
93
98
  exports.registerSymbolGraphic = registerSymbolGraphic;
@@ -115,14 +120,15 @@ exports.registerRichTextGraphic = registerRichTextGraphic;
115
120
 
116
121
  const registerCellGraphic = () => {
117
122
  (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerSymbol)(),
118
- factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.cell, vrender_core_1.createSymbol);
123
+ (0, vrender_components_1.registerSymbolDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.cell, vrender_core_1.createSymbol);
119
124
  };
120
125
 
121
126
  exports.registerCellGraphic = registerCellGraphic;
122
127
 
123
128
  const registerIntervalGraphic = () => {
124
129
  (0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerRect)(), (0,
125
- vrender_kits_1.registerArc)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.interval, vrender_core_1.createRect);
130
+ vrender_components_1.registerRectDataLabel)(), (0, vrender_kits_1.registerArc)(),
131
+ (0, vrender_components_1.registerArcDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.interval, vrender_core_1.createRect);
126
132
  };
127
133
 
128
134
  exports.registerIntervalGraphic = registerIntervalGraphic;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph/mark/graphic.ts"],"names":[],"mappings":"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","file":"graphic.js","sourcesContent":["import { Factory } from '../../core/factory';\nimport { GrammarMarkType } from '../enums';\nimport { LargeRects } from './large-rects';\nimport { LargeSymbols } from './large-symbols';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport {\n registerCircle,\n registerArc,\n registerArc3d,\n registerPyramid3d,\n registerArea,\n registerGroup,\n registerImage,\n registerRect3d,\n registerLine,\n registerPath,\n registerRect,\n registerSymbol,\n registerText,\n registerPolygon,\n registerRichtext,\n registerGlyph,\n registerShadowRoot\n} from '@visactor/vrender-kits';\nimport {\n createArc,\n createCircle,\n createArc3d,\n createPyramid3d,\n createArea,\n createGroup,\n createImage,\n createRect3d,\n createLine,\n createPath,\n createRect,\n createSymbol,\n createText,\n createPolygon,\n createRichText,\n createGlyph\n} from '@visactor/vrender-core';\n\nexport const registerCircleGraphic = () => {\n registerShadowRoot();\n registerCircle();\n Factory.registerGraphic(GrammarMarkType.circle, createCircle);\n};\n\nexport const registerArcGraphic = () => {\n registerShadowRoot();\n registerArc();\n Factory.registerGraphic(GrammarMarkType.arc, createArc);\n};\n\nexport const registerArc3dGraphic = () => {\n registerShadowRoot();\n registerArc3d();\n Factory.registerGraphic(GrammarMarkType.arc3d, createArc3d);\n};\n\nexport const registerPyramid3dGraphic = () => {\n registerShadowRoot();\n registerPyramid3d();\n Factory.registerGraphic(GrammarMarkType.pyramid3d, createPyramid3d);\n};\n\nexport const registerAreaGraphic = () => {\n registerShadowRoot();\n registerArea();\n Factory.registerGraphic(GrammarMarkType.area, createArea);\n};\n\nexport const registerGroupGraphic = () => {\n registerShadowRoot();\n registerGroup();\n Factory.registerGraphic(GrammarMarkType.group, createGroup);\n};\n\nexport const registerImageGraphic = () => {\n registerShadowRoot();\n registerImage();\n Factory.registerGraphic(GrammarMarkType.image, createImage);\n};\n\nexport const registerLineGraphic = () => {\n registerShadowRoot();\n registerLine();\n Factory.registerGraphic(GrammarMarkType.line, createLine);\n};\n\nexport const registerPathGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.path, createPath);\n};\n\nexport const registerRectGraphic = () => {\n registerShadowRoot();\n registerRect();\n Factory.registerGraphic(GrammarMarkType.rect, createRect);\n};\n\nexport const registerRect3dGraphic = () => {\n registerShadowRoot();\n registerRect3d();\n Factory.registerGraphic(GrammarMarkType.rect3d, createRect3d);\n};\n\nexport const registerRuleGraphic = () => {\n registerShadowRoot();\n registerLine();\n Factory.registerGraphic(GrammarMarkType.rule, createLine);\n};\n\nexport const registerShapeGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.shape, createPath);\n};\n\nexport const registerSymbolGraphic = () => {\n registerShadowRoot();\n registerSymbol();\n Factory.registerGraphic(GrammarMarkType.symbol, createSymbol);\n};\n\nexport const registerTextGraphic = () => {\n registerShadowRoot();\n registerText();\n registerRichtext();\n Factory.registerGraphic(GrammarMarkType.text, createText);\n};\n\nexport const registerPolygonGraphic = () => {\n registerShadowRoot();\n registerPolygon();\n Factory.registerGraphic(GrammarMarkType.polygon, createPolygon);\n};\n\nexport const registerRichTextGraphic = () => {\n registerShadowRoot();\n registerRichtext();\n Factory.registerGraphic(GrammarMarkType.richtext, createRichText);\n};\n\nexport const registerCellGraphic = () => {\n registerShadowRoot();\n registerSymbol();\n Factory.registerGraphic(GrammarMarkType.cell, createSymbol);\n};\n\nexport const registerIntervalGraphic = () => {\n registerShadowRoot();\n registerRect();\n registerArc();\n Factory.registerGraphic(GrammarMarkType.interval, createRect);\n};\n\nexport const registerGlyphGraphic = () => {\n registerShadowRoot();\n registerGlyph();\n Factory.registerGraphic(GrammarMarkType.glyph, createGlyph);\n};\n\nexport const registerLargeRectsGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.largeRects, (attrs: any) => {\n return new LargeRects(attrs) as unknown as IGraphic;\n });\n};\n\nexport const registerLargeSymbolsGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.largeSymbols, (attrs: any) => {\n return new LargeSymbols(attrs) as unknown as IGraphic;\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/graph/mark/graphic.ts"],"names":[],"mappings":"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","file":"graphic.js","sourcesContent":["import { Factory } from '../../core/factory';\nimport { GrammarMarkType } from '../enums';\nimport { LargeRects } from './large-rects';\nimport { LargeSymbols } from './large-symbols';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport {\n registerCircle,\n registerArc,\n registerArc3d,\n registerPyramid3d,\n registerArea,\n registerGroup,\n registerImage,\n registerRect3d,\n registerLine,\n registerPath,\n registerRect,\n registerSymbol,\n registerText,\n registerPolygon,\n registerRichtext,\n registerGlyph,\n registerShadowRoot\n} from '@visactor/vrender-kits';\nimport {\n createArc,\n createCircle,\n createArc3d,\n createPyramid3d,\n createArea,\n createGroup,\n createImage,\n createRect3d,\n createLine,\n createPath,\n createRect,\n createSymbol,\n createText,\n createPolygon,\n createRichText,\n createGlyph\n} from '@visactor/vrender-core';\nimport {\n registerRectDataLabel,\n registerLineDataLabel,\n registerArcDataLabel,\n registerSymbolDataLabel\n} from '@visactor/vrender-components';\n\nexport const registerCircleGraphic = () => {\n registerShadowRoot();\n registerCircle();\n Factory.registerGraphic(GrammarMarkType.circle, createCircle);\n};\n\nexport const registerArcGraphic = () => {\n registerShadowRoot();\n registerArc();\n Factory.registerGraphic(GrammarMarkType.arc, createArc);\n registerArcDataLabel();\n};\n\nexport const registerArc3dGraphic = () => {\n registerShadowRoot();\n registerArc3d();\n Factory.registerGraphic(GrammarMarkType.arc3d, createArc3d);\n};\n\nexport const registerPyramid3dGraphic = () => {\n registerShadowRoot();\n registerPyramid3d();\n Factory.registerGraphic(GrammarMarkType.pyramid3d, createPyramid3d);\n};\n\nexport const registerAreaGraphic = () => {\n registerShadowRoot();\n registerArea();\n Factory.registerGraphic(GrammarMarkType.area, createArea);\n registerLineDataLabel();\n registerSymbolDataLabel();\n};\n\nexport const registerGroupGraphic = () => {\n registerShadowRoot();\n registerGroup();\n Factory.registerGraphic(GrammarMarkType.group, createGroup);\n};\n\nexport const registerImageGraphic = () => {\n registerShadowRoot();\n registerImage();\n Factory.registerGraphic(GrammarMarkType.image, createImage);\n};\n\nexport const registerLineGraphic = () => {\n registerShadowRoot();\n registerLine();\n registerLineDataLabel();\n registerSymbolDataLabel();\n Factory.registerGraphic(GrammarMarkType.line, createLine);\n};\n\nexport const registerPathGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.path, createPath);\n};\n\nexport const registerRectGraphic = () => {\n registerShadowRoot();\n registerRect();\n registerRectDataLabel();\n Factory.registerGraphic(GrammarMarkType.rect, createRect);\n};\n\nexport const registerRect3dGraphic = () => {\n registerShadowRoot();\n registerRect3d();\n Factory.registerGraphic(GrammarMarkType.rect3d, createRect3d);\n};\n\nexport const registerRuleGraphic = () => {\n registerShadowRoot();\n registerLine();\n Factory.registerGraphic(GrammarMarkType.rule, createLine);\n};\n\nexport const registerShapeGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.shape, createPath);\n};\n\nexport const registerSymbolGraphic = () => {\n registerShadowRoot();\n registerSymbol();\n registerSymbolDataLabel();\n Factory.registerGraphic(GrammarMarkType.symbol, createSymbol);\n};\n\nexport const registerTextGraphic = () => {\n registerShadowRoot();\n registerText();\n registerRichtext();\n Factory.registerGraphic(GrammarMarkType.text, createText);\n};\n\nexport const registerPolygonGraphic = () => {\n registerShadowRoot();\n registerPolygon();\n Factory.registerGraphic(GrammarMarkType.polygon, createPolygon);\n};\n\nexport const registerRichTextGraphic = () => {\n registerShadowRoot();\n registerRichtext();\n Factory.registerGraphic(GrammarMarkType.richtext, createRichText);\n};\n\nexport const registerCellGraphic = () => {\n registerShadowRoot();\n registerSymbol();\n registerSymbolDataLabel();\n Factory.registerGraphic(GrammarMarkType.cell, createSymbol);\n};\n\nexport const registerIntervalGraphic = () => {\n registerShadowRoot();\n registerRect();\n registerRectDataLabel();\n registerArc();\n registerArcDataLabel();\n Factory.registerGraphic(GrammarMarkType.interval, createRect);\n};\n\nexport const registerGlyphGraphic = () => {\n registerShadowRoot();\n registerGlyph();\n Factory.registerGraphic(GrammarMarkType.glyph, createGlyph);\n};\n\nexport const registerLargeRectsGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.largeRects, (attrs: any) => {\n return new LargeRects(attrs) as unknown as IGraphic;\n });\n};\n\nexport const registerLargeSymbolsGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.largeSymbols, (attrs: any) => {\n return new LargeSymbols(attrs) as unknown as IGraphic;\n });\n};\n"]}
@@ -30,17 +30,6 @@ function getOffsetPos(e) {
30
30
  };
31
31
  }
32
32
 
33
- function getBoundingClientRectPos(e, el) {
34
- const result = {
35
- canvasX: 0,
36
- canvasY: 0
37
- }, rect = el.getBoundingClientRect(), currentWidth = rect.width, widthRatio = currentWidth / (el.offsetWidth || currentWidth), currentHeight = rect.height, heightRatio = currentHeight / (el.offsetHeight || currentHeight);
38
- return [ "touchstart", "touchmove", "touchend" ].includes(e.type) && e.changedTouches && e.changedTouches.length ? (result.canvasX = (e.changedTouches[0].clientX - rect.left - (el.clientLeft || 0)) / widthRatio,
39
- result.canvasY = (e.changedTouches[0].clientY - rect.top - (el.clientTop || 0)) / heightRatio,
40
- result.clientX = e.changedTouches[0].clientX, result.clientY = e.changedTouches[0].clientY) : (result.canvasX = (e.clientX - rect.left - (el.clientLeft || 0)) / widthRatio,
41
- result.canvasY = (e.clientY - rect.top - (el.clientTop || 0)) / heightRatio), result;
42
- }
43
-
44
33
  function getXYPos(e) {
45
34
  return {
46
35
  canvasX: e.x,
@@ -49,26 +38,21 @@ function getXYPos(e) {
49
38
  }
50
39
 
51
40
  function getChangedTouchesPos(e) {
41
+ const pos = e.changedTouches[0];
52
42
  return {
53
- canvasX: e.changedTouches[0].x,
54
- canvasY: e.changedTouches[0].y
43
+ canvasX: pos.x,
44
+ canvasY: pos.y
55
45
  };
56
46
  }
57
47
 
58
48
  function defineSrPosition(event, pos, client = !0) {
59
- return (0, vutils_1.isValidNumber)(pos.canvasX) && Object.defineProperty(event, "canvasX", {
60
- value: pos.canvasX,
61
- writable: !0
62
- }), (0, vutils_1.isValidNumber)(pos.canvasY) && Object.defineProperty(event, "canvasY", {
63
- value: pos.canvasY,
64
- writable: !0
65
- }), client && (0, vutils_1.isValidNumber)(pos.clientX) && Object.defineProperty(event, "clientX", {
66
- value: pos.clientX,
67
- writable: !0
68
- }), client && (0, vutils_1.isValidNumber)(pos.clientY) && Object.defineProperty(event, "clientY", {
69
- value: pos.clientY,
70
- writable: !0
71
- }), [ pos.canvasX, pos.canvasY ];
49
+ const keys = [ "canvasX", "canvasY" ];
50
+ return client && (keys.push("clientX"), keys.push("clientY")), keys.forEach((key => {
51
+ (0, vutils_1.isValidNumber)(pos[key]) && Object.defineProperty(event, key, {
52
+ value: pos[key],
53
+ writable: !0
54
+ });
55
+ })), [ pos.canvasX, pos.canvasY ];
72
56
  }
73
57
 
74
58
  exports.point = point;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph/util/point.ts"],"names":[],"mappings":"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","file":"point.js","sourcesContent":["import { isValidNumber, isNil } from '@visactor/vutils';\n\ninterface EventPosition {\n canvasX: number;\n canvasY: number;\n clientX?: number;\n clientY?: number;\n}\n\nexport function point(event: Event) {\n ['touches', 'changedTouches', 'targetTouches'].forEach(touchKey => {\n if (event[touchKey] && event[touchKey].length) {\n Array.from(event[touchKey]).forEach(touch => {\n const touchPosition = clientToLocal(touch as Event);\n defineSrPosition(touch, touchPosition, false);\n });\n }\n });\n\n const pos = clientToLocal(event);\n return defineSrPosition(event, pos);\n}\n\nfunction clientToLocal(e: Event): EventPosition {\n // For IE6+, chrome, safari, opera. (When will ff support offsetX?)\n if (!isNil((e as any).offsetX)) {\n return getOffsetPos(e);\n }\n\n // if (el && el.getBoundingClientRect) {\n // return getBoundingClientRectPos(e, el);\n // }\n\n // for miniApp\n if (!isNil((e as any).x)) {\n return getXYPos(e);\n }\n\n // for miniApp\n if ((e as any).changedTouches && (e as any).changedTouches.length) {\n return getChangedTouchesPos(e);\n }\n\n // For some other device, e.g., IOS safari.\n return {\n canvasX: 0,\n canvasY: 0\n };\n}\n\nfunction getOffsetPos(e: any) {\n return {\n canvasX: e.offsetX,\n canvasY: e.offsetY\n };\n}\n\nfunction getBoundingClientRectPos(e: any, el: HTMLElement) {\n const result: EventPosition = { canvasX: 0, canvasY: 0 };\n const rect = el.getBoundingClientRect();\n const currentWidth = rect.width;\n const originWidth = el.offsetWidth || currentWidth;\n const widthRatio = currentWidth / originWidth;\n const currentHeight = rect.height;\n const originHeight = el.offsetHeight || currentHeight;\n const heightRatio = currentHeight / originHeight;\n if (['touchstart', 'touchmove', 'touchend'].includes(e.type) && e.changedTouches && e.changedTouches.length) {\n result.canvasX = (e.changedTouches[0].clientX - rect.left - (el.clientLeft || 0)) / widthRatio;\n result.canvasY = (e.changedTouches[0].clientY - rect.top - (el.clientTop || 0)) / heightRatio;\n result.clientX = e.changedTouches[0].clientX;\n result.clientY = e.changedTouches[0].clientY;\n } else {\n result.canvasX = (e.clientX - rect.left - (el.clientLeft || 0)) / widthRatio;\n result.canvasY = (e.clientY - rect.top - (el.clientTop || 0)) / heightRatio;\n }\n return result;\n}\n\nfunction getXYPos(e: any) {\n return { canvasX: e.x, canvasY: e.y };\n}\n\nfunction getChangedTouchesPos(e: any) {\n return { canvasX: e.changedTouches[0].x, canvasY: e.changedTouches[0].y };\n}\n\nfunction defineSrPosition(event: any, pos: EventPosition, client = true) {\n isValidNumber(pos.canvasX) &&\n Object.defineProperty(event, 'canvasX', {\n value: pos.canvasX,\n writable: true\n });\n isValidNumber(pos.canvasY) &&\n Object.defineProperty(event, 'canvasY', {\n value: pos.canvasY,\n writable: true\n });\n client &&\n isValidNumber(pos.clientX) &&\n Object.defineProperty(event, 'clientX', {\n value: pos.clientX,\n writable: true\n });\n client &&\n isValidNumber(pos.clientY) &&\n Object.defineProperty(event, 'clientY', {\n value: pos.clientY,\n writable: true\n });\n return [pos.canvasX, pos.canvasY];\n}\n"]}
1
+ {"version":3,"sources":["../src/graph/util/point.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AASxD,SAAgB,KAAK,CAAC,KAAY;IAChC,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;YAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,KAAc,CAAC,CAAC;gBACpD,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAZD,sBAYC;AAED,SAAS,aAAa,CAAC,CAAQ;IAE7B,IAAI,CAAC,IAAA,cAAK,EAAE,CAAS,CAAC,OAAO,CAAC,EAAE;QAC9B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAGD,IAAI,CAAC,IAAA,cAAK,EAAE,CAAS,CAAC,CAAC,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;KACpB;IAGD,IAAK,CAAS,CAAC,cAAc,IAAK,CAAS,CAAC,cAAc,CAAC,MAAM,EAAE;QACjE,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;KAChC;IAGD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAAM;IAC1B,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,CAAM;IACtB,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAM;IAClC,MAAM,GAAG,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAU,EAAE,GAAkB,EAAE,MAAM,GAAG,IAAI;IACrE,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEpC,IAAI,MAAM,EAAE;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtB;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACjB,IAAA,sBAAa,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;gBAChC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;gBACf,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC","file":"point.js","sourcesContent":["import { isValidNumber, isNil } from '@visactor/vutils';\n\ninterface EventPosition {\n canvasX: number;\n canvasY: number;\n clientX?: number;\n clientY?: number;\n}\n\nexport function point(event: Event) {\n ['touches', 'changedTouches', 'targetTouches'].forEach(touchKey => {\n if (event[touchKey] && event[touchKey].length) {\n Array.from(event[touchKey]).forEach(touch => {\n const touchPosition = clientToLocal(touch as Event);\n defineSrPosition(touch, touchPosition, false);\n });\n }\n });\n\n const pos = clientToLocal(event);\n return defineSrPosition(event, pos);\n}\n\nfunction clientToLocal(e: Event): EventPosition {\n // For IE6+, chrome, safari, opera. (When will ff support offsetX?)\n if (!isNil((e as any).offsetX)) {\n return getOffsetPos(e);\n }\n\n // for miniApp\n if (!isNil((e as any).x)) {\n return getXYPos(e);\n }\n\n // for miniApp\n if ((e as any).changedTouches && (e as any).changedTouches.length) {\n return getChangedTouchesPos(e);\n }\n\n // For some other device, e.g., IOS safari.\n return {\n canvasX: 0,\n canvasY: 0\n };\n}\n\nfunction getOffsetPos(e: any) {\n return {\n canvasX: e.offsetX,\n canvasY: e.offsetY\n };\n}\n\nfunction getXYPos(e: any) {\n return { canvasX: e.x, canvasY: e.y };\n}\n\nfunction getChangedTouchesPos(e: any) {\n const pos = e.changedTouches[0];\n return { canvasX: pos.x, canvasY: pos.y };\n}\n\nfunction defineSrPosition(event: any, pos: EventPosition, client = true) {\n const keys = ['canvasX', 'canvasY'];\n\n if (client) {\n keys.push('clientX');\n keys.push('clientY');\n }\n\n keys.forEach(key => {\n isValidNumber(pos[key]) &&\n Object.defineProperty(event, key, {\n value: pos[key],\n writable: true\n });\n });\n\n return [pos.canvasX, pos.canvasY];\n}\n"]}
package/cjs/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const version = "0.13.10";
1
+ export declare const version = "0.14.0-alpha.0";
2
2
  export * from './graph';
3
3
  export * from './interactions';
4
4
  export { View } from './view';
@@ -10,6 +10,7 @@ export * from './util/text';
10
10
  export * from './types';
11
11
  export { Factory } from './core/factory';
12
12
  export { SIGNAL_AUTOFIT, SIGNAL_HEIGHT, SIGNAL_PADDING, SIGNAL_VIEW_HEIGHT, SIGNAL_VIEW_WIDTH, SIGNAL_WIDTH, SIGNAL_VIEW_BOX } from './view/constants';
13
+ export { registerViewEventsAPI } from './view/view-event-mixin';
13
14
  export { ThemeManager } from './theme/theme-manager';
14
15
  export * from './glyph';
15
16
  export * from './component';
@@ -21,3 +22,7 @@ export * from './interactions';
21
22
  export * from './semantic-marks/cell';
22
23
  export * from './semantic-marks/interval';
23
24
  export * from './graph/mark/graphic';
25
+ export { registerDefaultLayout, defaultDoLayout } from './graph/layout/layout';
26
+ export { registerGlyphMark, GlyphMark } from './view/glyph';
27
+ export declare const registerDragPlugin: () => void;
28
+ export declare const registerGesturePlugin: () => void;
package/cjs/index.js CHANGED
@@ -17,8 +17,8 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
17
17
 
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
- }), exports.vglobal = exports.ThemeManager = exports.SIGNAL_VIEW_BOX = exports.SIGNAL_WIDTH = exports.SIGNAL_VIEW_WIDTH = exports.SIGNAL_VIEW_HEIGHT = exports.SIGNAL_PADDING = exports.SIGNAL_HEIGHT = exports.SIGNAL_AUTOFIT = exports.Factory = exports.GrammarBase = exports.invokeFunctionType = exports.parseFunctionType = exports.registerCoordinate = exports.Coordinate = exports.registerScale = exports.Scale = exports.View = exports.version = void 0,
21
- exports.version = "0.13.10", __exportStar(require("./graph"), exports), __exportStar(require("./interactions"), exports);
20
+ }), exports.registerGesturePlugin = exports.registerDragPlugin = exports.GlyphMark = exports.registerGlyphMark = exports.defaultDoLayout = exports.registerDefaultLayout = exports.vglobal = exports.ThemeManager = exports.registerViewEventsAPI = exports.SIGNAL_VIEW_BOX = exports.SIGNAL_WIDTH = exports.SIGNAL_VIEW_WIDTH = exports.SIGNAL_VIEW_HEIGHT = exports.SIGNAL_PADDING = exports.SIGNAL_HEIGHT = exports.SIGNAL_AUTOFIT = exports.Factory = exports.GrammarBase = exports.invokeFunctionType = exports.parseFunctionType = exports.registerCoordinate = exports.Coordinate = exports.registerScale = exports.Scale = exports.View = exports.version = void 0,
21
+ exports.version = "0.14.0-alpha.0", __exportStar(require("./graph"), exports), __exportStar(require("./interactions"), exports);
22
22
 
23
23
  var view_1 = require("./view");
24
24
 
@@ -128,6 +128,15 @@ Object.defineProperty(exports, "SIGNAL_AUTOFIT", {
128
128
  }
129
129
  });
130
130
 
131
+ var view_event_mixin_1 = require("./view/view-event-mixin");
132
+
133
+ Object.defineProperty(exports, "registerViewEventsAPI", {
134
+ enumerable: !0,
135
+ get: function() {
136
+ return view_event_mixin_1.registerViewEventsAPI;
137
+ }
138
+ });
139
+
131
140
  var theme_manager_1 = require("./theme/theme-manager");
132
141
 
133
142
  Object.defineProperty(exports, "ThemeManager", {
@@ -148,4 +157,44 @@ Object.defineProperty(exports, "vglobal", {
148
157
  }), __exportStar(require("./env"), exports), __exportStar(require("./interactions"), exports),
149
158
  __exportStar(require("./semantic-marks/cell"), exports), __exportStar(require("./semantic-marks/interval"), exports),
150
159
  __exportStar(require("./graph/mark/graphic"), exports);
160
+
161
+ var layout_1 = require("./graph/layout/layout");
162
+
163
+ Object.defineProperty(exports, "registerDefaultLayout", {
164
+ enumerable: !0,
165
+ get: function() {
166
+ return layout_1.registerDefaultLayout;
167
+ }
168
+ }), Object.defineProperty(exports, "defaultDoLayout", {
169
+ enumerable: !0,
170
+ get: function() {
171
+ return layout_1.defaultDoLayout;
172
+ }
173
+ });
174
+
175
+ var glyph_1 = require("./view/glyph");
176
+
177
+ Object.defineProperty(exports, "registerGlyphMark", {
178
+ enumerable: !0,
179
+ get: function() {
180
+ return glyph_1.registerGlyphMark;
181
+ }
182
+ }), Object.defineProperty(exports, "GlyphMark", {
183
+ enumerable: !0,
184
+ get: function() {
185
+ return glyph_1.GlyphMark;
186
+ }
187
+ });
188
+
189
+ const vrender_kits_1 = require("@visactor/vrender-kits"), factory_2 = require("./core/factory"), registerDragPlugin = () => {
190
+ factory_2.Factory.registerStageEventPlugin("drag", vrender_kits_1.DragNDrop);
191
+ };
192
+
193
+ exports.registerDragPlugin = registerDragPlugin;
194
+
195
+ const registerGesturePlugin = () => {
196
+ factory_2.Factory.registerStageEventPlugin("gesture", vrender_kits_1.Gesture);
197
+ };
198
+
199
+ exports.registerGesturePlugin = registerGesturePlugin;
151
200
  //# sourceMappingURL=index.js.map
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,SAAS,CAAC;AAEjC,0CAAwB;AAExB,iDAA+B;AAE/B,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,sCAAoD;AAA3C,8FAAA,KAAK,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC7B,gDAAmE;AAA1D,wGAAA,UAAU,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACvC,qCAAqE;AAA5D,yGAAA,iBAAiB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAC9C,oDAAkD;AAAzC,2GAAA,WAAW,OAAA;AACpB,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,8CAQ0B;AAPxB,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AAGjB,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AAErB,0CAAwB;AACxB,8CAA4B;AAC5B,+CAA6B;AAC7B,8DAA4C;AAE5C,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAChB,wCAAsB;AACtB,iDAA+B;AAC/B,wDAAsC;AACtC,4DAA0C;AAC1C,uDAAqC","file":"index.js","sourcesContent":["// -- Exports -----\nexport const version = \"0.13.10\";\n\nexport * from './graph';\n\nexport * from './interactions';\n\nexport { View } from './view';\nexport { Scale, registerScale } from './view/scale';\nexport { Coordinate, registerCoordinate } from './view/coordinate';\nexport { parseFunctionType, invokeFunctionType } from './parse/util';\nexport { GrammarBase } from './view/grammar-base';\nexport * from './util/text';\nexport * from './types';\nexport { Factory } from './core/factory';\nexport {\n SIGNAL_AUTOFIT,\n SIGNAL_HEIGHT,\n SIGNAL_PADDING,\n SIGNAL_VIEW_HEIGHT,\n SIGNAL_VIEW_WIDTH,\n SIGNAL_WIDTH,\n SIGNAL_VIEW_BOX\n} from './view/constants';\n\nexport { ThemeManager } from './theme/theme-manager';\n\nexport * from './glyph';\nexport * from './component';\nexport * from './transforms';\nexport * from './graph/animation/animation';\n\nexport { vglobal } from '@visactor/vrender-core';\nexport * from './env';\nexport * from './interactions';\nexport * from './semantic-marks/cell';\nexport * from './semantic-marks/interval';\nexport * from './graph/mark/graphic';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAExC,0CAAwB;AAExB,iDAA+B;AAE/B,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,sCAAoD;AAA3C,8FAAA,KAAK,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC7B,gDAAmE;AAA1D,wGAAA,UAAU,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACvC,qCAAqE;AAA5D,yGAAA,iBAAiB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAC9C,oDAAkD;AAAzC,2GAAA,WAAW,OAAA;AACpB,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,8CAQ0B;AAPxB,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AAEjB,4DAAgE;AAAvD,yHAAA,qBAAqB,OAAA;AAE9B,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AAErB,0CAAwB;AACxB,8CAA4B;AAC5B,+CAA6B;AAC7B,8DAA4C;AAE5C,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAChB,wCAAsB;AACtB,iDAA+B;AAC/B,wDAAsC;AACtC,4DAA0C;AAC1C,uDAAqC;AACrC,gDAA+E;AAAtE,+GAAA,qBAAqB,OAAA;AAAE,yGAAA,eAAe,OAAA;AAC/C,sCAA4D;AAAnD,0GAAA,iBAAiB,OAAA;AAAE,kGAAA,SAAS,OAAA;AAErC,yDAA4D;AAC5D,4CAAyC;AAElC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,iBAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAS,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,iBAAO,CAAC,wBAAwB,CAAC,SAAS,EAAE,sBAAO,CAAC,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC","file":"index.js","sourcesContent":["// -- Exports -----\nexport const version = \"0.14.0-alpha.0\";\n\nexport * from './graph';\n\nexport * from './interactions';\n\nexport { View } from './view';\nexport { Scale, registerScale } from './view/scale';\nexport { Coordinate, registerCoordinate } from './view/coordinate';\nexport { parseFunctionType, invokeFunctionType } from './parse/util';\nexport { GrammarBase } from './view/grammar-base';\nexport * from './util/text';\nexport * from './types';\nexport { Factory } from './core/factory';\nexport {\n SIGNAL_AUTOFIT,\n SIGNAL_HEIGHT,\n SIGNAL_PADDING,\n SIGNAL_VIEW_HEIGHT,\n SIGNAL_VIEW_WIDTH,\n SIGNAL_WIDTH,\n SIGNAL_VIEW_BOX\n} from './view/constants';\nexport { registerViewEventsAPI } from './view/view-event-mixin';\n\nexport { ThemeManager } from './theme/theme-manager';\n\nexport * from './glyph';\nexport * from './component';\nexport * from './transforms';\nexport * from './graph/animation/animation';\n\nexport { vglobal } from '@visactor/vrender-core';\nexport * from './env';\nexport * from './interactions';\nexport * from './semantic-marks/cell';\nexport * from './semantic-marks/interval';\nexport * from './graph/mark/graphic';\nexport { registerDefaultLayout, defaultDoLayout } from './graph/layout/layout';\nexport { registerGlyphMark, GlyphMark } from './view/glyph';\n\nimport { DragNDrop, Gesture } from '@visactor/vrender-kits';\nimport { Factory } from './core/factory';\n\nexport const registerDragPlugin = () => {\n Factory.registerStageEventPlugin('drag', DragNDrop);\n};\n\nexport const registerGesturePlugin = () => {\n Factory.registerStageEventPlugin('gesture', Gesture);\n};\n"]}
@@ -5,6 +5,4 @@ export declare const parseHandler: (callback: EventCallback, config: {
5
5
  debounce?: number;
6
6
  throttle?: number;
7
7
  }) => (...args: any[]) => any;
8
- export declare const NAME_PREFIX = "@";
9
- export declare const ID_PREFIX = "#";
10
8
  export declare const parseEventSelector: (selector: string, source?: EventSourceType) => Partial<ParsedViewEventSpec | ParsedWindowEventSpec>;
@@ -2,12 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.parseEventSelector = exports.ID_PREFIX = exports.NAME_PREFIX = exports.parseHandler = exports.generateFilterByMark = void 0;
5
+ }), exports.parseEventSelector = exports.parseHandler = exports.generateFilterByMark = void 0;
6
6
 
7
7
  const vutils_1 = require("@visactor/vutils"), graphic_1 = require("../graph/util/graphic"), constants_1 = require("../view/constants"), generateFilterByMark = evtSpec => (0,
8
- vutils_1.isNil)(evtSpec.markId) ? el => el && el.mark.id() === evtSpec.markId : (0,
9
- vutils_1.isNil)(evtSpec.markName) ? el => el && el.mark.name() === evtSpec.markName : (0,
10
- vutils_1.isNil)(evtSpec.type) ? el => el && el.mark.markType === evtSpec.type : () => !0;
8
+ vutils_1.isNil)(evtSpec.markId) ? (0, vutils_1.isNil)(evtSpec.markName) ? (0, vutils_1.isNil)(evtSpec.markType) ? () => !0 : el => el && el.mark.markType === evtSpec.markType : el => el && el.mark.name() === evtSpec.markName : el => el && el.mark.id() === evtSpec.markId;
11
9
 
12
10
  exports.generateFilterByMark = generateFilterByMark;
13
11
 
@@ -16,15 +14,11 @@ vutils_1.throttle)(callback, config.throttle) : callback;
16
14
 
17
15
  exports.parseHandler = parseHandler;
18
16
 
19
- const JOIN_SYMBOL = ":";
20
-
21
- exports.NAME_PREFIX = "@", exports.ID_PREFIX = "#";
22
-
23
- const parseEventSelector = (selector, source = constants_1.EVENT_SOURCE_VIEW) => {
17
+ const JOIN_SYMBOL = ":", parseEventSelector = (selector, source = constants_1.EVENT_SOURCE_VIEW) => {
24
18
  const spec = {}, splitArr = selector.split(":");
25
19
  if (2 === splitArr.length) {
26
20
  const [space, eventType] = splitArr;
27
- space[0] === exports.ID_PREFIX ? (spec.markId = space.slice(1), spec.source = source) : space[0] === exports.NAME_PREFIX ? (spec.markName = space.slice(1),
21
+ space[0] === constants_1.ID_PREFIX ? (spec.markId = space.slice(1), spec.source = source) : space[0] === constants_1.NAME_PREFIX ? (spec.markName = space.slice(1),
28
22
  spec.source = source) : (0, graphic_1.isMarkType)(space) ? (spec.markType = space,
29
23
  spec.source = source) : space === constants_1.EVENT_SOURCE_WINDOW ? spec.source = constants_1.EVENT_SOURCE_WINDOW : spec.source = source,
30
24
  spec.type = eventType;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/parse/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["import { debounce, isNil, throttle } from '@visactor/vutils';\nimport type {\n EventSourceType,\n ParsedViewEventSpec,\n ParsedWindowEventSpec,\n EventCallback,\n MarkType,\n IElement\n} from '../types';\nimport { isMarkType } from '../graph/util/graphic';\nimport { EVENT_SOURCE_VIEW, EVENT_SOURCE_WINDOW } from '../view/constants';\n\nexport const generateFilterByMark = (evtSpec: Partial<ParsedViewEventSpec | ParsedWindowEventSpec>) => {\n if (isNil(evtSpec.markId)) {\n return (el: IElement) => {\n return el && el.mark.id() === evtSpec.markId;\n };\n }\n\n if (isNil(evtSpec.markName)) {\n return (el: IElement) => {\n return el && el.mark.name() === evtSpec.markName;\n };\n }\n\n if (isNil(evtSpec.type)) {\n return (el: IElement) => {\n return el && el.mark.markType === evtSpec.type;\n };\n }\n\n return () => true;\n};\n\nexport const parseHandler = (callback: EventCallback, config: { debounce?: number; throttle?: number }) => {\n if (config && config.debounce) {\n return debounce(callback, config.debounce);\n }\n\n if (config && config.throttle) {\n return throttle(callback, config.throttle);\n }\n\n return callback;\n};\n\nconst JOIN_SYMBOL = ':';\nexport const NAME_PREFIX = '@';\nexport const ID_PREFIX = '#';\n\n/**\n * Parse an event selector string.\n * Supported rules:\n * 1. mousedown\n * 2. rect:mousedown\n * 3. window:mousemove\n * 4. @foo:mousedown\n * Returns an event stream definitions.\n */\nexport const parseEventSelector = (\n selector: string,\n source: EventSourceType = EVENT_SOURCE_VIEW\n): Partial<ParsedViewEventSpec | ParsedWindowEventSpec> => {\n const spec: Partial<ParsedViewEventSpec | ParsedWindowEventSpec> = {};\n\n const splitArr = selector.split(JOIN_SYMBOL);\n\n if (splitArr.length === 2) {\n const [space, eventType] = splitArr;\n\n if (space[0] === ID_PREFIX) {\n // events on marks id\n spec.markId = space.slice(1);\n spec.source = source;\n } else if (space[0] === NAME_PREFIX) {\n // events on marks name\n spec.markName = space.slice(1);\n spec.source = source;\n } else if (isMarkType(space)) {\n spec.markType = space as MarkType;\n spec.source = source;\n } else if (space === EVENT_SOURCE_WINDOW) {\n spec.source = EVENT_SOURCE_WINDOW;\n } else {\n spec.source = source;\n }\n\n spec.type = eventType;\n } else if (splitArr.length === 1) {\n spec.type = selector;\n spec.source = source;\n }\n\n return spec;\n};\n"]}
1
+ {"version":3,"sources":["../src/parse/event.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAS7D,mDAAmD;AACnD,iDAAmG;AAE5F,MAAM,oBAAoB,GAAG,CAAC,OAA6D,EAAE,EAAE;IACpG,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,CAAC,EAAY,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC;KACH;IAED,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC5B,OAAO,CAAC,EAAY,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC;QACnD,CAAC,CAAC;KACH;IAED,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC5B,OAAO,CAAC,EAAY,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC;QACrD,CAAC,CAAC;KACH;IAED,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;AACpB,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B;AAEK,MAAM,YAAY,GAAG,CAAC,QAAuB,EAAE,MAAgD,EAAE,EAAE;IACxG,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;QAC7B,OAAO,IAAA,iBAAQ,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC5C;IAED,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;QAC7B,OAAO,IAAA,iBAAQ,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC5C;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB;AAEF,MAAM,WAAW,GAAG,GAAG,CAAC;AAWjB,MAAM,kBAAkB,GAAG,CAChC,QAAgB,EAChB,SAA0B,6BAAiB,EACW,EAAE;IACxD,MAAM,IAAI,GAAyD,EAAE,CAAC;IAEtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC;QAEpC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,qBAAS,EAAE;YAE1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,uBAAW,EAAE;YAEnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;aAAM,IAAI,IAAA,oBAAU,EAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,KAAiB,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;aAAM,IAAI,KAAK,KAAK,+BAAmB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,+BAAmB,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;QAED,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;KACvB;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACtB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAnCW,QAAA,kBAAkB,sBAmC7B","file":"event.js","sourcesContent":["import { debounce, isNil, throttle } from '@visactor/vutils';\nimport type {\n EventSourceType,\n ParsedViewEventSpec,\n ParsedWindowEventSpec,\n EventCallback,\n MarkType,\n IElement\n} from '../types';\nimport { isMarkType } from '../graph/util/graphic';\nimport { EVENT_SOURCE_VIEW, EVENT_SOURCE_WINDOW, ID_PREFIX, NAME_PREFIX } from '../view/constants';\n\nexport const generateFilterByMark = (evtSpec: Partial<ParsedViewEventSpec | ParsedWindowEventSpec>) => {\n if (!isNil(evtSpec.markId)) {\n return (el: IElement) => {\n return el && el.mark.id() === evtSpec.markId;\n };\n }\n\n if (!isNil(evtSpec.markName)) {\n return (el: IElement) => {\n return el && el.mark.name() === evtSpec.markName;\n };\n }\n\n if (!isNil(evtSpec.markType)) {\n return (el: IElement) => {\n return el && el.mark.markType === evtSpec.markType;\n };\n }\n\n return () => true;\n};\n\nexport const parseHandler = (callback: EventCallback, config: { debounce?: number; throttle?: number }) => {\n if (config && config.debounce) {\n return debounce(callback, config.debounce);\n }\n\n if (config && config.throttle) {\n return throttle(callback, config.throttle);\n }\n\n return callback;\n};\n\nconst JOIN_SYMBOL = ':';\n\n/**\n * Parse an event selector string.\n * Supported rules:\n * 1. mousedown\n * 2. rect:mousedown\n * 3. window:mousemove\n * 4. @foo:mousedown\n * Returns an event stream definitions.\n */\nexport const parseEventSelector = (\n selector: string,\n source: EventSourceType = EVENT_SOURCE_VIEW\n): Partial<ParsedViewEventSpec | ParsedWindowEventSpec> => {\n const spec: Partial<ParsedViewEventSpec | ParsedWindowEventSpec> = {};\n\n const splitArr = selector.split(JOIN_SYMBOL);\n\n if (splitArr.length === 2) {\n const [space, eventType] = splitArr;\n\n if (space[0] === ID_PREFIX) {\n // events on marks id\n spec.markId = space.slice(1);\n spec.source = source;\n } else if (space[0] === NAME_PREFIX) {\n // events on marks name\n spec.markName = space.slice(1);\n spec.source = source;\n } else if (isMarkType(space)) {\n spec.markType = space as MarkType;\n spec.source = source;\n } else if (space === EVENT_SOURCE_WINDOW) {\n spec.source = EVENT_SOURCE_WINDOW;\n } else {\n spec.source = source;\n }\n\n spec.type = eventType;\n } else if (splitArr.length === 1) {\n spec.type = selector;\n spec.source = source;\n }\n\n return spec;\n};\n"]}
@@ -69,7 +69,7 @@ export interface IElement {
69
69
  setItemAttributes: (attributes: {
70
70
  [channel: string]: any;
71
71
  } | any[]) => void;
72
- updateData: (groupKey: string, data: any[], keyGenerator: MarkKeySpec, view: any) => void;
72
+ updateData: (groupKey: string, data: any[], keyGenerator: MarkKeySpec) => void;
73
73
  state: (markState: MarkFunctionType<string | string[]>, parameters?: any) => void;
74
74
  encodeItems: (items: MarkElementItem[], encoders: BaseEncodeSpec, isReentered?: boolean, parameters?: any) => void;
75
75
  encodeGraphic: (attributes?: any) => void;