@visactor/vchart 1.11.14 → 1.11.15-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.js +92 -27
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart.d.ts +1 -0
- package/cjs/chart/base/base-chart.js +5 -0
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -0
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/compile/compilable-base.js +2 -1
- package/cjs/compile/grammar-item.js +1 -2
- package/cjs/component/axis/cartesian/axis.js +13 -5
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/time-axis.js +4 -1
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/polar/axis.js +8 -2
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/axis/util.d.ts +3 -0
- package/cjs/component/axis/util.js +6 -2
- package/cjs/component/axis/util.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/vchart.d.ts +1 -0
- package/cjs/core/vchart.js +3 -0
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/interaction/interaction.d.ts +2 -0
- package/cjs/interaction/interaction.js +10 -0
- package/cjs/interaction/interaction.js.map +1 -1
- package/cjs/interaction/interface.d.ts +2 -0
- package/cjs/interaction/interface.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +1 -1
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/series/polar/polar.d.ts +1 -1
- package/cjs/series/polar/polar.js +1 -1
- package/cjs/series/polar/polar.js.map +1 -1
- package/cjs/series/sankey/sankey.js +12 -8
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +1 -0
- package/esm/chart/base/base-chart.js +5 -0
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +1 -0
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/compile/compilable-base.js +2 -1
- package/esm/compile/grammar-item.js +1 -2
- package/esm/component/axis/cartesian/axis.js +5 -4
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/time-axis.js +3 -3
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/polar/axis.js +4 -3
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/axis/util.d.ts +3 -0
- package/esm/component/axis/util.js +4 -0
- package/esm/component/axis/util.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/vchart.d.ts +1 -0
- package/esm/core/vchart.js +3 -0
- package/esm/core/vchart.js.map +1 -1
- package/esm/interaction/interaction.d.ts +2 -0
- package/esm/interaction/interaction.js +10 -0
- package/esm/interaction/interaction.js.map +1 -1
- package/esm/interaction/interface.d.ts +2 -0
- package/esm/interaction/interface.js.map +1 -1
- package/esm/series/base/base-series.d.ts +1 -1
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/series/polar/polar.d.ts +1 -1
- package/esm/series/polar/polar.js +1 -1
- package/esm/series/polar/polar.js.map +1 -1
- package/esm/series/sankey/sankey.js +11 -8
- package/esm/series/sankey/sankey.js.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interaction/interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAQ3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,WAAW;IAAxB;QAEU,gBAAW,GAA6B,IAAI,GAAG,EAAE,CAAC;QAElD,mBAAc,GAAgC,IAAI,GAAG,EAAE,CAAC;QAExD,0BAAqB,GAA4C,IAAI,GAAG,EAAE,CAAC;QAiB3E,yBAAoB,GAAY,KAAK,CAAC;IAiLhD,CAAC;IAjMC,sBAAsB,CAAC,KAAiB,EAAE,CAAuB;QAC/D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC1C,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7C;aAAM;YACL,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAW,EAAE,KAAa;QAC/C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IAID,sBAAsB,CAAC,OAAgB;QACrC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,KAAiB,EAAE,IAAW;;QACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SACjC;QACD,MAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,KAAiB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,MAAuB,EAAE,KAAiB;;QACxD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAI,MAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;IAC/E,CAAC;IAED,eAAe,CAAC,UAAsB;;QACpC,OAAO,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;IACnD,CAAC;IAED,mBAAmB,CAAC,UAAsB;QACxC,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,oBAAoB,CAAC,UAAsB,EAAE,OAAiB;;QAC5D,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO;SACR;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE;YAC/C,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aAClC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC7B,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC9B;SACF;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,kBAAkB,CAAC,UAAsB,EAAE,OAAiB;;QAC1D,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO;SACR;QACD,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,mCAAI,EAAE,CAAC;QACnF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAErB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACxC;iBAAM;gBAEL,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aACxC;SACF;IACH,CAAC;IAED,eAAe,CAAC,UAAsB,EAAE,OAAiB;;QACvD,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO;SACR;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC9B;QACD,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,UAAsB,EAAE,YAAqB;;QAC7D,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO;SACR;QACD,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE;YAC/C,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAExC,IAAI,YAAY,EAAE;YAChB,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACxC;SACF;IACH,CAAC;IASD,mBAAmB,CAAC,UAAsB;QACxC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO;SACR;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC1B,OAAO;SACR;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAI1B,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAChB,CAAC,CAAC,UAAU,EAAE;yBACX,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;yBAC7C,OAAO,CAAC,CAAC,CAAC,EAAE;wBACX,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAChB,CAAC,CAAC,UAAU,EAAE;yBACX,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBACjD,OAAO,CAAC,CAAC,CAAC,EAAE;wBACX,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAQD,gBAAgB,CAAC,UAAsB,EAAE,OAAiB;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBACnC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAQD,gBAAgB,CAAC,UAAsB,EAAE,OAAiB;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBACnC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF","file":"interaction.js","sourcesContent":["import { isEmpty } from '@visactor/vutils';\nimport type { StateValue } from '../compile/mark';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { BaseEventParams } from '../event/interface';\nimport type { IMark } from '../mark/interface';\nimport type { IInteraction } from './interface';\nimport type { IInteraction as IVGrammarInteraction } from '@visactor/vgrammar-core';\n\nimport { stateToReverse } from '../compile/mark/util';\n\nexport class Interaction implements IInteraction {\n // 数据\n private _stateMarks: Map<StateValue, IMark[]> = new Map();\n // active\n private _stateElements: Map<StateValue, IElement[]> = new Map();\n\n private _vgrammarInteractions: Map<StateValue, IVGrammarInteraction[]> = new Map();\n addVgrammarInteraction(state: StateValue, i: IVGrammarInteraction) {\n if (!state) {\n return;\n }\n\n if (!this._vgrammarInteractions.get(state)) {\n !this._vgrammarInteractions.set(state, [i]);\n } else {\n this._vgrammarInteractions.get(state).push(i);\n }\n }\n\n static markStateEnable(mark: IMark, state: string) {\n return !isEmpty(mark.stateStyle[state]);\n }\n\n private _disableTriggerEvent: boolean = false;\n\n setDisableActiveEffect(disable: boolean) {\n this._disableTriggerEvent = disable;\n }\n\n registerMark(state: StateValue, mark: IMark): void {\n if (!this._stateMarks.has(state)) {\n this._stateMarks.set(state, []);\n }\n this._stateMarks.get(state)?.push(mark);\n }\n\n getStateMark(state: StateValue): IMark[] | null {\n return this._stateMarks.get(state);\n }\n\n filterEventMark(params: BaseEventParams, state: StateValue): boolean {\n return !!(params.mark && this._stateMarks.get(state)?.includes(params.mark));\n }\n\n getEventElement(stateValue: StateValue) {\n return this._stateElements.get(stateValue) ?? [];\n }\n\n getEventElementData(stateValue: StateValue) {\n return this.getEventElement(stateValue).map(e => e.getDatum());\n }\n\n exchangeEventElement(stateValue: StateValue, element: IElement) {\n if (this._disableTriggerEvent) {\n return;\n }\n // reverse\n const reState = stateToReverse(stateValue);\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n if (reState) {\n this.addEventElement(reState, e);\n }\n });\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n if (reState) {\n element.removeState(reState);\n }\n }\n this._stateElements.set(stateValue, [element]);\n }\n\n removeEventElement(stateValue: StateValue, element: IElement) {\n if (this._disableTriggerEvent) {\n return;\n }\n element.removeState(stateValue);\n const list = this._stateElements.get(stateValue)?.filter(e => e !== element) ?? [];\n this._stateElements.set(stateValue, list);\n // reverse\n const reState = stateToReverse(stateValue);\n if (reState) {\n if (list.length === 0) {\n // clear reverse\n this.clearEventElement(reState, false);\n } else {\n // add reverse to element\n this.addEventElement(reState, element);\n }\n }\n }\n\n addEventElement(stateValue: StateValue, element: IElement) {\n if (this._disableTriggerEvent) {\n return;\n }\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n }\n const list = this._stateElements.get(stateValue) ?? [];\n list.push(element);\n this._stateElements.set(stateValue, list);\n }\n\n clearEventElement(stateValue: StateValue, clearReverse: boolean) {\n if (this._disableTriggerEvent) {\n return;\n }\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n });\n this._stateElements.set(stateValue, []);\n\n if (clearReverse) {\n const reState = stateToReverse(stateValue);\n if (reState) {\n this.clearEventElement(reState, false);\n }\n }\n }\n\n /**\n * 激活交互元素时 进行反选\n * 需要先将元素添加到已交互状态再使用此方法反选\n * @param stateValue\n * @param activeElement\n * @returns\n */\n reverseEventElement(stateValue: StateValue) {\n if (this._disableTriggerEvent) {\n return;\n }\n // TODO:直接加默认后缀?or再增加一个map?\n const state = stateToReverse(stateValue);\n if (!state) {\n return;\n }\n const marks = this.getStateMark(state);\n if (!marks) {\n return;\n }\n const activeElements = this.getEventElement(stateValue);\n if (!activeElements.length) {\n return;\n }\n const currentReverse = this.getEventElement(state);\n if (!currentReverse.length) {\n // all\n // for performance array.include\n // FIXME: 也许并没有太大必要\n if (activeElements.length === 1) {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => e !== activeElements[0])\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n } else {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => !activeElements.includes(e))\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n }\n }\n }\n\n /**\n * hover/select 交互通过 vgrammar 代理\n * @param stateValue\n * @param activeElement\n * @returns\n */\n startInteraction(stateValue: StateValue, element: IElement) {\n const interactions = this._vgrammarInteractions.get(stateValue);\n if (interactions) {\n interactions.forEach(vgInteraction => {\n vgInteraction.start(element);\n });\n }\n }\n\n /**\n * hover/select 交互通过 vgrammar 代理\n * @param stateValue\n * @param activeElement\n * @returns\n */\n resetInteraction(stateValue: StateValue, element: IElement) {\n const interactions = this._vgrammarInteractions.get(stateValue);\n if (interactions) {\n interactions.forEach(vgInteraction => {\n vgInteraction.reset(element);\n });\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/interaction.ts"],"names":[],"mappings":"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","file":"interaction.js","sourcesContent":["import { isEmpty } from '@visactor/vutils';\nimport type { StateValue } from '../compile/mark';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { BaseEventParams } from '../event/interface';\nimport type { IMark } from '../mark/interface';\nimport type { IInteraction } from './interface';\nimport type { IInteraction as IVGrammarInteraction } from '@visactor/vgrammar-core';\n\nimport { stateToReverse } from '../compile/mark/util';\n\nexport class Interaction implements IInteraction {\n // 数据\n private _stateMarks: Map<StateValue, IMark[]> = new Map();\n // active\n private _stateElements: Map<StateValue, IElement[]> = new Map();\n\n private _vgrammarInteractions: Map<StateValue, IVGrammarInteraction[]> = new Map();\n addVgrammarInteraction(state: StateValue, i: IVGrammarInteraction) {\n if (!state) {\n return;\n }\n\n if (!this._vgrammarInteractions.get(state)) {\n !this._vgrammarInteractions.set(state, [i]);\n } else {\n this._vgrammarInteractions.get(state).push(i);\n }\n }\n\n static markStateEnable(mark: IMark, state: string) {\n return !isEmpty(mark.stateStyle[state]);\n }\n\n private _disableTriggerEvent: boolean = false;\n\n setDisableActiveEffect(disable: boolean) {\n this._disableTriggerEvent = disable;\n }\n\n registerMark(state: StateValue, mark: IMark): void {\n if (!this._stateMarks.has(state)) {\n this._stateMarks.set(state, []);\n }\n this._stateMarks.get(state)?.push(mark);\n }\n\n getStateMark(state: StateValue): IMark[] | null {\n return this._stateMarks.get(state);\n }\n\n filterEventMark(params: BaseEventParams, state: StateValue): boolean {\n return !!(params.mark && this._stateMarks.get(state)?.includes(params.mark));\n }\n\n getEventElement(stateValue: StateValue) {\n return this._stateElements.get(stateValue) ?? [];\n }\n\n getEventElementData(stateValue: StateValue) {\n return this.getEventElement(stateValue).map(e => e.getDatum());\n }\n\n exchangeEventElement(stateValue: StateValue, element: IElement) {\n if (this._disableTriggerEvent) {\n return;\n }\n // reverse\n const reState = stateToReverse(stateValue);\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n if (reState) {\n this.addEventElement(reState, e);\n }\n });\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n if (reState) {\n element.removeState(reState);\n }\n }\n this._stateElements.set(stateValue, [element]);\n }\n\n removeEventElement(stateValue: StateValue, element: IElement) {\n if (this._disableTriggerEvent) {\n return;\n }\n element.removeState(stateValue);\n const list = this._stateElements.get(stateValue)?.filter(e => e !== element) ?? [];\n this._stateElements.set(stateValue, list);\n // reverse\n const reState = stateToReverse(stateValue);\n if (reState) {\n if (list.length === 0) {\n // clear reverse\n this.clearEventElement(reState, false);\n } else {\n // add reverse to element\n this.addEventElement(reState, element);\n }\n }\n }\n\n addEventElement(stateValue: StateValue, element: IElement) {\n if (this._disableTriggerEvent) {\n return;\n }\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n }\n const list = this._stateElements.get(stateValue) ?? [];\n list.push(element);\n this._stateElements.set(stateValue, list);\n }\n\n clearEventElement(stateValue: StateValue, clearReverse: boolean) {\n if (this._disableTriggerEvent) {\n return;\n }\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n });\n this._stateElements.set(stateValue, []);\n\n if (clearReverse) {\n const reState = stateToReverse(stateValue);\n if (reState) {\n this.clearEventElement(reState, false);\n }\n }\n }\n\n clearAllEventElement() {\n if (this._disableTriggerEvent) {\n return;\n }\n for (const [stateValue, elements] of this._stateElements) {\n elements.forEach(e => {\n e.clearStates();\n });\n this._stateElements.set(stateValue, []);\n }\n }\n\n /**\n * 激活交互元素时 进行反选\n * 需要先将元素添加到已交互状态再使用此方法反选\n * @param stateValue\n * @param activeElement\n * @returns\n */\n reverseEventElement(stateValue: StateValue) {\n if (this._disableTriggerEvent) {\n return;\n }\n // TODO:直接加默认后缀?or再增加一个map?\n const state = stateToReverse(stateValue);\n if (!state) {\n return;\n }\n const marks = this.getStateMark(state);\n if (!marks) {\n return;\n }\n const activeElements = this.getEventElement(stateValue);\n if (!activeElements.length) {\n return;\n }\n const currentReverse = this.getEventElement(state);\n if (!currentReverse.length) {\n // all\n // for performance array.include\n // FIXME: 也许并没有太大必要\n if (activeElements.length === 1) {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => e !== activeElements[0])\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n } else {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => !activeElements.includes(e))\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n }\n }\n }\n\n /**\n * hover/select 交互通过 vgrammar 代理\n * @param stateValue\n * @param activeElement\n * @returns\n */\n startInteraction(stateValue: StateValue, element: IElement) {\n const interactions = this._vgrammarInteractions.get(stateValue);\n if (interactions) {\n interactions.forEach(vgInteraction => {\n vgInteraction.start(element);\n });\n }\n }\n\n /**\n * hover/select 交互通过 vgrammar 代理\n * @param stateValue\n * @param activeElement\n * @returns\n */\n resetInteraction(stateValue: StateValue, element: IElement) {\n const interactions = this._vgrammarInteractions.get(stateValue);\n if (interactions) {\n interactions.forEach(vgInteraction => {\n vgInteraction.reset(element);\n });\n }\n }\n\n /**\n * 清空所有通过 vgrammar 代理的交互\n * @returns\n */\n resetAllInteraction() {\n for (const [stateValue, interactions] of this._vgrammarInteractions) {\n if (interactions) {\n interactions.forEach(vgInteraction => {\n vgInteraction.reset(null);\n });\n }\n }\n }\n}\n"]}
|
|
@@ -16,10 +16,12 @@ export interface IInteraction {
|
|
|
16
16
|
exchangeEventElement: (stateValue: StateValue, elements: IElement) => void;
|
|
17
17
|
clearEventElement: (stateValue: StateValue, clearReverse: boolean) => void;
|
|
18
18
|
reverseEventElement: (stateValue: StateValue) => void;
|
|
19
|
+
clearAllEventElement: () => void;
|
|
19
20
|
setDisableActiveEffect: (disable: boolean) => void;
|
|
20
21
|
addVgrammarInteraction: (state: StateValue, i: IVGrammarInteraction) => void;
|
|
21
22
|
startInteraction: (state: StateValue, element: IElement) => void;
|
|
22
23
|
resetInteraction: (state: StateValue, element: IElement) => void;
|
|
24
|
+
resetAllInteraction: () => void;
|
|
23
25
|
}
|
|
24
26
|
export interface ITrigger {
|
|
25
27
|
init: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interaction/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type {\n ElementActiveByLegendSpec,\n ElementActiveSpec,\n ElementHighlightByGroupSpec,\n ElementHighlightByKeySpec,\n ElementHighlightByLegendSpec,\n ElementHighlightByNameSpec,\n ElementHighlightSpec,\n ElementSelectSpec,\n IElement,\n IInteraction as IVGrammarInteraction\n} from '@visactor/vgrammar-core';\nimport type { IMark } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { BaseEventParams, IEventDispatcher, EventType } from '../event/interface';\nimport type { IModel } from '../model/interface';\nimport type { StateValue } from '../compile/mark';\nimport type { StringOrNumber } from '../typings/common';\n\nexport interface IInteraction {\n registerMark: (state: StateValue, mark: IMark) => void;\n filterEventMark: (params: BaseEventParams, state: StateValue) => boolean;\n getStateMark: (state: StateValue) => IMark[] | null;\n\n getEventElement: (stateValue: StateValue) => IElement[];\n getEventElementData: (stateValue: StateValue) => any[];\n addEventElement: (stateValue: StateValue, element: IElement) => void;\n removeEventElement: (stateValue: StateValue, elements: IElement) => void;\n exchangeEventElement: (stateValue: StateValue, elements: IElement) => void;\n clearEventElement: (stateValue: StateValue, clearReverse: boolean) => void;\n reverseEventElement: (stateValue: StateValue) => void;\n\n setDisableActiveEffect: (disable: boolean) => void;\n addVgrammarInteraction: (state: StateValue, i: IVGrammarInteraction) => void;\n startInteraction: (state: StateValue, element: IElement) => void;\n resetInteraction: (state: StateValue, element: IElement) => void;\n}\n\nexport interface ITrigger {\n init: () => void;\n setStateKeys: (fields: string[]) => void;\n registerMark: (mark: IMark) => void;\n release: () => void;\n hover?: IHoverSpec;\n select?: ISelectSpec;\n}\n\nexport interface ITriggerOption {\n mode: RenderMode;\n interaction: IInteraction;\n eventDispatcher: IEventDispatcher;\n model: IModel;\n}\n\nexport interface IBaseInteractionSpec {\n markIds?: StringOrNumber[];\n markNames?: StringOrNumber[];\n}\n\ntype Trigger = EventType | EventType[];\n\nexport interface IHoverSpec extends IBaseInteractionSpec {\n enable?: boolean;\n trigger?: Trigger;\n triggerOff?: Trigger;\n}\n\nexport interface ISelectSpec extends IBaseInteractionSpec {\n enable?: boolean;\n mode?: 'single' | 'multiple';\n trigger?: Trigger;\n triggerOff?: Trigger | number;\n}\n\nexport interface ITriggerSpec {\n hover?: IHoverSpec | boolean;\n select?: ISelectSpec | boolean;\n}\n\nexport type IElementActiveSpec = IBaseInteractionSpec &\n Pick<ElementActiveSpec, 'type' | 'trigger' | 'triggerOff' | 'state'>;\n\nexport type IElementSelectSpec = IBaseInteractionSpec &\n Pick<ElementSelectSpec, 'type' | 'trigger' | 'triggerOff' | 'state' | 'isMultiple' | 'reverseState'>;\nexport type IElementHighlightSpec = IBaseInteractionSpec &\n Pick<ElementHighlightSpec, 'type' | 'blurState' | 'highlightState' | 'triggerOff' | 'trigger'>;\n\nexport type IElementHighlightByKeySpec = IBaseInteractionSpec &\n Pick<ElementHighlightByKeySpec, 'type' | 'blurState' | 'highlightState' | 'triggerOff' | 'trigger'>;\n\nexport type IElementHighlightByGroup = IBaseInteractionSpec &\n Pick<ElementHighlightByGroupSpec, 'type' | 'blurState' | 'highlightState' | 'triggerOff' | 'trigger'>;\n\nexport type IElementActiveByLegend = IBaseInteractionSpec &\n Pick<ElementActiveByLegendSpec, 'type' | 'filterType' | 'state'>;\n\nexport type IElementHighlightByLegend = IBaseInteractionSpec &\n Pick<ElementHighlightByLegendSpec, 'type' | 'filterType' | 'blurState' | 'highlightState'>;\n\nexport type IElementHighlightByName = IBaseInteractionSpec &\n Pick<ElementHighlightByNameSpec, 'type' | 'blurState' | 'highlightState' | 'graphicName' | 'parseData'>;\n\nexport interface ICustomInteraction extends IBaseInteractionSpec {\n type: string;\n}\n\nexport type IInteractionItemSpec =\n | IElementActiveSpec\n | IElementSelectSpec\n | IElementHighlightSpec\n | IElementHighlightByKeySpec\n | IElementHighlightByGroup\n | IElementActiveByLegend\n | IElementHighlightByLegend\n | IElementHighlightByName;\n\nexport interface IInteractionSpec {\n hover?: IHoverSpec | boolean;\n select?: ISelectSpec | boolean;\n interactions?: IInteractionItemSpec[];\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type {\n ElementActiveByLegendSpec,\n ElementActiveSpec,\n ElementHighlightByGroupSpec,\n ElementHighlightByKeySpec,\n ElementHighlightByLegendSpec,\n ElementHighlightByNameSpec,\n ElementHighlightSpec,\n ElementSelectSpec,\n IElement,\n IInteraction as IVGrammarInteraction\n} from '@visactor/vgrammar-core';\nimport type { IMark } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { BaseEventParams, IEventDispatcher, EventType } from '../event/interface';\nimport type { IModel } from '../model/interface';\nimport type { StateValue } from '../compile/mark';\nimport type { StringOrNumber } from '../typings/common';\n\nexport interface IInteraction {\n registerMark: (state: StateValue, mark: IMark) => void;\n filterEventMark: (params: BaseEventParams, state: StateValue) => boolean;\n getStateMark: (state: StateValue) => IMark[] | null;\n\n getEventElement: (stateValue: StateValue) => IElement[];\n getEventElementData: (stateValue: StateValue) => any[];\n addEventElement: (stateValue: StateValue, element: IElement) => void;\n removeEventElement: (stateValue: StateValue, elements: IElement) => void;\n exchangeEventElement: (stateValue: StateValue, elements: IElement) => void;\n clearEventElement: (stateValue: StateValue, clearReverse: boolean) => void;\n reverseEventElement: (stateValue: StateValue) => void;\n clearAllEventElement: () => void;\n\n setDisableActiveEffect: (disable: boolean) => void;\n addVgrammarInteraction: (state: StateValue, i: IVGrammarInteraction) => void;\n startInteraction: (state: StateValue, element: IElement) => void;\n resetInteraction: (state: StateValue, element: IElement) => void;\n resetAllInteraction: () => void;\n}\n\nexport interface ITrigger {\n init: () => void;\n setStateKeys: (fields: string[]) => void;\n registerMark: (mark: IMark) => void;\n release: () => void;\n hover?: IHoverSpec;\n select?: ISelectSpec;\n}\n\nexport interface ITriggerOption {\n mode: RenderMode;\n interaction: IInteraction;\n eventDispatcher: IEventDispatcher;\n model: IModel;\n}\n\nexport interface IBaseInteractionSpec {\n markIds?: StringOrNumber[];\n markNames?: StringOrNumber[];\n}\n\ntype Trigger = EventType | EventType[];\n\nexport interface IHoverSpec extends IBaseInteractionSpec {\n enable?: boolean;\n trigger?: Trigger;\n triggerOff?: Trigger;\n}\n\nexport interface ISelectSpec extends IBaseInteractionSpec {\n enable?: boolean;\n mode?: 'single' | 'multiple';\n trigger?: Trigger;\n triggerOff?: Trigger | number;\n}\n\nexport interface ITriggerSpec {\n hover?: IHoverSpec | boolean;\n select?: ISelectSpec | boolean;\n}\n\nexport type IElementActiveSpec = IBaseInteractionSpec &\n Pick<ElementActiveSpec, 'type' | 'trigger' | 'triggerOff' | 'state'>;\n\nexport type IElementSelectSpec = IBaseInteractionSpec &\n Pick<ElementSelectSpec, 'type' | 'trigger' | 'triggerOff' | 'state' | 'isMultiple' | 'reverseState'>;\nexport type IElementHighlightSpec = IBaseInteractionSpec &\n Pick<ElementHighlightSpec, 'type' | 'blurState' | 'highlightState' | 'triggerOff' | 'trigger'>;\n\nexport type IElementHighlightByKeySpec = IBaseInteractionSpec &\n Pick<ElementHighlightByKeySpec, 'type' | 'blurState' | 'highlightState' | 'triggerOff' | 'trigger'>;\n\nexport type IElementHighlightByGroup = IBaseInteractionSpec &\n Pick<ElementHighlightByGroupSpec, 'type' | 'blurState' | 'highlightState' | 'triggerOff' | 'trigger'>;\n\nexport type IElementActiveByLegend = IBaseInteractionSpec &\n Pick<ElementActiveByLegendSpec, 'type' | 'filterType' | 'state'>;\n\nexport type IElementHighlightByLegend = IBaseInteractionSpec &\n Pick<ElementHighlightByLegendSpec, 'type' | 'filterType' | 'blurState' | 'highlightState'>;\n\nexport type IElementHighlightByName = IBaseInteractionSpec &\n Pick<ElementHighlightByNameSpec, 'type' | 'blurState' | 'highlightState' | 'graphicName' | 'parseData'>;\n\nexport interface ICustomInteraction extends IBaseInteractionSpec {\n type: string;\n}\n\nexport type IInteractionItemSpec =\n | IElementActiveSpec\n | IElementSelectSpec\n | IElementHighlightSpec\n | IElementHighlightByKeySpec\n | IElementHighlightByGroup\n | IElementActiveByLegend\n | IElementHighlightByLegend\n | IElementHighlightByName;\n\nexport interface IInteractionSpec {\n hover?: IHoverSpec | boolean;\n select?: ISelectSpec | boolean;\n interactions?: IInteractionItemSpec[];\n}\n"]}
|
|
@@ -211,7 +211,7 @@ export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseMode
|
|
|
211
211
|
compile(): void;
|
|
212
212
|
getDefaultShapeType(): string;
|
|
213
213
|
getFieldAlias(field: string): any;
|
|
214
|
-
getMarkInfoList():
|
|
214
|
+
getMarkInfoList(): ISeriesMarkInfo[];
|
|
215
215
|
protected _getInvalidConnectType(): "none" | "zero" | "connect";
|
|
216
216
|
protected _getInvalidDefined(datum: Datum): boolean;
|
|
217
217
|
protected _getRelatedComponentSpecInfo(specKey: string): import("../../model/interface").IModelSpecInfo<any>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/cartesian/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { ICartesianSeries } from '../interface';\nimport { BaseSeries } from '../base/base-series';\nimport type { IPoint } from '../../typings/coordinate';\nimport type { IBaseScale } from '@visactor/vscale';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_START_OffsetSilhouette,\n PREFIX,\n ChartEvent\n} from '../../constant';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { DirectionType } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../typings/space';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport { couldBeValidNumber } from '../../util/type';\nimport { array, isValid } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { StatisticOperations } from '../../data/transforms/dimension-statistics';\nimport type { ICartesianSeriesSpec } from './interface';\nimport { sortDataInAxisHelper } from '../util/utils';\nimport type { IAxisLocationCfg } from '../../component/axis';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { invalidTravel } from '../../data/transforms/invalid-travel';\nimport { ComponentTypeEnum } from '../../component/interface/type';\n\nexport abstract class CartesianSeries<T extends ICartesianSeriesSpec = ICartesianSeriesSpec>\n extends BaseSeries<T>\n implements ICartesianSeries\n{\n readonly coordinate: 'cartesian' = 'cartesian';\n protected _bandPosition = 0.5;\n protected _scaleConfig: IAxisLocationCfg = {\n bandPosition: this._bandPosition\n };\n protected _buildScaleConfig() {\n this._scaleConfig = {\n bandPosition: this._bandPosition\n };\n }\n\n protected _fieldX!: string[];\n get fieldX() {\n return this._fieldX;\n }\n setFieldX(f: string | string[]) {\n this._fieldX = array(f);\n }\n\n protected _fieldY!: string[];\n get fieldY() {\n return this._fieldY;\n }\n setFieldY(f: string | string[]) {\n this._fieldY = array(f);\n }\n\n protected _fieldZ?: string[];\n get fieldZ(): string[] | undefined {\n return this._fieldZ;\n }\n setFieldZ(f?: string | string[]) {\n this._fieldZ = f && array(f);\n }\n\n protected _fieldX2!: string;\n get fieldX2() {\n return this._fieldX2;\n }\n setFieldX2(f: string) {\n this._fieldX2 = f;\n }\n\n protected _fieldY2!: string;\n get fieldY2() {\n return this._fieldY2;\n }\n setFieldY2(f: string) {\n this._fieldY2 = f;\n }\n\n protected _specXField: string[];\n protected _specYField: string[];\n\n protected _direction: DirectionType = Direction.vertical;\n get direction() {\n return this._direction;\n }\n\n protected _scaleX!: IBaseScale;\n get scaleX() {\n return this._scaleX;\n }\n setScaleX(s: IBaseScale) {\n this._scaleX = s;\n }\n\n protected _scaleY!: IBaseScale;\n get scaleY() {\n return this._scaleY;\n }\n setScaleY(s: IBaseScale) {\n this._scaleY = s;\n }\n\n protected _scaleZ?: IBaseScale;\n get scaleZ() {\n return this._scaleZ;\n }\n setScaleZ(s: IBaseScale) {\n this._scaleZ = s;\n }\n\n _xAxisHelper!: IAxisHelper;\n getXAxisHelper() {\n return this._xAxisHelper;\n }\n setXAxisHelper(h: IAxisHelper) {\n this._xAxisHelper = h;\n this.onXAxisHelperUpdate();\n }\n\n _yAxisHelper!: IAxisHelper;\n getYAxisHelper() {\n return this._yAxisHelper;\n }\n setYAxisHelper(h: IAxisHelper) {\n this._yAxisHelper = h;\n this.onYAxisHelperUpdate();\n }\n\n _zAxisHelper?: IAxisHelper;\n getZAxisHelper() {\n return this._zAxisHelper;\n }\n setZAxisHelper(h: IAxisHelper) {\n this._zAxisHelper = h;\n this.onYAxisHelperUpdate();\n }\n\n protected _sortDataByAxis: boolean = false;\n get sortDataByAxis() {\n return this._sortDataByAxis;\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: StatisticOperations }[] = [];\n const axes = [\n {\n axisHelper: this.getXAxisHelper(),\n fields: this._fieldX2 ? [...this._fieldX, this._fieldX2] : this._fieldX\n },\n {\n axisHelper: this.getYAxisHelper(),\n fields: this._fieldY2 ? [...this._fieldY, this._fieldY2] : this._fieldY\n },\n {\n axisHelper: this.getZAxisHelper(),\n fields: this._fieldZ\n }\n ];\n\n axes.forEach(axisOption => {\n if (axisOption.axisHelper && axisOption.axisHelper.getScale && axisOption.fields) {\n axisOption.fields.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'>; filter?: (fv: any) => boolean } = {\n key: f,\n operations: []\n };\n const scale = axisOption.axisHelper.getScale(0);\n if (isContinuous(scale.type)) {\n result.operations = ['max', 'min'];\n\n if (scale.type === 'log') {\n result.filter = (fv: any) => fv > 0;\n }\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n });\n\n if (this.getStack()) {\n fields.push({\n key: this.getStackValueField(),\n operations: ['allValid']\n });\n }\n return fields;\n }\n\n getGroupFields() {\n return this.direction === 'vertical' ? this._fieldX : this._fieldY;\n }\n\n getStackGroupFields(): string[] {\n return this.getGroupFields();\n }\n\n getStackValue() {\n const axisId = (\n this.direction === Direction.horizontal ? this.getXAxisHelper() : this.getYAxisHelper()\n )?.getAxisId();\n return this._spec.stackValue ?? `${PREFIX}_series_${this.type}_${axisId}`;\n }\n\n getStackValueField() {\n // TODO: hack\n if (this.direction === Direction.horizontal) {\n return array(this._spec.xField)[0];\n }\n return array(this._spec.yField)[0];\n }\n\n setValueFieldToStack(): void {\n if (this.direction === Direction.horizontal) {\n this.setFieldX(STACK_FIELD_END);\n this.setFieldX2(STACK_FIELD_START);\n } else {\n this.setFieldY(STACK_FIELD_END);\n this.setFieldY2(STACK_FIELD_START);\n }\n }\n\n setValueFieldToPercent(): void {\n if (this.direction === Direction.horizontal) {\n this.setFieldX(STACK_FIELD_END_PERCENT);\n this.setFieldX2(STACK_FIELD_START_PERCENT);\n } else {\n this.setFieldY(STACK_FIELD_END_PERCENT);\n this.setFieldY2(STACK_FIELD_START_PERCENT);\n }\n }\n\n setValueFieldToStackOffsetSilhouette(): void {\n if (this.direction === Direction.horizontal) {\n this.setFieldX(STACK_FIELD_END_OffsetSilhouette);\n this.setFieldX2(STACK_FIELD_START_OffsetSilhouette);\n } else {\n this.setFieldY(STACK_FIELD_END_OffsetSilhouette);\n this.setFieldY2(STACK_FIELD_START_OffsetSilhouette);\n }\n }\n\n onXAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n onYAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n onZAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.setFieldX(this._spec.xField);\n this.setFieldY(this._spec.yField);\n this.setFieldZ(this._spec.zField);\n this._specXField = array(this._spec.xField);\n this._specYField = array(this._spec.yField);\n if (isValid(this._spec.direction)) {\n this._direction = this._spec.direction;\n }\n\n this.setFieldX2(this._spec?.x2Field);\n this.setFieldY2(this._spec?.y2Field);\n\n if (this.getStack()) {\n this.setValueFieldToStack();\n }\n if (this.getPercent()) {\n this.setValueFieldToPercent();\n }\n if (this.getStackOffsetSilhouette()) {\n this.setValueFieldToStackOffsetSilhouette();\n }\n\n if (isValid(this._spec.sortDataByAxis)) {\n this._sortDataByAxis = this._spec.sortDataByAxis === true;\n }\n }\n\n dataToPosition(datum: Datum, checkInViewData?: boolean): IPoint | null {\n if (!datum) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\n return null;\n }\n return {\n x: this.dataToPositionX(datum),\n y: this.dataToPositionY(datum)\n } as IPoint;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // position\n this._markAttributeContext.valueToX = this.valueToPositionX.bind(this);\n this._markAttributeContext.valueToY = this.valueToPositionY.bind(this);\n this._markAttributeContext.xBandwidth = (depth: number = 0) => this.getXAxisHelper().getBandwidth?.(depth) ?? 0;\n this._markAttributeContext.yBandwidth = (depth: number = 0) => this.getYAxisHelper().getBandwidth?.(depth) ?? 0;\n this._markAttributeContext.valueToPosition = this.valueToPosition.bind(this);\n }\n\n valueToPosition(xValue: StringOrNumber | StringOrNumber[], yValue: StringOrNumber | StringOrNumber[]) {\n return {\n x: this.valueToPositionX(xValue),\n y: this.valueToPositionY(yValue)\n };\n }\n\n protected _axisPosition(helper: IAxisHelper, value: StringOrNumber | StringOrNumber[], datum?: any) {\n this._scaleConfig.datum = datum;\n if (helper.isContinuous) {\n return helper.valueToPosition(value, this._scaleConfig);\n }\n return helper.dataToPosition(array(value), this._scaleConfig);\n }\n\n valueToPositionX(value: StringOrNumber | StringOrNumber[], datum?: any) {\n return this._axisPosition(this._xAxisHelper, value, datum);\n }\n valueToPositionY(value: StringOrNumber | StringOrNumber[], datum?: any) {\n return this._axisPosition(this._yAxisHelper, value, datum);\n }\n\n protected _dataToPosition(\n datum: Datum,\n axisHelper: IAxisHelper,\n field: string[],\n scaleDepth: number | undefined,\n getEncoder: () => (datum: Datum) => number,\n setEncoder: (encoder: (datum: Datum) => number) => void\n ): number {\n const encoder = getEncoder();\n if (encoder) {\n return encoder(datum);\n }\n\n if (!axisHelper) {\n setEncoder((datum: Datum) => Number.NaN);\n return Number.NaN;\n }\n const fields = (axisHelper.getFields ? axisHelper.getFields() : field).slice(0, scaleDepth);\n if (!fields || fields.length === 0) {\n setEncoder((datum: Datum) => null);\n return null;\n }\n\n if (axisHelper.isContinuous) {\n setEncoder((datum: Datum) => {\n this._scaleConfig.datum = datum;\n return axisHelper.valueToPosition(this.getDatumPositionValue(datum, fields[0]), this._scaleConfig);\n });\n } else {\n setEncoder((datum: Datum) => {\n this._scaleConfig.datum = datum;\n return axisHelper.dataToPosition(array(this.getDatumPositionValues(datum, fields)), this._scaleConfig);\n });\n }\n\n return getEncoder()(datum);\n }\n\n protected _positionXEncoder?: (datum: Datum) => number;\n protected _getPositionXEncoder = () => this._positionXEncoder?.bind(this);\n protected _setPositionXEncoder = (encoder: (datum: Datum) => number) => {\n this._positionXEncoder = encoder.bind(this);\n };\n\n dataToPositionX(datum: Datum): number {\n return this._dataToPosition(\n datum,\n this._xAxisHelper,\n this.fieldX,\n undefined,\n this._getPositionXEncoder,\n this._setPositionXEncoder\n );\n }\n\n protected _positionYEncoder?: (datum: Datum) => number;\n protected _getPositionYEncoder = () => this._positionYEncoder?.bind(this);\n protected _setPositionYEncoder = (encoder: (datum: Datum) => number) => {\n this._positionYEncoder = encoder.bind(this);\n };\n\n dataToPositionY(datum: Datum): number {\n return this._dataToPosition(\n datum,\n this._yAxisHelper,\n this.fieldY,\n undefined,\n this._getPositionYEncoder,\n this._setPositionYEncoder\n );\n }\n\n dataToPositionZ(datum: Datum): number {\n if (!this._zAxisHelper) {\n return Number.NaN;\n }\n const { dataToPosition } = this._zAxisHelper;\n\n return dataToPosition(this.getDatumPositionValues(datum, this._fieldZ), {\n bandPosition: this._bandPosition\n });\n }\n\n dataToPositionX1(datum: Datum): number {\n if (!this._xAxisHelper) {\n return Number.NaN;\n }\n return this._fieldX2 && this._fieldX2 in datum\n ? this.valueToPositionX(this.getDatumPositionValues(datum, this._fieldX2))\n : this.valueToPositionX(0);\n }\n\n dataToPositionY1(datum: Datum): number {\n if (!this._yAxisHelper) {\n return Number.NaN;\n }\n return this._fieldY2 && this._fieldY2 in datum\n ? this.valueToPositionY(this.getDatumPositionValues(datum, this._fieldY2))\n : this.valueToPositionY(0);\n }\n\n positionToData(p: IPoint): IPoint | null {\n if (!p) {\n return null;\n }\n return {\n x: this.positionToDataX(p.x),\n y: this.positionToDataY(p.y)\n };\n }\n\n positionToDataX(xPos: number): any | null {\n if (!this._scaleX) {\n return null;\n }\n return this._scaleX.invert(xPos);\n }\n\n positionToDataY(yPos: number): any | null {\n if (!this._scaleY) {\n return null;\n }\n return this._scaleY.invert(yPos);\n }\n\n getRegionRectLeft(): number {\n if (!this._xAxisHelper) {\n return Number.NaN;\n }\n const { getScale } = this._xAxisHelper;\n return getScale(0).range()[0];\n }\n\n getRegionRectRight(): number {\n if (!this._xAxisHelper) {\n return Number.NaN;\n }\n const { getScale } = this._xAxisHelper;\n return getScale(0).range()[1];\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this.setFieldX(this._fieldX);\n this.setFieldY(this._fieldY);\n this._buildScaleConfig();\n }\n\n getDimensionField(): string[] {\n if (this._direction === Direction.horizontal) {\n return this._specYField;\n }\n return this._specXField;\n }\n\n getDimensionContinuousField(): string[] {\n if (this._direction === Direction.horizontal) {\n return [this.fieldY[0], this.fieldY2];\n }\n return [this.fieldX[0], this.fieldX2];\n }\n\n getMeasureField(): string[] {\n if (this._direction === Direction.horizontal) {\n return this._specXField;\n }\n return this._specYField;\n }\n\n protected initEvent() {\n super.initEvent();\n // 通过轴事件来进行排序。轴的domain数据变化在系列的统计数据完成后\n if (this.sortDataByAxis) {\n this.event.on(\n ChartEvent.scaleDomainUpdate,\n {\n filter: param =>\n param.model.id ===\n (this._direction === Direction.horizontal ? this._yAxisHelper : this._xAxisHelper)?.getAxisId()\n },\n () => {\n // 只能排序,不能修改数据,此时已经在数据流的统计流程之后\n this._sortDataInAxisDomain();\n }\n );\n }\n }\n\n _sortDataInAxisDomain() {\n if (this.getViewData()?.latestData?.length) {\n sortDataInAxisHelper(\n this._direction === Direction.horizontal ? this._yAxisHelper : this._xAxisHelper,\n this._direction === Direction.horizontal ? this._fieldY[0] : this._fieldX[0],\n this.getViewData().latestData\n );\n this._data?.updateData(true);\n }\n }\n\n protected getInvalidCheckFields() {\n const fields: string[] = [];\n\n if (\n this._xAxisHelper &&\n this._xAxisHelper.isContinuous &&\n this._xAxisHelper.getAxisType() !== ComponentTypeEnum.geoCoordinate\n ) {\n const xFields = this._xAxisHelper.getFields ? this._xAxisHelper.getFields() : this._specXField;\n xFields.forEach(f => {\n fields.push(f);\n });\n }\n\n if (\n this._yAxisHelper &&\n this._yAxisHelper.isContinuous &&\n this._yAxisHelper.getAxisType() !== ComponentTypeEnum.geoCoordinate\n ) {\n const yFields = this._yAxisHelper.getFields ? this._yAxisHelper.getFields() : this._specYField;\n\n yFields.forEach(f => {\n fields.push(f);\n });\n }\n return fields;\n }\n\n reInit(spec: T) {\n if (this._positionXEncoder) {\n this._positionXEncoder = null;\n }\n if (this._positionYEncoder) {\n this._positionYEncoder = null;\n }\n\n super.reInit(spec);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/cartesian/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { ICartesianSeries } from '../interface';\nimport { BaseSeries } from '../base/base-series';\nimport type { IPoint } from '../../typings/coordinate';\nimport type { IBaseScale } from '@visactor/vscale';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_START_OffsetSilhouette,\n PREFIX,\n ChartEvent\n} from '../../constant';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { DirectionType } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../typings/space';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport { couldBeValidNumber } from '../../util/type';\nimport { array, isValid } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { StatisticOperations } from '../../data/transforms/dimension-statistics';\nimport type { ICartesianSeriesSpec } from './interface';\nimport { sortDataInAxisHelper } from '../util/utils';\nimport type { IAxisLocationCfg } from '../../component/axis';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { invalidTravel } from '../../data/transforms/invalid-travel';\nimport { ComponentTypeEnum } from '../../component/interface/type';\nimport { shouldUpdateAxis } from '../../component/axis/util';\n\nexport abstract class CartesianSeries<T extends ICartesianSeriesSpec = ICartesianSeriesSpec>\n extends BaseSeries<T>\n implements ICartesianSeries\n{\n readonly coordinate: 'cartesian' = 'cartesian';\n protected _bandPosition = 0.5;\n protected _scaleConfig: IAxisLocationCfg = {\n bandPosition: this._bandPosition\n };\n protected _buildScaleConfig() {\n this._scaleConfig = {\n bandPosition: this._bandPosition\n };\n }\n\n protected _fieldX!: string[];\n get fieldX() {\n return this._fieldX;\n }\n setFieldX(f: string | string[]) {\n this._fieldX = array(f);\n }\n\n protected _fieldY!: string[];\n get fieldY() {\n return this._fieldY;\n }\n setFieldY(f: string | string[]) {\n this._fieldY = array(f);\n }\n\n protected _fieldZ?: string[];\n get fieldZ(): string[] | undefined {\n return this._fieldZ;\n }\n setFieldZ(f?: string | string[]) {\n this._fieldZ = f && array(f);\n }\n\n protected _fieldX2!: string;\n get fieldX2() {\n return this._fieldX2;\n }\n setFieldX2(f: string) {\n this._fieldX2 = f;\n }\n\n protected _fieldY2!: string;\n get fieldY2() {\n return this._fieldY2;\n }\n setFieldY2(f: string) {\n this._fieldY2 = f;\n }\n\n protected _specXField: string[];\n protected _specYField: string[];\n\n protected _direction: DirectionType = Direction.vertical;\n get direction() {\n return this._direction;\n }\n\n protected _scaleX!: IBaseScale;\n get scaleX() {\n return this._scaleX;\n }\n setScaleX(s: IBaseScale) {\n this._scaleX = s;\n }\n\n protected _scaleY!: IBaseScale;\n get scaleY() {\n return this._scaleY;\n }\n setScaleY(s: IBaseScale) {\n this._scaleY = s;\n }\n\n protected _scaleZ?: IBaseScale;\n get scaleZ() {\n return this._scaleZ;\n }\n setScaleZ(s: IBaseScale) {\n this._scaleZ = s;\n }\n\n _xAxisHelper!: IAxisHelper;\n getXAxisHelper() {\n return this._xAxisHelper;\n }\n setXAxisHelper(h: IAxisHelper) {\n this._xAxisHelper = h;\n this.onXAxisHelperUpdate();\n }\n\n _yAxisHelper!: IAxisHelper;\n getYAxisHelper() {\n return this._yAxisHelper;\n }\n setYAxisHelper(h: IAxisHelper) {\n this._yAxisHelper = h;\n this.onYAxisHelperUpdate();\n }\n\n _zAxisHelper?: IAxisHelper;\n getZAxisHelper() {\n return this._zAxisHelper;\n }\n setZAxisHelper(h: IAxisHelper) {\n this._zAxisHelper = h;\n this.onYAxisHelperUpdate();\n }\n\n protected _sortDataByAxis: boolean = false;\n get sortDataByAxis() {\n return this._sortDataByAxis;\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: StatisticOperations }[] = [];\n const axes = [\n {\n axisHelper: this.getXAxisHelper(),\n fields: this._fieldX2 ? [...this._fieldX, this._fieldX2] : this._fieldX\n },\n {\n axisHelper: this.getYAxisHelper(),\n fields: this._fieldY2 ? [...this._fieldY, this._fieldY2] : this._fieldY\n },\n {\n axisHelper: this.getZAxisHelper(),\n fields: this._fieldZ\n }\n ];\n\n axes.forEach(axisOption => {\n if (axisOption.axisHelper && axisOption.axisHelper.getScale && axisOption.fields) {\n axisOption.fields.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'>; filter?: (fv: any) => boolean } = {\n key: f,\n operations: []\n };\n const scale = axisOption.axisHelper.getScale(0);\n if (isContinuous(scale.type)) {\n result.operations = ['max', 'min'];\n\n if (scale.type === 'log') {\n result.filter = (fv: any) => fv > 0;\n }\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n });\n\n if (this.getStack()) {\n fields.push({\n key: this.getStackValueField(),\n operations: ['allValid']\n });\n }\n return fields;\n }\n\n getGroupFields() {\n return this.direction === 'vertical' ? this._fieldX : this._fieldY;\n }\n\n getStackGroupFields(): string[] {\n return this.getGroupFields();\n }\n\n getStackValue() {\n const axisId = (\n this.direction === Direction.horizontal ? this.getXAxisHelper() : this.getYAxisHelper()\n )?.getAxisId();\n return this._spec.stackValue ?? `${PREFIX}_series_${this.type}_${axisId}`;\n }\n\n getStackValueField() {\n // TODO: hack\n if (this.direction === Direction.horizontal) {\n return array(this._spec.xField)[0];\n }\n return array(this._spec.yField)[0];\n }\n\n setValueFieldToStack(): void {\n if (this.direction === Direction.horizontal) {\n this.setFieldX(STACK_FIELD_END);\n this.setFieldX2(STACK_FIELD_START);\n } else {\n this.setFieldY(STACK_FIELD_END);\n this.setFieldY2(STACK_FIELD_START);\n }\n }\n\n setValueFieldToPercent(): void {\n if (this.direction === Direction.horizontal) {\n this.setFieldX(STACK_FIELD_END_PERCENT);\n this.setFieldX2(STACK_FIELD_START_PERCENT);\n } else {\n this.setFieldY(STACK_FIELD_END_PERCENT);\n this.setFieldY2(STACK_FIELD_START_PERCENT);\n }\n }\n\n setValueFieldToStackOffsetSilhouette(): void {\n if (this.direction === Direction.horizontal) {\n this.setFieldX(STACK_FIELD_END_OffsetSilhouette);\n this.setFieldX2(STACK_FIELD_START_OffsetSilhouette);\n } else {\n this.setFieldY(STACK_FIELD_END_OffsetSilhouette);\n this.setFieldY2(STACK_FIELD_START_OffsetSilhouette);\n }\n }\n\n onXAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n onYAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n onZAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.setFieldX(this._spec.xField);\n this.setFieldY(this._spec.yField);\n this.setFieldZ(this._spec.zField);\n this._specXField = array(this._spec.xField);\n this._specYField = array(this._spec.yField);\n if (isValid(this._spec.direction)) {\n this._direction = this._spec.direction;\n }\n\n this.setFieldX2(this._spec?.x2Field);\n this.setFieldY2(this._spec?.y2Field);\n\n if (this.getStack()) {\n this.setValueFieldToStack();\n }\n if (this.getPercent()) {\n this.setValueFieldToPercent();\n }\n if (this.getStackOffsetSilhouette()) {\n this.setValueFieldToStackOffsetSilhouette();\n }\n\n if (isValid(this._spec.sortDataByAxis)) {\n this._sortDataByAxis = this._spec.sortDataByAxis === true;\n }\n }\n\n dataToPosition(datum: Datum, checkInViewData?: boolean): IPoint | null {\n if (!datum) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\n return null;\n }\n return {\n x: this.dataToPositionX(datum),\n y: this.dataToPositionY(datum)\n } as IPoint;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // position\n this._markAttributeContext.valueToX = this.valueToPositionX.bind(this);\n this._markAttributeContext.valueToY = this.valueToPositionY.bind(this);\n this._markAttributeContext.xBandwidth = (depth: number = 0) => this.getXAxisHelper().getBandwidth?.(depth) ?? 0;\n this._markAttributeContext.yBandwidth = (depth: number = 0) => this.getYAxisHelper().getBandwidth?.(depth) ?? 0;\n this._markAttributeContext.valueToPosition = this.valueToPosition.bind(this);\n }\n\n valueToPosition(xValue: StringOrNumber | StringOrNumber[], yValue: StringOrNumber | StringOrNumber[]) {\n return {\n x: this.valueToPositionX(xValue),\n y: this.valueToPositionY(yValue)\n };\n }\n\n protected _axisPosition(helper: IAxisHelper, value: StringOrNumber | StringOrNumber[], datum?: any) {\n this._scaleConfig.datum = datum;\n if (helper.isContinuous) {\n return helper.valueToPosition(value, this._scaleConfig);\n }\n return helper.dataToPosition(array(value), this._scaleConfig);\n }\n\n valueToPositionX(value: StringOrNumber | StringOrNumber[], datum?: any) {\n return this._axisPosition(this._xAxisHelper, value, datum);\n }\n valueToPositionY(value: StringOrNumber | StringOrNumber[], datum?: any) {\n return this._axisPosition(this._yAxisHelper, value, datum);\n }\n\n protected _dataToPosition(\n datum: Datum,\n axisHelper: IAxisHelper,\n field: string[],\n scaleDepth: number | undefined,\n getEncoder: () => (datum: Datum) => number,\n setEncoder: (encoder: (datum: Datum) => number) => void\n ): number {\n const encoder = getEncoder();\n if (encoder) {\n return encoder(datum);\n }\n\n if (!axisHelper) {\n setEncoder((datum: Datum) => Number.NaN);\n return Number.NaN;\n }\n const fields = (axisHelper.getFields ? axisHelper.getFields() : field).slice(0, scaleDepth);\n if (!fields || fields.length === 0) {\n setEncoder((datum: Datum) => null);\n return null;\n }\n\n if (axisHelper.isContinuous) {\n setEncoder((datum: Datum) => {\n this._scaleConfig.datum = datum;\n return axisHelper.valueToPosition(this.getDatumPositionValue(datum, fields[0]), this._scaleConfig);\n });\n } else {\n setEncoder((datum: Datum) => {\n this._scaleConfig.datum = datum;\n return axisHelper.dataToPosition(array(this.getDatumPositionValues(datum, fields)), this._scaleConfig);\n });\n }\n\n return getEncoder()(datum);\n }\n\n protected _positionXEncoder?: (datum: Datum) => number;\n protected _getPositionXEncoder = () => this._positionXEncoder?.bind(this);\n protected _setPositionXEncoder = (encoder: (datum: Datum) => number) => {\n this._positionXEncoder = encoder.bind(this);\n };\n\n dataToPositionX(datum: Datum): number {\n return this._dataToPosition(\n datum,\n this._xAxisHelper,\n this.fieldX,\n undefined,\n this._getPositionXEncoder,\n this._setPositionXEncoder\n );\n }\n\n protected _positionYEncoder?: (datum: Datum) => number;\n protected _getPositionYEncoder = () => this._positionYEncoder?.bind(this);\n protected _setPositionYEncoder = (encoder: (datum: Datum) => number) => {\n this._positionYEncoder = encoder.bind(this);\n };\n\n dataToPositionY(datum: Datum): number {\n return this._dataToPosition(\n datum,\n this._yAxisHelper,\n this.fieldY,\n undefined,\n this._getPositionYEncoder,\n this._setPositionYEncoder\n );\n }\n\n dataToPositionZ(datum: Datum): number {\n if (!this._zAxisHelper) {\n return Number.NaN;\n }\n const { dataToPosition } = this._zAxisHelper;\n\n return dataToPosition(this.getDatumPositionValues(datum, this._fieldZ), {\n bandPosition: this._bandPosition\n });\n }\n\n dataToPositionX1(datum: Datum): number {\n if (!this._xAxisHelper) {\n return Number.NaN;\n }\n return this._fieldX2 && this._fieldX2 in datum\n ? this.valueToPositionX(this.getDatumPositionValues(datum, this._fieldX2))\n : this.valueToPositionX(0);\n }\n\n dataToPositionY1(datum: Datum): number {\n if (!this._yAxisHelper) {\n return Number.NaN;\n }\n return this._fieldY2 && this._fieldY2 in datum\n ? this.valueToPositionY(this.getDatumPositionValues(datum, this._fieldY2))\n : this.valueToPositionY(0);\n }\n\n positionToData(p: IPoint): IPoint | null {\n if (!p) {\n return null;\n }\n return {\n x: this.positionToDataX(p.x),\n y: this.positionToDataY(p.y)\n };\n }\n\n positionToDataX(xPos: number): any | null {\n if (!this._scaleX) {\n return null;\n }\n return this._scaleX.invert(xPos);\n }\n\n positionToDataY(yPos: number): any | null {\n if (!this._scaleY) {\n return null;\n }\n return this._scaleY.invert(yPos);\n }\n\n getRegionRectLeft(): number {\n if (!this._xAxisHelper) {\n return Number.NaN;\n }\n const { getScale } = this._xAxisHelper;\n return getScale(0).range()[0];\n }\n\n getRegionRectRight(): number {\n if (!this._xAxisHelper) {\n return Number.NaN;\n }\n const { getScale } = this._xAxisHelper;\n return getScale(0).range()[1];\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this.setFieldX(this._fieldX);\n this.setFieldY(this._fieldY);\n this._buildScaleConfig();\n }\n\n getDimensionField(): string[] {\n if (this._direction === Direction.horizontal) {\n return this._specYField;\n }\n return this._specXField;\n }\n\n getDimensionContinuousField(): string[] {\n if (this._direction === Direction.horizontal) {\n return [this.fieldY[0], this.fieldY2];\n }\n return [this.fieldX[0], this.fieldX2];\n }\n\n getMeasureField(): string[] {\n if (this._direction === Direction.horizontal) {\n return this._specXField;\n }\n return this._specYField;\n }\n\n protected initEvent() {\n super.initEvent();\n // 通过轴事件来进行排序。轴的domain数据变化在系列的统计数据完成后\n if (this.sortDataByAxis) {\n this.event.on(\n ChartEvent.scaleDomainUpdate,\n {\n filter: param =>\n param.model.id ===\n (this._direction === Direction.horizontal ? this._yAxisHelper : this._xAxisHelper)?.getAxisId()\n },\n () => {\n // 只能排序,不能修改数据,此时已经在数据流的统计流程之后\n this._sortDataInAxisDomain();\n }\n );\n }\n }\n\n _sortDataInAxisDomain() {\n if (this.getViewData()?.latestData?.length) {\n sortDataInAxisHelper(\n this._direction === Direction.horizontal ? this._yAxisHelper : this._xAxisHelper,\n this._direction === Direction.horizontal ? this._fieldY[0] : this._fieldX[0],\n this.getViewData().latestData\n );\n this._data?.updateData(true);\n }\n }\n\n protected getInvalidCheckFields() {\n const fields: string[] = [];\n\n if (\n this._xAxisHelper &&\n this._xAxisHelper.isContinuous &&\n this._xAxisHelper.getAxisType() !== ComponentTypeEnum.geoCoordinate\n ) {\n const xFields = this._xAxisHelper.getFields ? this._xAxisHelper.getFields() : this._specXField;\n xFields.forEach(f => {\n fields.push(f);\n });\n }\n\n if (\n this._yAxisHelper &&\n this._yAxisHelper.isContinuous &&\n this._yAxisHelper.getAxisType() !== ComponentTypeEnum.geoCoordinate\n ) {\n const yFields = this._yAxisHelper.getFields ? this._yAxisHelper.getFields() : this._specYField;\n\n yFields.forEach(f => {\n fields.push(f);\n });\n }\n return fields;\n }\n\n reInit(spec: T) {\n if (this._positionXEncoder) {\n this._positionXEncoder = null;\n }\n if (this._positionYEncoder) {\n this._positionYEncoder = null;\n }\n\n super.reInit(spec);\n }\n}\n"]}
|
|
@@ -29,7 +29,7 @@ export declare abstract class PolarSeries<T extends IPolarSeriesSpec = IPolarSer
|
|
|
29
29
|
get angleScale(): IBaseScale;
|
|
30
30
|
setAngleScale(s: IBaseScale): IBaseScale;
|
|
31
31
|
private _angleAxisHelper;
|
|
32
|
-
|
|
32
|
+
getAngleAxisHelper(): IPolarAxisHelper;
|
|
33
33
|
set angleAxisHelper(h: IPolarAxisHelper);
|
|
34
34
|
private _radiusAxisHelper;
|
|
35
35
|
get radiusAxisHelper(): IPolarAxisHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/polar/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { IPoint, IPolarPoint } from '../../typings/coordinate';\nimport type { IPolarSeries } from '../interface';\nimport { array, isValid, isNil } from '@visactor/vutils';\nimport { couldBeValidNumber } from '../../util/type';\nimport type { IPolarAxisHelper } from '../../component/axis/polar/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { POLAR_DEFAULT_RADIUS } from '../../constant/polar';\nimport { BaseSeries } from '../base/base-series';\nimport type { IPolarSeriesSpec } from './interface';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport { sortDataInAxisHelper } from '../util/utils';\nimport { ChartEvent } from '../../constant';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { invalidTravel } from '../../data/transforms/invalid-travel';\n\nexport abstract class PolarSeries<T extends IPolarSeriesSpec = IPolarSeriesSpec>\n extends BaseSeries<T>\n implements IPolarSeries\n{\n readonly coordinate: 'polar' = 'polar';\n\n protected _outerRadius: number = POLAR_DEFAULT_RADIUS;\n public get outerRadius() {\n return this._outerRadius;\n }\n\n protected _innerRadius: number = 0;\n public get innerRadius() {\n return this._innerRadius;\n }\n\n protected _angleField: string[] = [];\n getAngleField() {\n return this._angleField;\n }\n setAngleField(f: string | string[]): string[] {\n this._angleField = isValid(f) ? array(f) : [];\n return this._angleField;\n }\n\n protected _radiusField: string[] = [];\n getRadiusField() {\n return this._radiusField;\n }\n setRadiusField(f: string | string[]): string[] {\n this._radiusField = isValid(f) ? array(f) : [];\n return this._radiusField;\n }\n\n protected _specAngleField: string[];\n protected _specRadiusField: string[];\n\n protected _innerRadiusField!: string[];\n public get innerRadiusField() {\n return this._innerRadiusField;\n }\n setInnerRadiusField(f: string | string[]): string[] {\n this._innerRadiusField = array(f);\n return this._innerRadiusField;\n }\n\n protected _radiusScale!: IBaseScale;\n public get radiusScale() {\n return this._radiusScale;\n }\n setRadiusScale(s: IBaseScale) {\n this._radiusScale = s;\n return s;\n }\n\n protected _angleScale!: IBaseScale;\n public get angleScale() {\n return this._angleScale;\n }\n setAngleScale(s: IBaseScale) {\n this._angleScale = s;\n return s;\n }\n\n private _angleAxisHelper!: IPolarAxisHelper;\n public get angleAxisHelper() {\n return this._angleAxisHelper;\n }\n public set angleAxisHelper(h: IPolarAxisHelper) {\n this._angleAxisHelper = h;\n this.onAngleAxisHelperUpdate();\n }\n\n private _radiusAxisHelper!: IPolarAxisHelper;\n public get radiusAxisHelper() {\n return this._radiusAxisHelper;\n }\n public set radiusAxisHelper(h: IPolarAxisHelper) {\n this._radiusAxisHelper = h;\n this.onRadiusAxisHelperUpdate();\n }\n\n protected _sortDataByAxis: boolean = false;\n get sortDataByAxis() {\n return this._sortDataByAxis;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // position\n this._markAttributeContext.valueToPosition = this.valueToPosition.bind(this);\n this._markAttributeContext.getCenter = () => this.angleAxisHelper.center();\n this._markAttributeContext.getLayoutRadius = () => this._computeLayoutRadius();\n }\n\n valueToPosition(angleValue: StringOrNumber | StringOrNumber[], radiusValue: StringOrNumber | StringOrNumber[]) {\n if (isNil(angleValue) || isNil(radiusValue) || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return { x: Number.NaN, y: Number.NaN };\n }\n const angle = this.angleAxisHelper.dataToPosition(array(angleValue));\n const radius = this.radiusAxisHelper.dataToPosition(array(radiusValue));\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.angleAxisHelper.coordToPoint({ angle, radius });\n }\n\n dataToPosition(datum: Datum, checkInViewData?: boolean): IPoint {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\n return null;\n }\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this.getDatumPositionValues(datum, this._radiusField)\n );\n }\n\n dataToPositionX(datum: Datum): number {\n return this.dataToPosition(datum)?.x;\n }\n\n dataToPositionY(datum: Datum): number {\n return this.dataToPosition(datum)?.y;\n }\n\n dataToPositionZ(datum: Datum): number {\n return 0;\n }\n\n // todo: 待实现\n positionToData(p: IPolarPoint): any {\n /* do nothing */\n }\n radiusToData(r: number): any {\n /* do nothing */\n }\n angleToData(a: number): any {\n /* do nothing */\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n if (this.radiusAxisHelper?.getScale) {\n this._radiusField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.radiusAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n if (this.angleAxisHelper?.getScale) {\n this._angleField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.angleAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n return fields;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n if (isValid(this._spec.outerRadius)) {\n this._outerRadius = this._spec.outerRadius;\n }\n if (isValid(this._spec.radius)) {\n // 优先使用outerRadius, 但要兼容spec.radius\n this._outerRadius = this._spec.radius;\n }\n if (isValid(this._spec.innerRadius)) {\n this._innerRadius = this._spec.innerRadius;\n }\n\n if (isValid(this._spec.sortDataByAxis)) {\n this._sortDataByAxis = this._spec.sortDataByAxis === true;\n }\n }\n\n onRadiusAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n onAngleAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n }\n\n protected _computeLayoutRadius() {\n const axisHelper = this._angleAxisHelper || this._radiusAxisHelper;\n\n if (axisHelper) {\n return axisHelper.layoutRadius();\n }\n\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n protected initEvent() {\n super.initEvent();\n // 通过轴事件来进行排序。轴的domain数据变化在系列的统计数据完成后\n if (this.sortDataByAxis) {\n this.event.on(\n ChartEvent.scaleDomainUpdate,\n {\n filter: param => param.model.id === this._angleAxisHelper?.getAxisId()\n },\n () => {\n // 只能排序,不能修改数据,此时已经在数据流的统计流程之后\n this._sortDataInAxisDomain();\n }\n );\n }\n }\n\n _sortDataInAxisDomain() {\n if (this.getViewData()?.latestData?.length) {\n sortDataInAxisHelper(this.angleAxisHelper, this._angleField[0], this.getViewData().latestData);\n }\n }\n\n protected getInvalidCheckFields() {\n const fields: string[] = [];\n\n if (this.angleAxisHelper.isContinuous) {\n this._angleField.forEach(f => {\n fields.push(f);\n });\n }\n\n if (this.radiusAxisHelper.isContinuous) {\n this._radiusField.forEach(f => {\n fields.push(f);\n });\n }\n return fields;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/polar/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { IPoint, IPolarPoint } from '../../typings/coordinate';\nimport type { IPolarSeries } from '../interface';\nimport { array, isValid, isNil } from '@visactor/vutils';\nimport { couldBeValidNumber } from '../../util/type';\nimport type { IPolarAxisHelper } from '../../component/axis/polar/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { POLAR_DEFAULT_RADIUS } from '../../constant/polar';\nimport { BaseSeries } from '../base/base-series';\nimport type { IPolarSeriesSpec } from './interface';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport { sortDataInAxisHelper } from '../util/utils';\nimport { shouldUpdateAxis } from '../../component/axis/util';\nimport { ChartEvent } from '../../constant';\n\nexport abstract class PolarSeries<T extends IPolarSeriesSpec = IPolarSeriesSpec>\n extends BaseSeries<T>\n implements IPolarSeries\n{\n readonly coordinate: 'polar' = 'polar';\n\n protected _outerRadius: number = POLAR_DEFAULT_RADIUS;\n public get outerRadius() {\n return this._outerRadius;\n }\n\n protected _innerRadius: number = 0;\n public get innerRadius() {\n return this._innerRadius;\n }\n\n protected _angleField: string[] = [];\n getAngleField() {\n return this._angleField;\n }\n setAngleField(f: string | string[]): string[] {\n this._angleField = isValid(f) ? array(f) : [];\n return this._angleField;\n }\n\n protected _radiusField: string[] = [];\n getRadiusField() {\n return this._radiusField;\n }\n setRadiusField(f: string | string[]): string[] {\n this._radiusField = isValid(f) ? array(f) : [];\n return this._radiusField;\n }\n\n protected _specAngleField: string[];\n protected _specRadiusField: string[];\n\n protected _innerRadiusField!: string[];\n public get innerRadiusField() {\n return this._innerRadiusField;\n }\n setInnerRadiusField(f: string | string[]): string[] {\n this._innerRadiusField = array(f);\n return this._innerRadiusField;\n }\n\n protected _radiusScale!: IBaseScale;\n public get radiusScale() {\n return this._radiusScale;\n }\n setRadiusScale(s: IBaseScale) {\n this._radiusScale = s;\n return s;\n }\n\n protected _angleScale!: IBaseScale;\n public get angleScale() {\n return this._angleScale;\n }\n setAngleScale(s: IBaseScale) {\n this._angleScale = s;\n return s;\n }\n\n private _angleAxisHelper!: IPolarAxisHelper;\n getAngleAxisHelper() {\n return this._angleAxisHelper;\n }\n\n public set angleAxisHelper(h: IPolarAxisHelper) {\n this._angleAxisHelper = h;\n this.onAngleAxisHelperUpdate();\n }\n\n private _radiusAxisHelper!: IPolarAxisHelper;\n public get radiusAxisHelper() {\n return this._radiusAxisHelper;\n }\n public set radiusAxisHelper(h: IPolarAxisHelper) {\n this._radiusAxisHelper = h;\n this.onRadiusAxisHelperUpdate();\n }\n\n protected _sortDataByAxis: boolean = false;\n get sortDataByAxis() {\n return this._sortDataByAxis;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // position\n this._markAttributeContext.valueToPosition = this.valueToPosition.bind(this);\n this._markAttributeContext.getCenter = () => this.angleAxisHelper.center();\n this._markAttributeContext.getLayoutRadius = () => this._computeLayoutRadius();\n }\n\n valueToPosition(angleValue: StringOrNumber | StringOrNumber[], radiusValue: StringOrNumber | StringOrNumber[]) {\n if (isNil(angleValue) || isNil(radiusValue) || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return { x: Number.NaN, y: Number.NaN };\n }\n const angle = this.angleAxisHelper.dataToPosition(array(angleValue));\n const radius = this.radiusAxisHelper.dataToPosition(array(radiusValue));\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.angleAxisHelper.coordToPoint({ angle, radius });\n }\n\n dataToPosition(datum: Datum, checkInViewData?: boolean): IPoint {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\n return null;\n }\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this.getDatumPositionValues(datum, this._radiusField)\n );\n }\n\n dataToPositionX(datum: Datum): number {\n return this.dataToPosition(datum)?.x;\n }\n\n dataToPositionY(datum: Datum): number {\n return this.dataToPosition(datum)?.y;\n }\n\n dataToPositionZ(datum: Datum): number {\n return 0;\n }\n\n // todo: 待实现\n positionToData(p: IPolarPoint): any {\n /* do nothing */\n }\n radiusToData(r: number): any {\n /* do nothing */\n }\n angleToData(a: number): any {\n /* do nothing */\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n if (this.radiusAxisHelper?.getScale) {\n this._radiusField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.radiusAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n if (this.angleAxisHelper?.getScale) {\n this._angleField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.angleAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n return fields;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n if (isValid(this._spec.outerRadius)) {\n this._outerRadius = this._spec.outerRadius;\n }\n if (isValid(this._spec.radius)) {\n // 优先使用outerRadius, 但要兼容spec.radius\n this._outerRadius = this._spec.radius;\n }\n if (isValid(this._spec.innerRadius)) {\n this._innerRadius = this._spec.innerRadius;\n }\n\n if (isValid(this._spec.sortDataByAxis)) {\n this._sortDataByAxis = this._spec.sortDataByAxis === true;\n }\n }\n\n onRadiusAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n onAngleAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n }\n\n protected _computeLayoutRadius() {\n const axisHelper = this._angleAxisHelper || this._radiusAxisHelper;\n\n if (axisHelper) {\n return axisHelper.layoutRadius();\n }\n\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n protected initEvent() {\n super.initEvent();\n // 通过轴事件来进行排序。轴的domain数据变化在系列的统计数据完成后\n if (this.sortDataByAxis) {\n this.event.on(\n ChartEvent.scaleDomainUpdate,\n {\n filter: param => param.model.id === this._angleAxisHelper?.getAxisId()\n },\n () => {\n // 只能排序,不能修改数据,此时已经在数据流的统计流程之后\n this._sortDataInAxisDomain();\n }\n );\n }\n }\n\n _sortDataInAxisDomain() {\n if (this.getViewData()?.latestData?.length) {\n sortDataInAxisHelper(this.angleAxisHelper, this._angleField[0], this.getViewData().latestData);\n }\n }\n\n protected getInvalidCheckFields() {\n const fields: string[] = [];\n\n if (this.angleAxisHelper.isContinuous) {\n this._angleField.forEach(f => {\n fields.push(f);\n });\n }\n\n if (this.radiusAxisHelper.isContinuous) {\n this._radiusField.forEach(f => {\n fields.push(f);\n });\n }\n return fields;\n }\n}\n"]}
|
|
@@ -441,27 +441,30 @@ export class SankeySeries extends CartesianSeries {
|
|
|
441
441
|
this._initNodeMarkStyle(), this._initLinkMarkStyle(), this._initLabelMarkStyle();
|
|
442
442
|
}
|
|
443
443
|
_initNodeMarkStyle() {
|
|
444
|
+
var _a, _b;
|
|
444
445
|
const nodeMark = this._nodeMark;
|
|
445
|
-
nodeMark && this.setMarkStyle(nodeMark, {
|
|
446
|
+
nodeMark && (this.setMarkStyle(nodeMark, {
|
|
446
447
|
x: datum => datum.x0,
|
|
447
448
|
x1: datum => datum.x1,
|
|
448
449
|
y: datum => datum.y0,
|
|
449
|
-
y1: datum => datum.y1
|
|
450
|
-
|
|
451
|
-
|
|
450
|
+
y1: datum => datum.y1
|
|
451
|
+
}, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Mark), this.setMarkStyle(nodeMark, {
|
|
452
|
+
fill: null !== (_b = null === (_a = this._spec.node.style) || void 0 === _a ? void 0 : _a.fill) && void 0 !== _b ? _b : this._fillByNode
|
|
453
|
+
}, "normal", AttributeLevel.User_Mark));
|
|
452
454
|
}
|
|
453
455
|
_initLinkMarkStyle() {
|
|
454
|
-
var _a;
|
|
456
|
+
var _a, _b, _c;
|
|
455
457
|
const linkMark = this._linkMark;
|
|
456
|
-
linkMark && this.setMarkStyle(linkMark, {
|
|
458
|
+
linkMark && (this.setMarkStyle(linkMark, {
|
|
457
459
|
x0: datum => datum.x0,
|
|
458
460
|
x1: datum => datum.x1,
|
|
459
461
|
y0: datum => datum.y0,
|
|
460
462
|
y1: datum => datum.y1,
|
|
461
463
|
thickness: datum => datum.thickness,
|
|
462
|
-
fill: this._fillByLink,
|
|
463
464
|
direction: null !== (_a = this._spec.direction) && void 0 !== _a ? _a : "horizontal"
|
|
464
|
-
}, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series)
|
|
465
|
+
}, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series), this.setMarkStyle(linkMark, {
|
|
466
|
+
fill: null !== (_c = null === (_b = this._spec.link.style) || void 0 === _b ? void 0 : _b.fill) && void 0 !== _c ? _c : this._fillByLink
|
|
467
|
+
}, "normal", AttributeLevel.User_Mark));
|
|
465
468
|
}
|
|
466
469
|
_initLabelMarkStyle() {
|
|
467
470
|
this._labelMark && ("vertical" === this._spec.direction ? "inside-start" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
|