@visactor/react-vtable 1.22.2 → 1.22.3

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/es/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './tables';
2
2
  export * from './table-components';
3
3
  export * from './components';
4
- export declare const version = "1.22.2";
4
+ export declare const version = "1.22.3";
package/es/index.js CHANGED
@@ -4,5 +4,5 @@ export * from "./table-components";
4
4
 
5
5
  export * from "./components";
6
6
 
7
- export const version = "1.22.2";
7
+ export const version = "1.22.3";
8
8
  //# sourceMappingURL=index.js.map
package/es/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","file":"index.js","sourcesContent":["export * from './tables';\nexport * from './table-components';\nexport * from './components';\n\nexport const version = \"1.22.2\";\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","file":"index.js","sourcesContent":["export * from './tables';\nexport * from './table-components';\nexport * from './components';\n\nexport const version = \"1.22.3\";\n"]}
@@ -2,6 +2,8 @@ import { DefaultAttribute, ReactAttributePlugin, application } from "@visactor/v
2
2
 
3
3
  import { calculateAnchorOfBounds, isFunction, isNil, isObject, isString, styleStringToObject } from "@visactor/vutils";
4
4
 
5
+ import { CUSTOM_CONTAINER_NAME } from "@visactor/vtable";
6
+
5
7
  export class VTableReactAttributePlugin extends ReactAttributePlugin {
6
8
  removeElement(id) {
7
9
  super.removeElement(id), delete this.htmlMap[id];
@@ -119,7 +121,7 @@ function checkFrozenContainer(graphic) {
119
121
 
120
122
  function getTargetGroup(target) {
121
123
  for (;target && target.parent; ) {
122
- if ("custom-container" === target.name) return target;
124
+ if (target.name === CUSTOM_CONTAINER_NAME) return target;
123
125
  target = target.parent;
124
126
  }
125
127
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["table-components/custom/vtable-react-attribute-plugin.ts"],"names":[],"mappings":"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","file":"vtable-react-attribute-plugin.js","sourcesContent":["import type {\n CommonDomOptions,\n CreateDOMParamsType,\n IGraphic,\n IGroup,\n IStage,\n IText,\n SimpleDomStyleOptions\n} from '@visactor/vtable/es/vrender';\nimport { DefaultAttribute, ReactAttributePlugin, application } from '@visactor/vtable/es/vrender';\nimport { calculateAnchorOfBounds, isFunction, isNil, isObject, isString, styleStringToObject } from '@visactor/vutils';\nimport type { CreateDOMParamsTypeForVTable } from './vtable-browser-env-contribution';\n\nexport class VTableReactAttributePlugin extends ReactAttributePlugin {\n declare htmlMap: Record<\n string,\n {\n root?: any;\n unmount?: () => void;\n wrapContainer: HTMLElement;\n nativeContainer: HTMLElement;\n container: string | HTMLElement | null;\n renderId: number;\n graphic: IGraphic;\n }\n >;\n removeElement(id: string) {\n super.removeElement(id);\n delete this.htmlMap[id];\n }\n\n renderGraphicHTML(graphic: IGraphic) {\n const { react } = graphic.attribute;\n if (!react) {\n return;\n }\n const stage = graphic.stage;\n if (!stage) {\n return;\n }\n const ReactDOM = stage.params.ReactDOM;\n const { element } = react;\n let { container } = react;\n // deal with frozen container\n if (container) {\n container = checkFrozenContainer(graphic);\n }\n\n if (!(element && ReactDOM && (ReactDOM.createRoot || ReactDOM.render))) {\n return;\n }\n const id = isNil(react.id) ? `${graphic.id ?? graphic._uid}_react` : react.id;\n\n if (this.htmlMap && this.htmlMap[id] && container && container !== this.htmlMap[id].container) {\n this.removeElement(id);\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n // createa a wrapper contianer to be the root of react element\n const { wrapContainer, nativeContainer } = this.getWrapContainer(stage, container);\n\n if (wrapContainer) {\n if (!this.htmlMap) {\n this.htmlMap = {};\n }\n\n if (ReactDOM.createRoot) {\n const root = ReactDOM.createRoot(wrapContainer);\n root.render(element);\n this.htmlMap[id] = { root, wrapContainer, nativeContainer, container, renderId: this.renderId, graphic };\n } else {\n ReactDOM.render(element, wrapContainer);\n\n this.htmlMap[id] = {\n wrapContainer,\n nativeContainer,\n container,\n renderId: this.renderId,\n unmount: () => {\n ReactDOM.unmountComponentAtNode(wrapContainer);\n },\n graphic\n };\n }\n }\n } else {\n // update react element\n if (ReactDOM.createRoot) {\n this.htmlMap[id].root.render(element);\n } else {\n ReactDOM.render(element, this.htmlMap[id].wrapContainer);\n }\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n return;\n }\n\n const { wrapContainer, nativeContainer } = this.htmlMap[id];\n\n this.updateStyleOfWrapContainer(graphic, stage, wrapContainer, nativeContainer, react);\n this.htmlMap[id].renderId = this.renderId;\n }\n\n getWrapContainer(stage: IStage, userContainer?: string | HTMLElement | null, domParams?: CreateDOMParamsType) {\n let nativeContainer;\n if (userContainer) {\n if (typeof userContainer === 'string') {\n nativeContainer = application.global.getElementById(userContainer);\n } else {\n nativeContainer = userContainer;\n }\n } else {\n nativeContainer = stage.window.getContainer();\n }\n // 创建wrapGroup\n return {\n wrapContainer: application.global.createDom({ tagName: 'div', parent: nativeContainer, ...domParams }),\n nativeContainer\n };\n }\n\n updateStyleOfWrapContainer(\n graphic: IGraphic,\n stage: IStage,\n wrapContainer: HTMLElement,\n nativeContainer: HTMLElement,\n options: SimpleDomStyleOptions & CommonDomOptions\n ) {\n const { pointerEvents, penetrateEventList = [] } = options;\n let calculateStyle = this.parseDefaultStyleFromGraphic(graphic);\n\n calculateStyle.display = graphic.attribute.visible !== false ? 'block' : 'none';\n // 事件穿透\n calculateStyle.pointerEvents = pointerEvents === true ? 'all' : pointerEvents ? pointerEvents : 'none';\n if (calculateStyle.pointerEvents !== 'none') {\n // 删除所有的事件\n this.removeWrapContainerEventListener(wrapContainer);\n // 监听所有的事件\n penetrateEventList.forEach(event => {\n if (event === 'wheel') {\n wrapContainer.addEventListener('wheel', this.onWheel);\n\n // hack for preventing drag touch cause page jump\n wrapContainer.addEventListener(\n 'wheel',\n e => {\n e.preventDefault();\n },\n true\n );\n }\n });\n }\n\n // 定位wrapGroup\n if (!wrapContainer.style.position) {\n wrapContainer.style.position = 'absolute';\n // nativeContainer.style.position = 'relative'; // 'relative' will cause the problem of container position\n }\n let left: number = 0;\n let top: number = 0;\n const b = graphic.globalAABBBounds;\n\n let anchorType = options.anchorType;\n\n if (isNil(anchorType)) {\n anchorType = graphic.type === 'text' ? 'position' : 'boundsLeftTop';\n }\n\n if (anchorType === 'boundsLeftTop') {\n // 兼容老的配置,统一配置\n anchorType = 'top-left';\n }\n if (anchorType === 'position' || b.empty()) {\n const matrix = graphic.globalTransMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const anchor = calculateAnchorOfBounds(b, anchorType);\n\n left = anchor.x;\n top = anchor.y;\n }\n\n // 查看wrapGroup的位置\n // const wrapGroupTL = application.global.getElementTopLeft(wrapGroup, false);\n const containerTL = application.global.getElementTopLeft(nativeContainer, false);\n const windowTL = stage.window.getTopLeft(false);\n const offsetX = left + windowTL.left - containerTL.left;\n const offsetTop = top + windowTL.top - containerTL.top;\n // wrapGroup.style.transform = `translate(${offsetX}px, ${offsetTop}px)`;\n calculateStyle.left = `${offsetX}px`;\n calculateStyle.top = `${offsetTop}px`;\n\n if (graphic.type === 'text' && anchorType === 'position') {\n calculateStyle = {\n ...calculateStyle,\n ...this.getTransformOfText(graphic as IText)\n };\n }\n\n if (isFunction(options.style)) {\n const userStyle = options.style(\n { top: offsetTop, left: offsetX, width: b.width(), height: b.height() },\n graphic,\n wrapContainer\n );\n\n if (userStyle) {\n calculateStyle = { ...calculateStyle, ...userStyle };\n }\n } else if (isObject(options.style)) {\n calculateStyle = { ...calculateStyle, ...options.style };\n } else if (isString(options.style) && options.style) {\n calculateStyle = { ...calculateStyle, ...styleStringToObject(options.style as string) };\n }\n\n // 更新样式\n application.global.updateDom(wrapContainer, {\n width: options.width,\n height: options.height,\n style: calculateStyle,\n graphic\n } as CreateDOMParamsTypeForVTable);\n }\n\n protected drawHTML() {\n if (application?.global?.env === 'browser') {\n (this.pluginService.stage as any).children // fix interactive layer problem\n .sort((a: IGraphic, b: IGraphic) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach((group: IGroup) => {\n this.renderGroupHTML(group);\n });\n\n this.clearCacheContainer();\n }\n }\n}\n\nfunction checkFrozenContainer(graphic: IGraphic) {\n const targetGroup = getTargetGroup(graphic);\n if (!targetGroup) {\n return null;\n }\n const { col, row, stage } = targetGroup;\n let { container } = graphic.attribute.react;\n const { table } = stage as any;\n // deal with react dom container\n if (\n container === table.bodyDomContainer &&\n col < table.frozenColCount &&\n row >= table.rowCount - table.bottomFrozenRowCount\n ) {\n container = table.bottomFrozenBodyDomContainer;\n } else if (\n container === table.bodyDomContainer &&\n col >= table.colCount - table.rightFrozenColCount &&\n row >= table.rowCount - table.bottomFrozenRowCount\n ) {\n container = table.rightFrozenBottomDomContainer;\n } else if (container === table.bodyDomContainer && row >= table.rowCount - table.bottomFrozenRowCount) {\n container = table.bottomFrozenBodyDomContainer;\n } else if (container === table.bodyDomContainer && col < table.frozenColCount) {\n container = table.frozenBodyDomContainer;\n } else if (container === table.bodyDomContainer && col >= table.colCount - table.rightFrozenColCount) {\n container = table.rightFrozenBodyDomContainer;\n } else if (container === table.headerDomContainer && col < table.frozenColCount) {\n container = table.frozenHeaderDomContainer;\n } else if (container === table.headerDomContainer && col >= table.colCount - table.rightFrozenColCount) {\n container = table.rightFrozenHeaderDomContainer;\n }\n\n // graphic.attribute.react.container = container;\n return container;\n}\n\nfunction getTargetGroup(target: any) {\n while (target && target.parent) {\n if (target.name === 'custom-container') {\n return target;\n }\n target = target.parent;\n }\n return null;\n}\n"]}
1
+ {"version":3,"sources":["table-components/custom/vtable-react-attribute-plugin.ts"],"names":[],"mappings":"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","file":"vtable-react-attribute-plugin.js","sourcesContent":["import type {\n CommonDomOptions,\n CreateDOMParamsType,\n IGraphic,\n IGroup,\n IStage,\n IText,\n SimpleDomStyleOptions\n} from '@visactor/vtable/es/vrender';\nimport { DefaultAttribute, ReactAttributePlugin, application } from '@visactor/vtable/es/vrender';\nimport { calculateAnchorOfBounds, isFunction, isNil, isObject, isString, styleStringToObject } from '@visactor/vutils';\nimport type { CreateDOMParamsTypeForVTable } from './vtable-browser-env-contribution';\nimport { CUSTOM_CONTAINER_NAME } from '@visactor/vtable';\n\nexport class VTableReactAttributePlugin extends ReactAttributePlugin {\n declare htmlMap: Record<\n string,\n {\n root?: any;\n unmount?: () => void;\n wrapContainer: HTMLElement;\n nativeContainer: HTMLElement;\n container: string | HTMLElement | null;\n renderId: number;\n graphic: IGraphic;\n }\n >;\n removeElement(id: string) {\n super.removeElement(id);\n delete this.htmlMap[id];\n }\n\n renderGraphicHTML(graphic: IGraphic) {\n const { react } = graphic.attribute;\n if (!react) {\n return;\n }\n const stage = graphic.stage;\n if (!stage) {\n return;\n }\n const ReactDOM = stage.params.ReactDOM;\n const { element } = react;\n let { container } = react;\n // deal with frozen container\n if (container) {\n container = checkFrozenContainer(graphic);\n }\n\n if (!(element && ReactDOM && (ReactDOM.createRoot || ReactDOM.render))) {\n return;\n }\n const id = isNil(react.id) ? `${graphic.id ?? graphic._uid}_react` : react.id;\n\n if (this.htmlMap && this.htmlMap[id] && container && container !== this.htmlMap[id].container) {\n this.removeElement(id);\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n // createa a wrapper contianer to be the root of react element\n const { wrapContainer, nativeContainer } = this.getWrapContainer(stage, container);\n\n if (wrapContainer) {\n if (!this.htmlMap) {\n this.htmlMap = {};\n }\n\n if (ReactDOM.createRoot) {\n const root = ReactDOM.createRoot(wrapContainer);\n root.render(element);\n this.htmlMap[id] = { root, wrapContainer, nativeContainer, container, renderId: this.renderId, graphic };\n } else {\n ReactDOM.render(element, wrapContainer);\n\n this.htmlMap[id] = {\n wrapContainer,\n nativeContainer,\n container,\n renderId: this.renderId,\n unmount: () => {\n ReactDOM.unmountComponentAtNode(wrapContainer);\n },\n graphic\n };\n }\n }\n } else {\n // update react element\n if (ReactDOM.createRoot) {\n this.htmlMap[id].root.render(element);\n } else {\n ReactDOM.render(element, this.htmlMap[id].wrapContainer);\n }\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n return;\n }\n\n const { wrapContainer, nativeContainer } = this.htmlMap[id];\n\n this.updateStyleOfWrapContainer(graphic, stage, wrapContainer, nativeContainer, react);\n this.htmlMap[id].renderId = this.renderId;\n }\n\n getWrapContainer(stage: IStage, userContainer?: string | HTMLElement | null, domParams?: CreateDOMParamsType) {\n let nativeContainer;\n if (userContainer) {\n if (typeof userContainer === 'string') {\n nativeContainer = application.global.getElementById(userContainer);\n } else {\n nativeContainer = userContainer;\n }\n } else {\n nativeContainer = stage.window.getContainer();\n }\n // 创建wrapGroup\n return {\n wrapContainer: application.global.createDom({ tagName: 'div', parent: nativeContainer, ...domParams }),\n nativeContainer\n };\n }\n\n updateStyleOfWrapContainer(\n graphic: IGraphic,\n stage: IStage,\n wrapContainer: HTMLElement,\n nativeContainer: HTMLElement,\n options: SimpleDomStyleOptions & CommonDomOptions\n ) {\n const { pointerEvents, penetrateEventList = [] } = options;\n let calculateStyle = this.parseDefaultStyleFromGraphic(graphic);\n\n calculateStyle.display = graphic.attribute.visible !== false ? 'block' : 'none';\n // 事件穿透\n calculateStyle.pointerEvents = pointerEvents === true ? 'all' : pointerEvents ? pointerEvents : 'none';\n if (calculateStyle.pointerEvents !== 'none') {\n // 删除所有的事件\n this.removeWrapContainerEventListener(wrapContainer);\n // 监听所有的事件\n penetrateEventList.forEach(event => {\n if (event === 'wheel') {\n wrapContainer.addEventListener('wheel', this.onWheel);\n\n // hack for preventing drag touch cause page jump\n wrapContainer.addEventListener(\n 'wheel',\n e => {\n e.preventDefault();\n },\n true\n );\n }\n });\n }\n\n // 定位wrapGroup\n if (!wrapContainer.style.position) {\n wrapContainer.style.position = 'absolute';\n // nativeContainer.style.position = 'relative'; // 'relative' will cause the problem of container position\n }\n let left: number = 0;\n let top: number = 0;\n const b = graphic.globalAABBBounds;\n\n let anchorType = options.anchorType;\n\n if (isNil(anchorType)) {\n anchorType = graphic.type === 'text' ? 'position' : 'boundsLeftTop';\n }\n\n if (anchorType === 'boundsLeftTop') {\n // 兼容老的配置,统一配置\n anchorType = 'top-left';\n }\n if (anchorType === 'position' || b.empty()) {\n const matrix = graphic.globalTransMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const anchor = calculateAnchorOfBounds(b, anchorType);\n\n left = anchor.x;\n top = anchor.y;\n }\n\n // 查看wrapGroup的位置\n // const wrapGroupTL = application.global.getElementTopLeft(wrapGroup, false);\n const containerTL = application.global.getElementTopLeft(nativeContainer, false);\n const windowTL = stage.window.getTopLeft(false);\n const offsetX = left + windowTL.left - containerTL.left;\n const offsetTop = top + windowTL.top - containerTL.top;\n // wrapGroup.style.transform = `translate(${offsetX}px, ${offsetTop}px)`;\n calculateStyle.left = `${offsetX}px`;\n calculateStyle.top = `${offsetTop}px`;\n\n if (graphic.type === 'text' && anchorType === 'position') {\n calculateStyle = {\n ...calculateStyle,\n ...this.getTransformOfText(graphic as IText)\n };\n }\n\n if (isFunction(options.style)) {\n const userStyle = options.style(\n { top: offsetTop, left: offsetX, width: b.width(), height: b.height() },\n graphic,\n wrapContainer\n );\n\n if (userStyle) {\n calculateStyle = { ...calculateStyle, ...userStyle };\n }\n } else if (isObject(options.style)) {\n calculateStyle = { ...calculateStyle, ...options.style };\n } else if (isString(options.style) && options.style) {\n calculateStyle = { ...calculateStyle, ...styleStringToObject(options.style as string) };\n }\n\n // 更新样式\n application.global.updateDom(wrapContainer, {\n width: options.width,\n height: options.height,\n style: calculateStyle,\n graphic\n } as CreateDOMParamsTypeForVTable);\n }\n\n protected drawHTML() {\n if (application?.global?.env === 'browser') {\n (this.pluginService.stage as any).children // fix interactive layer problem\n .sort((a: IGraphic, b: IGraphic) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach((group: IGroup) => {\n this.renderGroupHTML(group);\n });\n\n this.clearCacheContainer();\n }\n }\n}\n\nfunction checkFrozenContainer(graphic: IGraphic) {\n const targetGroup = getTargetGroup(graphic);\n if (!targetGroup) {\n return null;\n }\n const { col, row, stage } = targetGroup;\n let { container } = graphic.attribute.react;\n const { table } = stage as any;\n // deal with react dom container\n if (\n container === table.bodyDomContainer &&\n col < table.frozenColCount &&\n row >= table.rowCount - table.bottomFrozenRowCount\n ) {\n container = table.bottomFrozenBodyDomContainer;\n } else if (\n container === table.bodyDomContainer &&\n col >= table.colCount - table.rightFrozenColCount &&\n row >= table.rowCount - table.bottomFrozenRowCount\n ) {\n container = table.rightFrozenBottomDomContainer;\n } else if (container === table.bodyDomContainer && row >= table.rowCount - table.bottomFrozenRowCount) {\n container = table.bottomFrozenBodyDomContainer;\n } else if (container === table.bodyDomContainer && col < table.frozenColCount) {\n container = table.frozenBodyDomContainer;\n } else if (container === table.bodyDomContainer && col >= table.colCount - table.rightFrozenColCount) {\n container = table.rightFrozenBodyDomContainer;\n } else if (container === table.headerDomContainer && col < table.frozenColCount) {\n container = table.frozenHeaderDomContainer;\n } else if (container === table.headerDomContainer && col >= table.colCount - table.rightFrozenColCount) {\n container = table.rightFrozenHeaderDomContainer;\n }\n\n // graphic.attribute.react.container = container;\n return container;\n}\n\nfunction getTargetGroup(target: any) {\n while (target && target.parent) {\n if (target.name === CUSTOM_CONTAINER_NAME) {\n return target;\n }\n target = target.parent;\n }\n return null;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/react-vtable",
3
- "version": "1.22.2",
3
+ "version": "1.22.3",
4
4
  "description": "The react version of VTable",
5
5
  "keywords": [
6
6
  "react",
@@ -46,7 +46,7 @@
46
46
  "@visactor/vutils": "~0.19.1",
47
47
  "react-is": "^18.2.0",
48
48
  "react-reconciler": "0.29.2",
49
- "@visactor/vtable": "1.22.2"
49
+ "@visactor/vtable": "1.22.3"
50
50
  },
51
51
  "devDependencies": {
52
52
  "cross-env": "^7.0.3",