@visactor/react-vtable 1.16.3-alpha.3 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@ const defaultProps = {
12
12
  },
13
13
  panelStyle: {
14
14
  visible: !0,
15
- fill: "rgb(22, 93, 255)",
15
+ fill: "#165dff",
16
16
  lineWidth: 1,
17
17
  cornerRadius: 2
18
18
  },
@@ -20,10 +20,10 @@ const defaultProps = {
20
20
  state: {
21
21
  panelStyle: {
22
22
  hover: {
23
- fill: "rgb(64, 128, 255)"
23
+ fill: "#4080ff"
24
24
  },
25
25
  disabled: {
26
- fill: "rgb(148, 191, 255)"
26
+ fill: "#94bfff"
27
27
  }
28
28
  }
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["components/button/button.tsx"],"names":[],"mappings":"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","file":"button.js","sourcesContent":["import type {\n BackgroundAttributes,\n Cursor,\n IRectGraphicAttribute,\n ITextGraphicAttribute,\n Padding,\n Tag,\n TagAttributes\n} from '@visactor/vtable/es/vrender';\nimport { Tag as VTag } from '../vrender-components/tag';\nimport { merge } from '@visactor/vutils';\nimport React, { useEffect } from 'react';\n\ninterface ButtonStateStyle {\n textStyle?: {\n hover?: Partial<ITextGraphicAttribute>;\n disabled?: Partial<ITextGraphicAttribute>;\n };\n panelStyle?: {\n hover?: Partial<IRectGraphicAttribute>;\n disabled?: Partial<IRectGraphicAttribute>;\n };\n}\n\nexport interface ButtonProps {\n children?: string;\n textStyle?: Partial<ITextGraphicAttribute>;\n padding?: Padding;\n panelStyle?: BackgroundAttributes;\n minWidth?: number;\n maxWidth?: number;\n visible?: boolean;\n state?: ButtonStateStyle;\n disabled?: boolean;\n cursor?: Cursor;\n onClick?: (e: Event) => void;\n}\n\nconst defaultProps: ButtonProps = {\n textStyle: {\n fontSize: 14,\n fontFamily: 'sans-serif',\n fill: '#FFF'\n },\n panelStyle: {\n visible: true,\n fill: 'rgb(22, 93, 255)',\n lineWidth: 1,\n cornerRadius: 2\n },\n padding: 10,\n // cursor: 'pointer',\n state: {\n panelStyle: {\n hover: {\n fill: 'rgb(64, 128, 255)'\n },\n disabled: {\n fill: 'rgb(148, 191, 255)'\n }\n }\n }\n};\n\nfunction ButtonComponent(baseProps: ButtonProps, ref: React.Ref<Tag>) {\n const props: ButtonProps = merge({}, defaultProps, baseProps);\n const { disabled, onClick } = props;\n let buttonRef = React.useRef<Tag>(null);\n buttonRef = ref ? (ref as React.RefObject<Tag>) : buttonRef;\n\n const handleClick: React.MouseEventHandler<HTMLElement> = React.useCallback(\n (event: any): void => {\n if (disabled) {\n typeof event?.preventDefault === 'function' && event.preventDefault();\n return;\n }\n onClick && onClick(event);\n },\n [disabled, onClick]\n );\n\n const attribute: TagAttributes = getTagAttribute(props);\n\n useEffect(() => {\n buttonRef.current.addEventListener('mouseenter', () => {\n // console.log('mouseenter', buttonRef.current, e.clone());\n if (!disabled) {\n buttonRef.current.addState('hover', true, false);\n // buttonRef.current._bgRect.addState('hover', true, false);\n // buttonRef.current._textShape.addState('hover', true, false);\n buttonRef.current.stage.renderNextFrame();\n }\n });\n buttonRef.current.addEventListener('mouseleave', () => {\n // console.log('mouseleave', buttonRef.current, e.clone());\n if (!disabled) {\n buttonRef.current.removeState('hover', false);\n // buttonRef.current._bgRect.removeState('hover', false);\n // buttonRef.current._textShape.removeState('hover', false);\n buttonRef.current.stage.renderNextFrame();\n }\n });\n });\n\n useEffect(() => {\n if (disabled) {\n buttonRef.current.removeState('disabled', false);\n // buttonRef.current._bgRect.removeState('disabled', false);\n // buttonRef.current._textShape.removeState('disabled', false);\n\n buttonRef.current.addState('disabled', true, false);\n // buttonRef.current._bgRect.addState('disabled', true, false);\n // buttonRef.current._textShape.addState('disabled', true, false);\n // console.log('add disable');\n } else {\n buttonRef.current.removeState('disabled', false);\n // buttonRef.current._bgRect.removeState('disabled', false);\n // buttonRef.current._textShape.removeState('disabled', false);\n // console.log('remove disable');\n }\n buttonRef.current.stage.renderNextFrame();\n });\n\n return <VTag ref={buttonRef} attribute={attribute} onClick={handleClick}></VTag>;\n}\n\nfunction getTagAttribute(props: ButtonProps) {\n const { textStyle, padding, panelStyle, minWidth, maxWidth, visible, cursor, disabled, state, children } = props;\n const attr: TagAttributes = {\n text: children,\n textStyle,\n padding,\n panel: panelStyle,\n minWidth,\n maxWidth,\n visible,\n cursor: cursor ?? disabled ? 'not-allowed' : 'pointer',\n childrenPickable: false,\n state: {\n text: {\n hover: state?.textStyle?.hover,\n disabled: state?.textStyle?.disabled\n },\n panel: {\n hover: state?.panelStyle?.hover,\n disabled: state?.panelStyle?.disabled\n }\n }\n };\n\n return attr;\n}\n\nexport const Button = React.forwardRef<Tag, ButtonProps>(ButtonComponent);\n\nButton.displayName = 'Button';\n"]}
1
+ {"version":3,"sources":["components/button/button.tsx"],"names":[],"mappings":"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","file":"button.js","sourcesContent":["import type {\n BackgroundAttributes,\n Cursor,\n IRectGraphicAttribute,\n ITextGraphicAttribute,\n Padding,\n Tag,\n TagAttributes\n} from '@visactor/vtable/es/vrender';\nimport { Tag as VTag } from '../vrender-components/tag';\nimport { merge } from '@visactor/vutils';\nimport React, { useEffect } from 'react';\n\ninterface ButtonStateStyle {\n textStyle?: {\n hover?: Partial<ITextGraphicAttribute>;\n disabled?: Partial<ITextGraphicAttribute>;\n };\n panelStyle?: {\n hover?: Partial<IRectGraphicAttribute>;\n disabled?: Partial<IRectGraphicAttribute>;\n };\n}\n\nexport interface ButtonProps {\n children?: string;\n textStyle?: Partial<ITextGraphicAttribute>;\n padding?: Padding;\n panelStyle?: BackgroundAttributes;\n minWidth?: number;\n maxWidth?: number;\n visible?: boolean;\n state?: ButtonStateStyle;\n disabled?: boolean;\n cursor?: Cursor;\n onClick?: (e: Event) => void;\n}\n\nconst defaultProps: ButtonProps = {\n textStyle: {\n fontSize: 14,\n fontFamily: 'sans-serif',\n fill: '#FFF'\n },\n panelStyle: {\n visible: true,\n fill: '#165dff',\n lineWidth: 1,\n cornerRadius: 2\n },\n padding: 10,\n // cursor: 'pointer',\n state: {\n panelStyle: {\n hover: {\n fill: '#4080ff'\n },\n disabled: {\n fill: '#94bfff'\n }\n }\n }\n};\n\nfunction ButtonComponent(baseProps: ButtonProps, ref: React.Ref<Tag>) {\n const props: ButtonProps = merge({}, defaultProps, baseProps);\n const { disabled, onClick } = props;\n let buttonRef = React.useRef<Tag>(null);\n buttonRef = ref ? (ref as React.RefObject<Tag>) : buttonRef;\n\n const handleClick: React.MouseEventHandler<HTMLElement> = React.useCallback(\n (event: any): void => {\n if (disabled) {\n typeof event?.preventDefault === 'function' && event.preventDefault();\n return;\n }\n onClick && onClick(event);\n },\n [disabled, onClick]\n );\n\n const attribute: TagAttributes = getTagAttribute(props);\n\n useEffect(() => {\n buttonRef.current.addEventListener('mouseenter', () => {\n // console.log('mouseenter', buttonRef.current, e.clone());\n if (!disabled) {\n buttonRef.current.addState('hover', true, false);\n // buttonRef.current._bgRect.addState('hover', true, false);\n // buttonRef.current._textShape.addState('hover', true, false);\n buttonRef.current.stage.renderNextFrame();\n }\n });\n buttonRef.current.addEventListener('mouseleave', () => {\n // console.log('mouseleave', buttonRef.current, e.clone());\n if (!disabled) {\n buttonRef.current.removeState('hover', false);\n // buttonRef.current._bgRect.removeState('hover', false);\n // buttonRef.current._textShape.removeState('hover', false);\n buttonRef.current.stage.renderNextFrame();\n }\n });\n });\n\n useEffect(() => {\n if (disabled) {\n buttonRef.current.removeState('disabled', false);\n // buttonRef.current._bgRect.removeState('disabled', false);\n // buttonRef.current._textShape.removeState('disabled', false);\n\n buttonRef.current.addState('disabled', true, false);\n // buttonRef.current._bgRect.addState('disabled', true, false);\n // buttonRef.current._textShape.addState('disabled', true, false);\n // console.log('add disable');\n } else {\n buttonRef.current.removeState('disabled', false);\n // buttonRef.current._bgRect.removeState('disabled', false);\n // buttonRef.current._textShape.removeState('disabled', false);\n // console.log('remove disable');\n }\n buttonRef.current.stage.renderNextFrame();\n });\n\n return <VTag ref={buttonRef} attribute={attribute} onClick={handleClick}></VTag>;\n}\n\nfunction getTagAttribute(props: ButtonProps) {\n const { textStyle, padding, panelStyle, minWidth, maxWidth, visible, cursor, disabled, state, children } = props;\n const attr: TagAttributes = {\n text: children,\n textStyle,\n padding,\n panel: panelStyle,\n minWidth,\n maxWidth,\n visible,\n cursor: cursor ?? disabled ? 'not-allowed' : 'pointer',\n childrenPickable: false,\n state: {\n text: {\n hover: state?.textStyle?.hover,\n disabled: state?.textStyle?.disabled\n },\n panel: {\n hover: state?.panelStyle?.hover,\n disabled: state?.panelStyle?.disabled\n }\n }\n };\n\n return attr;\n}\n\nexport const Button = React.forwardRef<Tag, ButtonProps>(ButtonComponent);\n\nButton.displayName = 'Button';\n"]}
@@ -48,6 +48,7 @@ export interface EventsProps {
48
48
  onMouseLeaveAxis?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_axis']>;
49
49
  onCheckboxStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['checkbox_state_change']>;
50
50
  onRadioStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['radio_state_change']>;
51
+ onSwitchStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['switch_state_change']>;
51
52
  onAfterRender?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['after_render']>;
52
53
  onInitialized?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['initialized']>;
53
54
  onChangeCellValue?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_cell_value']>;
@@ -60,6 +61,7 @@ export interface EventsProps {
60
61
  onChangCellValue?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_cell_value']>;
61
62
  onEmptyTipClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['empty_tip_click']>;
62
63
  onEmptyTipDblClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['empty_tip_dblclick']>;
64
+ onButtonClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['button_click']>;
63
65
  }
64
66
  export declare const TABLE_EVENTS: {
65
67
  onClickCell: "click_cell";
@@ -108,6 +110,7 @@ export declare const TABLE_EVENTS: {
108
110
  onMouseLeaveAxis: "mouseleave_axis";
109
111
  onCheckboxStateChange: "checkbox_state_change";
110
112
  onRadioStateChange: "radio_state_change";
113
+ onSwitchStateChange: "switch_state_change";
111
114
  onAfterRender: "after_render";
112
115
  onInitialized: "initialized";
113
116
  onChangeCellValue: "change_cell_value";
@@ -120,6 +123,7 @@ export declare const TABLE_EVENTS: {
120
123
  onChangCellValue: "change_cell_value";
121
124
  onEmptyTipClick: "empty_tip_click";
122
125
  onEmptyTipDblClick: "empty_tip_dblclick";
126
+ onButtonClick: "button_click";
123
127
  };
124
128
  export declare const TABLE_EVENTS_KEYS: string[];
125
129
  export declare const findEventProps: <T extends EventsProps>(props: T, supportedEvents?: Record<string, string>) => EventsProps;
package/es/eventsUtils.js CHANGED
@@ -49,6 +49,7 @@ export const TABLE_EVENTS = {
49
49
  onMouseLeaveAxis: EVENT_TYPE.MOUSELEAVE_AXIS,
50
50
  onCheckboxStateChange: EVENT_TYPE.CHECKBOX_STATE_CHANGE,
51
51
  onRadioStateChange: EVENT_TYPE.RADIO_STATE_CHANGE,
52
+ onSwitchStateChange: EVENT_TYPE.SWITCH_STATE_CHANGE,
52
53
  onAfterRender: EVENT_TYPE.AFTER_RENDER,
53
54
  onInitialized: EVENT_TYPE.INITIALIZED,
54
55
  onChangeCellValue: EVENT_TYPE.CHANGE_CELL_VALUE,
@@ -60,7 +61,8 @@ export const TABLE_EVENTS = {
60
61
  onVChartEventType: EVENT_TYPE.VCHART_EVENT_TYPE,
61
62
  onChangCellValue: EVENT_TYPE.CHANGE_CELL_VALUE,
62
63
  onEmptyTipClick: EVENT_TYPE.EMPTY_TIP_CLICK,
63
- onEmptyTipDblClick: EVENT_TYPE.EMPTY_TIP_DBLCLICK
64
+ onEmptyTipDblClick: EVENT_TYPE.EMPTY_TIP_DBLCLICK,
65
+ onButtonClick: EVENT_TYPE.BUTTON_CLICK
64
66
  };
65
67
 
66
68
  export const TABLE_EVENTS_KEYS = Object.keys(TABLE_EVENTS);
@@ -1 +1 @@
1
- {"version":3,"sources":["eventsUtils.ts"],"names":[],"mappings":"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","file":"eventsUtils.js","sourcesContent":["// import { ListTable, PivotTable, PivotChart } from '@visactor/vtable';\nimport type { IVTable } from './tables/base-table';\nimport type { TYPES } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE, PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from '@visactor/vtable';\n\nexport type EventCallback<Params> = (params: Params) => void;\n\nconst EVENT_TYPE = {\n // ...ListTable.EVENT_TYPE,\n // ...PivotTable.EVENT_TYPE,\n // ...PivotChart.EVENT_TYPE,\n ...TABLE_EVENT_TYPE,\n ...PIVOT_TABLE_EVENT_TYPE,\n ...PIVOT_CHART_EVENT_TYPE\n};\nexport interface EventsProps {\n onClickCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['click_cell']>;\n onDblClickCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dblclick_cell']>;\n onMouseDownCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousedown_cell']>;\n onMouseUpCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseup_cell']>;\n onSelectedCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['selected_cell']>;\n onSelectedClear?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['selected_clear']>;\n onKeyDown?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['keydown']>;\n onMouseEnterTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_table']>;\n onMouseLeaveTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_table']>;\n onMouseDownTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousedown_table']>;\n onMouseMoveCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousemove_cell']>;\n onMousemoveTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousemove_table']>;\n onMouseEnterCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_cell']>;\n onMouseLeaveCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_cell']>;\n onContextMenuCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['contextmenu_cell']>;\n onResizeColumn?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_column']>;\n onResizeColumnEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_column_end']>;\n onResizeRow?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_row']>;\n onResizeRowEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_row_end']>;\n onChangeHeaderPositionStart?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position_start']>;\n onChangeHeaderPosition?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position']>;\n onChangeHeaderPositionFail?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position_fail']>;\n onSortClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['sort_click']>;\n\n onAfterSort?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['after_sort']>;\n onFreezeClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['freeze_click']>;\n onScroll?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll']>;\n onScrollVerticalEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll_vertical_end']>;\n onScrollHorizontalEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll_horizontal_end']>;\n onDropdownMenuClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_menu_click']>;\n onMouseOverChartSymbol?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseover_chart_symbol']>;\n onDragSelectEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drag_select_end']>;\n onCopyData?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['copy_data']>;\n onDropdownIconClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_icon_click']>;\n onDropdownMenuClear?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_menu_clear']>;\n\n onTreeHierarchyStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['tree_hierarchy_state_change']>;\n\n onShowMenu?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['show_menu']>;\n onHideMenu?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['hide_menu']>;\n\n onIconClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['icon_click']>;\n\n onLegendItemClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_click']>;\n onLegendItemHover?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_hover']>;\n onLegendItemUnHover?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_unHover']>;\n onLegendChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_change']>;\n\n onMouseEnterAxis?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_axis']>;\n onMouseLeaveAxis?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_axis']>;\n\n onCheckboxStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['checkbox_state_change']>;\n onRadioStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['radio_state_change']>;\n onAfterRender?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['after_render']>;\n onInitialized?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['initialized']>;\n onChangeCellValue?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_cell_value']>;\n onDragFillHandleEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drag_fill_handle_end']>;\n onMousedownFillHandle?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousedown_fill_handle']>;\n onDblclickFillHandle?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dblclick_fill_handle']>;\n\n // pivot table only\n onPivotSortClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['pivot_sort_click']>;\n onDrillMenuClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drillmenu_click']>;\n\n // pivot chart only\n onVChartEventType?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['vchart_event_type']>;\n\n onChangCellValue?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_cell_value']>;\n onEmptyTipClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['empty_tip_click']>;\n onEmptyTipDblClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['empty_tip_dblclick']>;\n}\n\nexport const TABLE_EVENTS = {\n onClickCell: EVENT_TYPE.CLICK_CELL,\n onDblClickCell: EVENT_TYPE.DBLCLICK_CELL,\n onMouseDownCell: EVENT_TYPE.MOUSEDOWN_CELL,\n onMouseUpCell: EVENT_TYPE.MOUSEUP_CELL,\n onSelectedCell: EVENT_TYPE.SELECTED_CELL,\n onSelectedClear: EVENT_TYPE.SELECTED_CLEAR,\n onKeyDown: EVENT_TYPE.KEYDOWN,\n onMouseEnterTable: EVENT_TYPE.MOUSEENTER_TABLE,\n onMouseLeaveTable: EVENT_TYPE.MOUSELEAVE_TABLE,\n onMouseDownTable: EVENT_TYPE.MOUSEDOWN_TABLE,\n onMouseMoveCell: EVENT_TYPE.MOUSEMOVE_CELL,\n onMouseMoveTable: EVENT_TYPE.MOUSEMOVE_TABLE,\n onMouseEnterCell: EVENT_TYPE.MOUSEENTER_CELL,\n onMouseLeaveCell: EVENT_TYPE.MOUSELEAVE_CELL,\n onContextMenuCell: EVENT_TYPE.CONTEXTMENU_CELL,\n onResizeColumn: EVENT_TYPE.RESIZE_COLUMN,\n onResizeColumnEnd: EVENT_TYPE.RESIZE_COLUMN_END,\n onResizeRow: EVENT_TYPE.RESIZE_ROW,\n onResizeRowEnd: EVENT_TYPE.RESIZE_ROW_END,\n onChangeHeaderPositionStart: EVENT_TYPE.CHANGE_HEADER_POSITION_START,\n onChangeHeaderPosition: EVENT_TYPE.CHANGE_HEADER_POSITION,\n onChangeHeaderPositionFail: EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL,\n onSortClick: EVENT_TYPE.SORT_CLICK,\n\n onAfterSort: EVENT_TYPE.AFTER_SORT,\n onFreezeClick: EVENT_TYPE.FREEZE_CLICK,\n onScroll: EVENT_TYPE.SCROLL,\n onScrollHorizontalEnd: EVENT_TYPE.SCROLL_HORIZONTAL_END,\n onScrollVerticalEnd: EVENT_TYPE.SCROLL_VERTICAL_END,\n onDropdownMenuClick: EVENT_TYPE.DROPDOWN_MENU_CLICK,\n onMouseOverChartSymbol: EVENT_TYPE.MOUSEOVER_CHART_SYMBOL,\n onDragSelectEnd: EVENT_TYPE.DRAG_SELECT_END,\n onCopyData: EVENT_TYPE.COPY_DATA,\n onDropdownIconClick: EVENT_TYPE.DROPDOWN_ICON_CLICK,\n onDropdownMenuClear: EVENT_TYPE.DROPDOWN_MENU_CLEAR,\n\n onTreeHierarchyStateChange: EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE,\n\n onShowMenu: EVENT_TYPE.SHOW_MENU,\n onHideMenu: EVENT_TYPE.HIDE_MENU,\n\n onIconClick: EVENT_TYPE.ICON_CLICK,\n\n onLegendItemClick: EVENT_TYPE.LEGEND_ITEM_CLICK,\n onLegendItemHover: EVENT_TYPE.LEGEND_ITEM_HOVER,\n onLegendItemUnHover: EVENT_TYPE.LEGEND_ITEM_UNHOVER,\n onLegendChange: EVENT_TYPE.LEGEND_CHANGE,\n\n onMouseEnterAxis: EVENT_TYPE.MOUSEENTER_AXIS,\n onMouseLeaveAxis: EVENT_TYPE.MOUSELEAVE_AXIS,\n\n onCheckboxStateChange: EVENT_TYPE.CHECKBOX_STATE_CHANGE,\n onRadioStateChange: EVENT_TYPE.RADIO_STATE_CHANGE,\n onAfterRender: EVENT_TYPE.AFTER_RENDER,\n onInitialized: EVENT_TYPE.INITIALIZED,\n onChangeCellValue: EVENT_TYPE.CHANGE_CELL_VALUE,\n onDragFillHandleEnd: EVENT_TYPE.DRAG_FILL_HANDLE_END,\n onMousedownFillHandle: EVENT_TYPE.MOUSEDOWN_FILL_HANDLE,\n onDblclickFillHandle: EVENT_TYPE.DBLCLICK_FILL_HANDLE,\n\n // pivot table only\n onPivotSortClick: EVENT_TYPE.PIVOT_SORT_CLICK,\n onDrillMenuClick: EVENT_TYPE.DRILLMENU_CLICK,\n\n // pivot chart only\n onVChartEventType: EVENT_TYPE.VCHART_EVENT_TYPE,\n\n onChangCellValue: EVENT_TYPE.CHANGE_CELL_VALUE,\n onEmptyTipClick: EVENT_TYPE.EMPTY_TIP_CLICK,\n onEmptyTipDblClick: EVENT_TYPE.EMPTY_TIP_DBLCLICK\n};\n\nexport const TABLE_EVENTS_KEYS = Object.keys(TABLE_EVENTS);\n\nexport const findEventProps = <T extends EventsProps>(\n props: T,\n supportedEvents: Record<string, string> = TABLE_EVENTS\n): EventsProps => {\n const result: EventsProps = {};\n\n Object.keys(props).forEach(key => {\n if (supportedEvents[key] && props[key as keyof EventsProps]) {\n result[key as keyof EventsProps] = props[key as keyof EventsProps] as any;\n }\n });\n\n return result;\n};\n\nexport const bindEventsToTable = <T extends EventsProps>(\n table: IVTable,\n newProps?: T | null,\n prevProps?: T | null,\n supportedEvents: Record<string, string> = TABLE_EVENTS\n) => {\n if ((!newProps && !prevProps) || !table) {\n return false;\n }\n\n const prevEventProps: EventsProps = prevProps ? findEventProps(prevProps, supportedEvents) : null;\n const newEventProps: EventsProps = newProps ? findEventProps(newProps, supportedEvents) : null;\n\n if (prevEventProps) {\n Object.keys(prevEventProps).forEach(eventKey => {\n if (\n !newEventProps ||\n !newEventProps[eventKey as keyof EventsProps] ||\n newEventProps[eventKey as keyof EventsProps] !== prevEventProps[eventKey as keyof EventsProps]\n ) {\n table.off(supportedEvents[eventKey], prevProps[eventKey as keyof EventsProps] as any);\n }\n });\n }\n\n if (newEventProps) {\n Object.keys(newEventProps).forEach(eventKey => {\n if (\n !prevEventProps ||\n !prevEventProps[eventKey as keyof EventsProps] ||\n prevEventProps[eventKey as keyof EventsProps] !== newEventProps[eventKey as keyof EventsProps]\n ) {\n table.on(\n supportedEvents[eventKey] as keyof TYPES.TableEventHandlersEventArgumentMap,\n newEventProps[eventKey as keyof EventsProps] as any\n );\n }\n });\n }\n\n return true;\n};\n"]}
1
+ {"version":3,"sources":["eventsUtils.ts"],"names":[],"mappings":"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","file":"eventsUtils.js","sourcesContent":["// import { ListTable, PivotTable, PivotChart } from '@visactor/vtable';\nimport type { IVTable } from './tables/base-table';\nimport type { TYPES } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE, PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from '@visactor/vtable';\n\nexport type EventCallback<Params> = (params: Params) => void;\n\nconst EVENT_TYPE = {\n // ...ListTable.EVENT_TYPE,\n // ...PivotTable.EVENT_TYPE,\n // ...PivotChart.EVENT_TYPE,\n ...TABLE_EVENT_TYPE,\n ...PIVOT_TABLE_EVENT_TYPE,\n ...PIVOT_CHART_EVENT_TYPE\n};\nexport interface EventsProps {\n onClickCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['click_cell']>;\n onDblClickCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dblclick_cell']>;\n onMouseDownCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousedown_cell']>;\n onMouseUpCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseup_cell']>;\n onSelectedCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['selected_cell']>;\n onSelectedClear?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['selected_clear']>;\n onKeyDown?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['keydown']>;\n onMouseEnterTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_table']>;\n onMouseLeaveTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_table']>;\n onMouseDownTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousedown_table']>;\n onMouseMoveCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousemove_cell']>;\n onMousemoveTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousemove_table']>;\n onMouseEnterCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_cell']>;\n onMouseLeaveCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_cell']>;\n onContextMenuCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['contextmenu_cell']>;\n onResizeColumn?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_column']>;\n onResizeColumnEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_column_end']>;\n onResizeRow?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_row']>;\n onResizeRowEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_row_end']>;\n onChangeHeaderPositionStart?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position_start']>;\n onChangeHeaderPosition?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position']>;\n onChangeHeaderPositionFail?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position_fail']>;\n onSortClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['sort_click']>;\n\n onAfterSort?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['after_sort']>;\n onFreezeClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['freeze_click']>;\n onScroll?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll']>;\n onScrollVerticalEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll_vertical_end']>;\n onScrollHorizontalEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll_horizontal_end']>;\n onDropdownMenuClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_menu_click']>;\n onMouseOverChartSymbol?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseover_chart_symbol']>;\n onDragSelectEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drag_select_end']>;\n onCopyData?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['copy_data']>;\n onDropdownIconClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_icon_click']>;\n onDropdownMenuClear?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_menu_clear']>;\n\n onTreeHierarchyStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['tree_hierarchy_state_change']>;\n\n onShowMenu?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['show_menu']>;\n onHideMenu?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['hide_menu']>;\n\n onIconClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['icon_click']>;\n\n onLegendItemClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_click']>;\n onLegendItemHover?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_hover']>;\n onLegendItemUnHover?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_unHover']>;\n onLegendChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_change']>;\n\n onMouseEnterAxis?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_axis']>;\n onMouseLeaveAxis?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_axis']>;\n\n onCheckboxStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['checkbox_state_change']>;\n onRadioStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['radio_state_change']>;\n onSwitchStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['switch_state_change']>;\n onAfterRender?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['after_render']>;\n onInitialized?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['initialized']>;\n onChangeCellValue?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_cell_value']>;\n onDragFillHandleEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drag_fill_handle_end']>;\n onMousedownFillHandle?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousedown_fill_handle']>;\n onDblclickFillHandle?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dblclick_fill_handle']>;\n\n // pivot table only\n onPivotSortClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['pivot_sort_click']>;\n onDrillMenuClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drillmenu_click']>;\n\n // pivot chart only\n onVChartEventType?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['vchart_event_type']>;\n\n onChangCellValue?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_cell_value']>;\n onEmptyTipClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['empty_tip_click']>;\n onEmptyTipDblClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['empty_tip_dblclick']>;\n onButtonClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['button_click']>;\n}\n\nexport const TABLE_EVENTS = {\n onClickCell: EVENT_TYPE.CLICK_CELL,\n onDblClickCell: EVENT_TYPE.DBLCLICK_CELL,\n onMouseDownCell: EVENT_TYPE.MOUSEDOWN_CELL,\n onMouseUpCell: EVENT_TYPE.MOUSEUP_CELL,\n onSelectedCell: EVENT_TYPE.SELECTED_CELL,\n onSelectedClear: EVENT_TYPE.SELECTED_CLEAR,\n onKeyDown: EVENT_TYPE.KEYDOWN,\n onMouseEnterTable: EVENT_TYPE.MOUSEENTER_TABLE,\n onMouseLeaveTable: EVENT_TYPE.MOUSELEAVE_TABLE,\n onMouseDownTable: EVENT_TYPE.MOUSEDOWN_TABLE,\n onMouseMoveCell: EVENT_TYPE.MOUSEMOVE_CELL,\n onMouseMoveTable: EVENT_TYPE.MOUSEMOVE_TABLE,\n onMouseEnterCell: EVENT_TYPE.MOUSEENTER_CELL,\n onMouseLeaveCell: EVENT_TYPE.MOUSELEAVE_CELL,\n onContextMenuCell: EVENT_TYPE.CONTEXTMENU_CELL,\n onResizeColumn: EVENT_TYPE.RESIZE_COLUMN,\n onResizeColumnEnd: EVENT_TYPE.RESIZE_COLUMN_END,\n onResizeRow: EVENT_TYPE.RESIZE_ROW,\n onResizeRowEnd: EVENT_TYPE.RESIZE_ROW_END,\n onChangeHeaderPositionStart: EVENT_TYPE.CHANGE_HEADER_POSITION_START,\n onChangeHeaderPosition: EVENT_TYPE.CHANGE_HEADER_POSITION,\n onChangeHeaderPositionFail: EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL,\n onSortClick: EVENT_TYPE.SORT_CLICK,\n\n onAfterSort: EVENT_TYPE.AFTER_SORT,\n onFreezeClick: EVENT_TYPE.FREEZE_CLICK,\n onScroll: EVENT_TYPE.SCROLL,\n onScrollHorizontalEnd: EVENT_TYPE.SCROLL_HORIZONTAL_END,\n onScrollVerticalEnd: EVENT_TYPE.SCROLL_VERTICAL_END,\n onDropdownMenuClick: EVENT_TYPE.DROPDOWN_MENU_CLICK,\n onMouseOverChartSymbol: EVENT_TYPE.MOUSEOVER_CHART_SYMBOL,\n onDragSelectEnd: EVENT_TYPE.DRAG_SELECT_END,\n onCopyData: EVENT_TYPE.COPY_DATA,\n onDropdownIconClick: EVENT_TYPE.DROPDOWN_ICON_CLICK,\n onDropdownMenuClear: EVENT_TYPE.DROPDOWN_MENU_CLEAR,\n\n onTreeHierarchyStateChange: EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE,\n\n onShowMenu: EVENT_TYPE.SHOW_MENU,\n onHideMenu: EVENT_TYPE.HIDE_MENU,\n\n onIconClick: EVENT_TYPE.ICON_CLICK,\n\n onLegendItemClick: EVENT_TYPE.LEGEND_ITEM_CLICK,\n onLegendItemHover: EVENT_TYPE.LEGEND_ITEM_HOVER,\n onLegendItemUnHover: EVENT_TYPE.LEGEND_ITEM_UNHOVER,\n onLegendChange: EVENT_TYPE.LEGEND_CHANGE,\n\n onMouseEnterAxis: EVENT_TYPE.MOUSEENTER_AXIS,\n onMouseLeaveAxis: EVENT_TYPE.MOUSELEAVE_AXIS,\n\n onCheckboxStateChange: EVENT_TYPE.CHECKBOX_STATE_CHANGE,\n onRadioStateChange: EVENT_TYPE.RADIO_STATE_CHANGE,\n onSwitchStateChange: EVENT_TYPE.SWITCH_STATE_CHANGE,\n onAfterRender: EVENT_TYPE.AFTER_RENDER,\n onInitialized: EVENT_TYPE.INITIALIZED,\n onChangeCellValue: EVENT_TYPE.CHANGE_CELL_VALUE,\n onDragFillHandleEnd: EVENT_TYPE.DRAG_FILL_HANDLE_END,\n onMousedownFillHandle: EVENT_TYPE.MOUSEDOWN_FILL_HANDLE,\n onDblclickFillHandle: EVENT_TYPE.DBLCLICK_FILL_HANDLE,\n\n // pivot table only\n onPivotSortClick: EVENT_TYPE.PIVOT_SORT_CLICK,\n onDrillMenuClick: EVENT_TYPE.DRILLMENU_CLICK,\n\n // pivot chart only\n onVChartEventType: EVENT_TYPE.VCHART_EVENT_TYPE,\n\n onChangCellValue: EVENT_TYPE.CHANGE_CELL_VALUE,\n onEmptyTipClick: EVENT_TYPE.EMPTY_TIP_CLICK,\n onEmptyTipDblClick: EVENT_TYPE.EMPTY_TIP_DBLCLICK,\n onButtonClick: EVENT_TYPE.BUTTON_CLICK\n};\n\nexport const TABLE_EVENTS_KEYS = Object.keys(TABLE_EVENTS);\n\nexport const findEventProps = <T extends EventsProps>(\n props: T,\n supportedEvents: Record<string, string> = TABLE_EVENTS\n): EventsProps => {\n const result: EventsProps = {};\n\n Object.keys(props).forEach(key => {\n if (supportedEvents[key] && props[key as keyof EventsProps]) {\n result[key as keyof EventsProps] = props[key as keyof EventsProps] as any;\n }\n });\n\n return result;\n};\n\nexport const bindEventsToTable = <T extends EventsProps>(\n table: IVTable,\n newProps?: T | null,\n prevProps?: T | null,\n supportedEvents: Record<string, string> = TABLE_EVENTS\n) => {\n if ((!newProps && !prevProps) || !table) {\n return false;\n }\n\n const prevEventProps: EventsProps = prevProps ? findEventProps(prevProps, supportedEvents) : null;\n const newEventProps: EventsProps = newProps ? findEventProps(newProps, supportedEvents) : null;\n\n if (prevEventProps) {\n Object.keys(prevEventProps).forEach(eventKey => {\n if (\n !newEventProps ||\n !newEventProps[eventKey as keyof EventsProps] ||\n newEventProps[eventKey as keyof EventsProps] !== prevEventProps[eventKey as keyof EventsProps]\n ) {\n table.off(supportedEvents[eventKey], prevProps[eventKey as keyof EventsProps] as any);\n }\n });\n }\n\n if (newEventProps) {\n Object.keys(newEventProps).forEach(eventKey => {\n if (\n !prevEventProps ||\n !prevEventProps[eventKey as keyof EventsProps] ||\n prevEventProps[eventKey as keyof EventsProps] !== newEventProps[eventKey as keyof EventsProps]\n ) {\n table.on(\n supportedEvents[eventKey] as keyof TYPES.TableEventHandlersEventArgumentMap,\n newEventProps[eventKey as keyof EventsProps] as any\n );\n }\n });\n }\n\n return true;\n};\n"]}
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.16.3-alpha.3";
4
+ export declare const version = "1.17.0";
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.16.3-alpha.3";
7
+ export const version = "1.17.0";
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,gBAAgB,CAAC","file":"index.js","sourcesContent":["export * from './tables';\nexport * from './table-components';\nexport * from './components';\n\nexport const version = \"1.16.3-alpha.3\";\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.17.0\";\n"]}
@@ -108,7 +108,9 @@ export class VTableReactAttributePlugin extends ReactAttributePlugin {
108
108
  }
109
109
 
110
110
  function checkFrozenContainer(graphic) {
111
- const {col: col, row: row, stage: stage} = getTargetGroup(graphic);
111
+ const targetGroup = getTargetGroup(graphic);
112
+ if (!targetGroup) return null;
113
+ const {col: col, row: row, stage: stage} = targetGroup;
112
114
  let {container: container} = graphic.attribute.react;
113
115
  const {table: table} = stage;
114
116
  return container === table.bodyDomContainer && col < table.frozenColCount && row >= table.rowCount - table.bottomFrozenRowCount ? container = table.bottomFrozenBodyDomContainer : container === table.bodyDomContainer && col >= table.colCount - table.rightFrozenColCount && row >= table.rowCount - table.bottomFrozenRowCount ? container = table.rightFrozenBottomDomContainer : container === table.bodyDomContainer && row >= table.rowCount - table.bottomFrozenRowCount ? container = table.bottomFrozenBodyDomContainer : container === table.bodyDomContainer && col < table.frozenColCount ? container = table.frozenBodyDomContainer : container === table.bodyDomContainer && col >= table.colCount - table.rightFrozenColCount ? container = table.rightFrozenBodyDomContainer : container === table.headerDomContainer && col < table.frozenColCount ? container = table.frozenHeaderDomContainer : container === table.headerDomContainer && col >= table.colCount - table.rightFrozenColCount && (container = table.rightFrozenHeaderDomContainer),
@@ -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 { col, row, stage } = getTargetGroup(graphic);\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';\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/react-vtable",
3
- "version": "1.16.3-alpha.3",
3
+ "version": "1.17.0",
4
4
  "description": "The react version of VTable",
5
5
  "keywords": [
6
6
  "react",
@@ -43,10 +43,10 @@
43
43
  "access": "public"
44
44
  },
45
45
  "dependencies": {
46
- "@visactor/vtable": "1.16.3-alpha.3",
47
46
  "@visactor/vutils": "~0.19.1",
48
47
  "react-is": "^18.2.0",
49
- "react-reconciler": "0.29.2"
48
+ "react-reconciler": "0.29.2",
49
+ "@visactor/vtable": "1.17.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@visactor/vchart": "1.13.3-alpha.2",