@visactor/openinula-vtable 0.21.3-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.
Files changed (118) hide show
  1. package/README.md +93 -0
  2. package/cjs/components/base-component.d.ts +9 -0
  3. package/cjs/components/base-component.js +54 -0
  4. package/cjs/components/base-component.js.map +1 -0
  5. package/cjs/components/component/menu.d.ts +9 -0
  6. package/cjs/components/component/menu.js +10 -0
  7. package/cjs/components/component/menu.js.map +1 -0
  8. package/cjs/components/component/tooltip.d.ts +7 -0
  9. package/cjs/components/component/tooltip.js +10 -0
  10. package/cjs/components/component/tooltip.js.map +1 -0
  11. package/cjs/components/index.js +79 -0
  12. package/cjs/components/index.js.map +1 -0
  13. package/cjs/components/list/list-column.d.ts +4 -0
  14. package/cjs/components/list/list-column.js +10 -0
  15. package/cjs/components/list/list-column.js.map +1 -0
  16. package/cjs/components/pivot/pivot-corner.d.ts +4 -0
  17. package/cjs/components/pivot/pivot-corner.js +10 -0
  18. package/cjs/components/pivot/pivot-corner.js.map +1 -0
  19. package/cjs/components/pivot/pivot-dimension.d.ts +6 -0
  20. package/cjs/components/pivot/pivot-dimension.js +11 -0
  21. package/cjs/components/pivot/pivot-dimension.js.map +1 -0
  22. package/cjs/components/pivot/pivot-header-title.d.ts +5 -0
  23. package/cjs/components/pivot/pivot-header-title.js +11 -0
  24. package/cjs/components/pivot/pivot-header-title.js.map +1 -0
  25. package/cjs/components/pivot/pivot-indicator.d.ts +4 -0
  26. package/cjs/components/pivot/pivot-indicator.js +10 -0
  27. package/cjs/components/pivot/pivot-indicator.js.map +1 -0
  28. package/cjs/constants.d.ts +1 -0
  29. package/cjs/constants.js +6 -0
  30. package/cjs/constants.js.map +1 -0
  31. package/cjs/containers/withContainer.js +64 -0
  32. package/cjs/containers/withContainer.js.map +1 -0
  33. package/cjs/context/table.d.ts +13 -0
  34. package/cjs/context/table.js +25 -0
  35. package/cjs/context/table.js.map +1 -0
  36. package/cjs/eventsUtils.d.ts +88 -0
  37. package/cjs/eventsUtils.js +72 -0
  38. package/cjs/eventsUtils.js.map +1 -0
  39. package/cjs/index.d.ts +5 -0
  40. package/cjs/index.js +38 -0
  41. package/cjs/index.js.map +1 -0
  42. package/cjs/tables/base-table.d.ts +21 -0
  43. package/cjs/tables/base-table.js +127 -0
  44. package/cjs/tables/base-table.js.map +1 -0
  45. package/cjs/tables/index.d.ts +3 -0
  46. package/cjs/tables/index.js +38 -0
  47. package/cjs/tables/index.js.map +1 -0
  48. package/cjs/tables/list-table.d.ts +9 -0
  49. package/cjs/tables/list-table.js +10 -0
  50. package/cjs/tables/list-table.js.map +1 -0
  51. package/cjs/tables/pivot-chart.d.ts +10 -0
  52. package/cjs/tables/pivot-chart.js +40 -0
  53. package/cjs/tables/pivot-chart.js.map +1 -0
  54. package/cjs/tables/pivot-table.d.ts +9 -0
  55. package/cjs/tables/pivot-table.js +10 -0
  56. package/cjs/tables/pivot-table.js.map +1 -0
  57. package/cjs/util.d.ts +9 -0
  58. package/cjs/util.js +75 -0
  59. package/cjs/util.js.map +1 -0
  60. package/es/components/base-component.d.ts +9 -0
  61. package/es/components/base-component.js +25 -0
  62. package/es/components/base-component.js.map +1 -0
  63. package/es/components/component/menu.d.ts +9 -0
  64. package/es/components/component/menu.js +4 -0
  65. package/es/components/component/menu.js.map +1 -0
  66. package/es/components/component/tooltip.d.ts +7 -0
  67. package/es/components/component/tooltip.js +4 -0
  68. package/es/components/component/tooltip.js.map +1 -0
  69. package/es/components/index.js +14 -0
  70. package/es/components/index.js.map +1 -0
  71. package/es/components/list/list-column.d.ts +4 -0
  72. package/es/components/list/list-column.js +4 -0
  73. package/es/components/list/list-column.js.map +1 -0
  74. package/es/components/pivot/pivot-corner.d.ts +4 -0
  75. package/es/components/pivot/pivot-corner.js +4 -0
  76. package/es/components/pivot/pivot-corner.js.map +1 -0
  77. package/es/components/pivot/pivot-dimension.d.ts +6 -0
  78. package/es/components/pivot/pivot-dimension.js +6 -0
  79. package/es/components/pivot/pivot-dimension.js.map +1 -0
  80. package/es/components/pivot/pivot-header-title.d.ts +5 -0
  81. package/es/components/pivot/pivot-header-title.js +6 -0
  82. package/es/components/pivot/pivot-header-title.js.map +1 -0
  83. package/es/components/pivot/pivot-indicator.d.ts +4 -0
  84. package/es/components/pivot/pivot-indicator.js +4 -0
  85. package/es/components/pivot/pivot-indicator.js.map +1 -0
  86. package/es/constants.d.ts +1 -0
  87. package/es/constants.js +2 -0
  88. package/es/constants.js.map +1 -0
  89. package/es/containers/withContainer.js +33 -0
  90. package/es/containers/withContainer.js.map +1 -0
  91. package/es/context/table.d.ts +13 -0
  92. package/es/context/table.js +16 -0
  93. package/es/context/table.js.map +1 -0
  94. package/es/eventsUtils.d.ts +88 -0
  95. package/es/eventsUtils.js +65 -0
  96. package/es/eventsUtils.js.map +1 -0
  97. package/es/index.d.ts +5 -0
  98. package/es/index.js +10 -0
  99. package/es/index.js.map +1 -0
  100. package/es/tables/base-table.d.ts +21 -0
  101. package/es/tables/base-table.js +103 -0
  102. package/es/tables/base-table.js.map +1 -0
  103. package/es/tables/index.d.ts +3 -0
  104. package/es/tables/index.js +6 -0
  105. package/es/tables/index.js.map +1 -0
  106. package/es/tables/list-table.d.ts +9 -0
  107. package/es/tables/list-table.js +4 -0
  108. package/es/tables/list-table.js.map +1 -0
  109. package/es/tables/pivot-chart.d.ts +10 -0
  110. package/es/tables/pivot-chart.js +10 -0
  111. package/es/tables/pivot-chart.js.map +1 -0
  112. package/es/tables/pivot-table.d.ts +9 -0
  113. package/es/tables/pivot-table.js +4 -0
  114. package/es/tables/pivot-table.js.map +1 -0
  115. package/es/util.d.ts +9 -0
  116. package/es/util.js +33 -0
  117. package/es/util.js.map +1 -0
  118. package/package.json +93 -0
package/cjs/util.js ADDED
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
+ void 0 === k2 && (k2 = k);
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
+ enumerable: !0,
8
+ get: function() {
9
+ return m[k];
10
+ }
11
+ }), Object.defineProperty(o, k2, desc);
12
+ } : function(o, m, k, k2) {
13
+ void 0 === k2 && (k2 = k), o[k2] = m[k];
14
+ }), __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
15
+ Object.defineProperty(o, "default", {
16
+ enumerable: !0,
17
+ value: v
18
+ });
19
+ } : function(o, v) {
20
+ o.default = v;
21
+ }), __importStar = this && this.__importStar || function(mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
25
+ return __setModuleDefault(result, mod), result;
26
+ };
27
+
28
+ Object.defineProperty(exports, "__esModule", {
29
+ value: !0
30
+ }), exports.findChildByType = exports.findAllByType = exports.toArray = exports.typeOfComponent = exports.getDisplayName = exports.uid = void 0;
31
+
32
+ const vutils_1 = require("@visactor/vutils"), openinula_1 = __importStar(require("openinula"));
33
+
34
+ let id = 0;
35
+
36
+ const uid = prefix => prefix ? `${prefix}-${id++}` : "" + id++;
37
+
38
+ exports.uid = uid;
39
+
40
+ const getDisplayName = Comp => "string" == typeof Comp ? Comp : Comp ? Comp.displayName || Comp.name : "";
41
+
42
+ exports.getDisplayName = getDisplayName;
43
+
44
+ const typeOfComponent = (component, customTypeKey = "__TYPE") => (null == component ? void 0 : component.props) && component.props[customTypeKey] || "string" == typeof (null == component ? void 0 : component.type) && component.type || (null == component ? void 0 : component.type) && "symbol" == typeof component.type && "Symbol(react.fragment)" === component.type.toString() && "react.fragment" || "function" == typeof (null == component ? void 0 : component.type) && component.type || "object" == typeof (null == component ? void 0 : component.type) && "Symbol(react.forward_ref)" === component.type.$$typeof.toString() && "react.forward_ref" || "string" == typeof component && "string" || "function" == typeof component && "function" || void 0;
45
+
46
+ exports.typeOfComponent = typeOfComponent;
47
+
48
+ const toArray = children => {
49
+ let result = [];
50
+ return openinula_1.default.Children.forEach(children, (child => {
51
+ (0, vutils_1.isNil)(child) || ((0, openinula_1.isFragment)(child) ? result = result.concat((0,
52
+ exports.toArray)(child.props.children)) : result.push(child));
53
+ })), result;
54
+ };
55
+
56
+ exports.toArray = toArray;
57
+
58
+ const findAllByType = (children, type) => {
59
+ const result = [];
60
+ let types = [];
61
+ return types = (0, vutils_1.isArray)(type) ? type.map((t => (0, exports.getDisplayName)(t))) : [ (0,
62
+ exports.getDisplayName)(type) ], (0, exports.toArray)(children).forEach((child => {
63
+ const childType = (0, exports.getDisplayName)((0, exports.typeOfComponent)(child));
64
+ -1 !== types.indexOf(childType) && result.push(child);
65
+ })), result;
66
+ };
67
+
68
+ exports.findAllByType = findAllByType;
69
+
70
+ const findChildByType = (children, type) => {
71
+ const result = (0, exports.findAllByType)(children, type);
72
+ return null == result ? void 0 : result[0];
73
+ };
74
+
75
+ exports.findChildByType = findChildByType;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { isNil, isArray, isString, isFunction, isPlainObject } from '@visactor/vutils';\nimport type { InulaElement, InulaPortal } from 'openinula';\nimport Inula, { isFragment } from 'openinula';\n\ntype InulaNode = InulaElement | string | number | Iterable<InulaNode> | InulaPortal | boolean | null | undefined;\n\nlet id = 0;\n\nexport const uid = (prefix?: string) => {\n if (prefix) {\n return `${prefix}-${id++}`;\n }\n\n return `${id++}`;\n};\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport const getDisplayName = (Comp: any) => {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name;\n};\n\nexport const typeOfComponent = (component: any, customTypeKey = '__TYPE'): string => {\n return (\n (component?.props && component.props[customTypeKey]) ||\n (typeof component?.type === 'string' && component.type) ||\n (component?.type &&\n typeof component.type === 'symbol' &&\n component.type.toString() === 'Symbol(react.fragment)' &&\n 'react.fragment') ||\n (typeof component?.type === 'function' && component.type) ||\n (typeof component?.type === 'object' &&\n component.type.$$typeof.toString() === 'Symbol(react.forward_ref)' &&\n 'react.forward_ref') ||\n (typeof component === 'string' && 'string') ||\n (typeof component === 'function' && 'function') ||\n undefined\n );\n};\n\nexport const toArray = <T = InulaNode, TC = InulaNode>(children: T): TC[] => {\n let result: TC[] = [];\n\n Inula.Children.forEach(children, child => {\n if (isNil(child)) {\n return;\n }\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child as unknown as TC);\n }\n });\n\n return result;\n};\n\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\nexport const findAllByType = <T extends InulaNode, TC = unknown>(children: InulaNode, type: TC | TC[]): T[] => {\n const result: T[] = [];\n let types: string[] = [];\n\n if (isArray(type)) {\n types = type.map(t => getDisplayName(t));\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(child => {\n const childType = getDisplayName(typeOfComponent(child));\n\n if (types.indexOf(childType) !== -1) {\n result.push(child as T);\n }\n });\n\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\nexport const findChildByType = <T extends InulaNode, TC = unknown>(children: InulaNode, type: TC): T => {\n const result = findAllByType<T, TC>(children, type);\n\n return result?.[0];\n};\n"]}
@@ -0,0 +1,9 @@
1
+ export interface BaseComponentProps {
2
+ id?: string | number;
3
+ }
4
+ type ComponentProps = BaseComponentProps & {
5
+ updateId?: number;
6
+ componentId?: number;
7
+ };
8
+ export declare const createComponent: <T extends ComponentProps>(componentName: string, optionName: string, supportedEvents?: Record<string, string> | null, isSingle?: boolean) => React.FC<T>;
9
+ export {};
@@ -0,0 +1,25 @@
1
+ import React, { useContext, useEffect } from "openinula";
2
+
3
+ import { pickWithout } from "@visactor/vutils";
4
+
5
+ import RootTableContext from "../context/table";
6
+
7
+ import { bindEventsToTable } from "../eventsUtils";
8
+
9
+ export const createComponent = (componentName, optionName, supportedEvents, isSingle) => {
10
+ const ignoreKeys = [ "id", "updateId", "componentId" ], notOptionKeys = supportedEvents ? Object.keys(supportedEvents).concat(ignoreKeys) : ignoreKeys, Comp = props => {
11
+ const context = useContext(RootTableContext), eventsBinded = React.useRef(null), updateId = React.useRef(props.updateId);
12
+ if (props.updateId !== updateId.current) {
13
+ updateId.current = props.updateId;
14
+ !!supportedEvents && bindEventsToTable(context.table, props, eventsBinded.current, supportedEvents) && (eventsBinded.current = props);
15
+ }
16
+ return useEffect((() => () => {
17
+ supportedEvents && bindEventsToTable(context.table, null, eventsBinded.current, supportedEvents);
18
+ }), []), null;
19
+ };
20
+ return Comp.displayName = componentName, Comp.parseOption = props => ({
21
+ option: pickWithout(props, notOptionKeys),
22
+ optionName: optionName,
23
+ isSingle: isSingle
24
+ }), Comp;
25
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/base-component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAkB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/D,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,aAAqB,EACrB,UAAkB,EAClB,eAA+C,EAC/C,QAAkB,EAClB,EAAE;IACF,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAErG,MAAM,IAAI,GAAgB,CAAC,KAAQ,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAG7C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAI,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAS,KAAK,CAAC,QAAQ,CAAC,CAAC;QAGtD,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE;YAEvC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;YAGlC,MAAM,mBAAmB,GAAG,eAAe;gBACzC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC;gBAChF,CAAC,CAAC,KAAK,CAAC;YACV,IAAI,mBAAmB,EAAE;gBACvB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;aAC9B;SAQF;QAED,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,GAAG,EAAE;gBACV,IAAI,eAAe,EAAE;oBACnB,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;iBAC/E;YAEH,CAAC,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;IAEhC,IAAY,CAAC,WAAW,GAAG,CAAC,KAAsD,EAAE,EAAE;QACrF,MAAM,kBAAkB,GAAe,WAAW,CAAI,KAAK,EAAE,aAAa,CAAC,CAAC;QAE5E,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,UAAU;YACV,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","file":"base-component.js","sourcesContent":["import React, { useContext, useEffect } from 'openinula';\nimport { isEqual, isNil, pickWithout } from '@visactor/vutils';\n\nimport type { TableContextType } from '../context/table';\nimport RootTableContext from '../context/table';\nimport { bindEventsToTable } from '../eventsUtils';\nimport { uid } from '../util';\n\nexport interface BaseComponentProps {\n id?: string | number;\n}\n\ntype ComponentProps = BaseComponentProps & { updateId?: number; componentId?: number };\n\nexport const createComponent = <T extends ComponentProps>(\n componentName: string,\n optionName: string,\n supportedEvents?: Record<string, string> | null,\n isSingle?: boolean\n) => {\n const ignoreKeys = ['id', 'updateId', 'componentId'];\n const notOptionKeys = supportedEvents ? Object.keys(supportedEvents).concat(ignoreKeys) : ignoreKeys;\n\n const Comp: React.FC<T> = (props: T) => {\n const context = useContext(RootTableContext);\n // const id = React.useRef<string | number>(isNil(props.id) ? uid(optionName) : props.id);\n\n const eventsBinded = React.useRef<T>(null);\n const updateId = React.useRef<number>(props.updateId);\n // const componentOption = React.useRef<Partial<T>>();\n\n if (props.updateId !== updateId.current) {\n // update triggered by table when table is rendered\n updateId.current = props.updateId;\n\n // rebind events after table render\n const hasPrevEventsBinded = supportedEvents\n ? bindEventsToTable(context.table, props, eventsBinded.current, supportedEvents)\n : false;\n if (hasPrevEventsBinded) {\n eventsBinded.current = props;\n }\n // } else {\n // const newComponentOption: Partial<T> = pickWithout<T>(props, notOptionKeys);\n\n // if (!isEqual(newComponentOption, componentOption.current)) {\n // componentOption.current = newComponentOption;\n // updateToContext(context, id.current, optionName, isSingle, newComponentOption);\n // }\n }\n\n useEffect(() => {\n return () => {\n if (supportedEvents) {\n bindEventsToTable(context.table, null, eventsBinded.current, supportedEvents);\n }\n // deleteToContext(context, id.current, optionName, isSingle);\n };\n }, []);\n\n return null;\n };\n\n Comp.displayName = componentName;\n\n (Comp as any).parseOption = (props: T & { updateId?: number; componentId?: string }) => {\n const newComponentOption: Partial<T> = pickWithout<T>(props, notOptionKeys);\n\n return {\n option: newComponentOption,\n optionName,\n isSingle\n };\n };\n\n return Comp;\n};\n\n// const updateToContext = (\n// context: TableContextType,\n// id: string | number,\n// optionName: string,\n// isSingle: boolean,\n// props: Partial<ComponentProps>\n// ) => {\n// if (!context.optionFromChildren) {\n// return;\n// }\n\n// if (isSingle) {\n// context.optionFromChildren[optionName] = { ...props };\n// } else {\n// if (!context.optionFromChildren[optionName]) {\n// context.optionFromChildren[optionName] = [];\n// }\n\n// const comps = context.optionFromChildren[optionName];\n// const index = comps.findIndex((entry: any) => entry.id === id);\n\n// if (index >= 0) {\n// comps[index] = {\n// id,\n// ...props\n// };\n// } else {\n// context.optionFromChildren[optionName].push({\n// id,\n// ...props\n// });\n// }\n// }\n// context.isChildrenUpdated = true;\n// };\n\n// const deleteToContext = (context: TableContextType, id: string | number, optionName: string, isSingle: boolean) => {\n// if (!context.optionFromChildren) {\n// return;\n// }\n\n// if (isSingle) {\n// context.optionFromChildren[optionName] = null;\n// } else {\n// const comps = context.optionFromChildren[optionName] ?? [];\n// const index = comps.findIndex((entry: any) => entry.id === id);\n\n// if (index >= 0) {\n// const newComps = comps.slice(0, index - 1).concat(comps.slice(index + 1));\n\n// context.optionFromChildren[optionName] = newComps;\n// context.isChildrenUpdated = true;\n// }\n// }\n// };\n"]}
@@ -0,0 +1,9 @@
1
+ import type { BaseComponentProps } from '../base-component';
2
+ import type { TYPES } from '@visactor/vtable';
3
+ export type MenuProps = {
4
+ renderMode?: 'canvas' | 'html';
5
+ defaultHeaderMenuItems?: TYPES.MenuListItem[];
6
+ contextMenuItems?: TYPES.MenuListItem[] | ((field: string, row: number, col: number) => TYPES.MenuListItem[]);
7
+ dropDownMenuHighlight?: TYPES.DropDownMenuHighlightInfo[];
8
+ } & BaseComponentProps;
9
+ export declare const Menu: React.FC<T>;
@@ -0,0 +1,4 @@
1
+ import { createComponent } from "../base-component";
2
+
3
+ export const Menu = createComponent("Menu", "menu", void 0, !0);
4
+ //# sourceMappingURL=menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/component/menu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAcpD,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAY,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC","file":"menu.js","sourcesContent":["import type { BaseComponentProps } from '../base-component';\nimport { createComponent } from '../base-component';\nimport type { TYPES } from '@visactor/vtable';\n\nexport type MenuProps = {\n /** 代替原来的option.menuType html目前实现较完整 先默认html渲染方式*/\n renderMode?: 'canvas' | 'html';\n /** 内置下拉菜单的全局设置项 目前只针对基本表格有效 会对每个表头单元格开启默认的下拉菜单功能。代替原来的option.dropDownMenu*/\n defaultHeaderMenuItems?: TYPES.MenuListItem[];\n /** 右键菜单。代替原来的option.contextmenu */\n contextMenuItems?: TYPES.MenuListItem[] | ((field: string, row: number, col: number) => TYPES.MenuListItem[]);\n /** 设置选中状态的菜单。代替原来的option.dropDownMenuHighlight */\n dropDownMenuHighlight?: TYPES.DropDownMenuHighlightInfo[];\n} & BaseComponentProps;\n\nexport const Menu = createComponent<MenuProps>('Menu', 'menu', undefined, true);\n"]}
@@ -0,0 +1,7 @@
1
+ import type { BaseComponentProps } from '../base-component';
2
+ export type TooltipProps = {
3
+ renderMode?: 'html';
4
+ isShowOverflowTextTooltip?: boolean;
5
+ confine?: boolean;
6
+ } & BaseComponentProps;
7
+ export declare const Tooltip: React.FC<T>;
@@ -0,0 +1,4 @@
1
+ import { createComponent } from "../base-component";
2
+
3
+ export const Tooltip = createComponent("Tooltip", "tooltip", void 0, !0);
4
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/component/tooltip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAWpD,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAe,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC","file":"tooltip.js","sourcesContent":["import type { BaseComponentProps } from '../base-component';\nimport { createComponent } from '../base-component';\n\nexport type TooltipProps = {\n /** html目前实现较完整 先默认html渲染方式 */\n renderMode?: 'html'; // 目前暂不支持canvas方案\n /** 代替原来hover:isShowTooltip配置 暂时需要将renderMode配置为html才能显示,canvas的还未开发*/\n isShowOverflowTextTooltip?: boolean;\n /** 是否将 tooltip 框限制在画布区域内,默认开启。针对renderMode:\"html\"有效 */\n confine?: boolean;\n} & BaseComponentProps;\n\nexport const Tooltip = createComponent<TooltipProps>('Tooltip', 'tooltip', undefined, true);\n"]}
@@ -0,0 +1,14 @@
1
+ export { ListColumn } from "./list/list-column";
2
+
3
+ export { PivotColumnDimension, PivotRowDimension } from "./pivot/pivot-dimension";
4
+
5
+ export { PivotIndicator } from "./pivot/pivot-indicator";
6
+
7
+ export { PivotColumnHeaderTitle, PivotRowHeaderTitle } from "./pivot/pivot-header-title";
8
+
9
+ export { PivotCorner } from "./pivot/pivot-corner";
10
+
11
+ export { Menu } from "./component/menu";
12
+
13
+ export { Tooltip } from "./component/tooltip";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC","file":"index.js","sourcesContent":["import type React from 'openinula';\nexport { ListColumn } from './list/list-column';\nexport { PivotColumnDimension, PivotRowDimension } from './pivot/pivot-dimension';\nexport { PivotIndicator } from './pivot/pivot-indicator';\nexport { PivotColumnHeaderTitle, PivotRowHeaderTitle } from './pivot/pivot-header-title';\nexport { PivotCorner } from './pivot/pivot-corner';\nexport { Menu } from './component/menu';\nexport { Tooltip } from './component/tooltip';\n\ntype Props = { updateId?: number };\n\nexport interface IMarkElement extends React.ReactElement<Props, React.JSXElementConstructor<Props>> {\n id: string | number;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { BaseComponentProps } from '../base-component';
2
+ import type { ColumnDefine } from '@visactor/vtable';
3
+ export type ListColumnProps = ColumnDefine & BaseComponentProps;
4
+ export declare const ListColumn: React.FC<T>;
@@ -0,0 +1,4 @@
1
+ import { createComponent } from "../base-component";
2
+
3
+ export const ListColumn = createComponent("ListColumn", "columns");
4
+ //# sourceMappingURL=list-column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/list/list-column.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAkB,YAAY,EAAE,SAAS,CAAC,CAAC","file":"list-column.js","sourcesContent":["import type { BaseComponentProps } from '../base-component';\nimport { createComponent } from '../base-component';\nimport type { ColumnDefine } from '@visactor/vtable';\n\nexport type ListColumnProps = ColumnDefine & BaseComponentProps;\n\nexport const ListColumn = createComponent<ListColumnProps>('ListColumn', 'columns');\n"]}
@@ -0,0 +1,4 @@
1
+ import type { BaseComponentProps } from '../base-component';
2
+ import type { ICornerDefine } from '@visactor/vtable';
3
+ export type PivotCornerProps = ICornerDefine & BaseComponentProps;
4
+ export declare const PivotCorner: React.FC<T>;
@@ -0,0 +1,4 @@
1
+ import { createComponent } from "../base-component";
2
+
3
+ export const PivotCorner = createComponent("PivotCorner", "corner", void 0, !0);
4
+ //# sourceMappingURL=pivot-corner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/pivot/pivot-corner.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAmB,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC","file":"pivot-corner.js","sourcesContent":["import type { BaseComponentProps } from '../base-component';\nimport { createComponent } from '../base-component';\nimport type { ICornerDefine } from '@visactor/vtable';\n\nexport type PivotCornerProps = ICornerDefine & BaseComponentProps;\n\nexport const PivotCorner = createComponent<PivotCornerProps>('PivotCorner', 'corner', undefined, true);\n"]}
@@ -0,0 +1,6 @@
1
+ import type { BaseComponentProps } from '../base-component';
2
+ import type { IRowDimension, IColumnDimension } from '@visactor/vtable';
3
+ export type RowPivotDimensionProps = IRowDimension & BaseComponentProps;
4
+ export type ColumnPivotDimensionProps = IColumnDimension & BaseComponentProps;
5
+ export declare const PivotColumnDimension: React.FC<T>;
6
+ export declare const PivotRowDimension: React.FC<T>;
@@ -0,0 +1,6 @@
1
+ import { createComponent } from "../base-component";
2
+
3
+ export const PivotColumnDimension = createComponent("PivotColumnDimension", "columns");
4
+
5
+ export const PivotRowDimension = createComponent("PivotRowDimension", "rows");
6
+ //# sourceMappingURL=pivot-dimension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/pivot/pivot-dimension.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAA4B,sBAAsB,EAAE,SAAS,CAAC,CAAC;AAClH,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAyB,mBAAmB,EAAE,MAAM,CAAC,CAAC","file":"pivot-dimension.js","sourcesContent":["import type { BaseComponentProps } from '../base-component';\nimport { createComponent } from '../base-component';\nimport type { IRowDimension, IColumnDimension } from '@visactor/vtable';\n\nexport type RowPivotDimensionProps = IRowDimension & BaseComponentProps;\nexport type ColumnPivotDimensionProps = IColumnDimension & BaseComponentProps;\n\nexport const PivotColumnDimension = createComponent<ColumnPivotDimensionProps>('PivotColumnDimension', 'columns');\nexport const PivotRowDimension = createComponent<RowPivotDimensionProps>('PivotRowDimension', 'rows');\n"]}
@@ -0,0 +1,5 @@
1
+ import type { BaseComponentProps } from '../base-component';
2
+ import type { ITitleDefine } from '@visactor/vtable';
3
+ export type PivotHeaderTitleProps = ITitleDefine & BaseComponentProps;
4
+ export declare const PivotColumnHeaderTitle: React.FC<T>;
5
+ export declare const PivotRowHeaderTitle: React.FC<T>;
@@ -0,0 +1,6 @@
1
+ import { createComponent } from "../base-component";
2
+
3
+ export const PivotColumnHeaderTitle = createComponent("PivotColumnHeaderTitle", "columnHeaderTitle", void 0, !0);
4
+
5
+ export const PivotRowHeaderTitle = createComponent("PivotRowHeaderTitle", "rowHeaderTitle", void 0, !0);
6
+ //# sourceMappingURL=pivot-header-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/pivot/pivot-header-title.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CACnD,wBAAwB,EACxB,mBAAmB,EACnB,SAAS,EACT,IAAI,CACL,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAChD,qBAAqB,EACrB,gBAAgB,EAChB,SAAS,EACT,IAAI,CACL,CAAC","file":"pivot-header-title.js","sourcesContent":["import type { BaseComponentProps } from '../base-component';\nimport { createComponent } from '../base-component';\nimport type { ITitleDefine } from '@visactor/vtable';\n\nexport type PivotHeaderTitleProps = ITitleDefine & BaseComponentProps;\n\nexport const PivotColumnHeaderTitle = createComponent<PivotHeaderTitleProps>(\n 'PivotColumnHeaderTitle',\n 'columnHeaderTitle',\n undefined,\n true\n);\nexport const PivotRowHeaderTitle = createComponent<PivotHeaderTitleProps>(\n 'PivotRowHeaderTitle',\n 'rowHeaderTitle',\n undefined,\n true\n);\n"]}
@@ -0,0 +1,4 @@
1
+ import type { BaseComponentProps } from '../base-component';
2
+ import type { IIndicator } from '@visactor/vtable';
3
+ export type PivotIndicatorProps = IIndicator & BaseComponentProps;
4
+ export declare const PivotIndicator: React.FC<T>;
@@ -0,0 +1,4 @@
1
+ import { createComponent } from "../base-component";
2
+
3
+ export const PivotIndicator = createComponent("PivotIndicator", "indicators");
4
+ //# sourceMappingURL=pivot-indicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/pivot/pivot-indicator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAsB,gBAAgB,EAAE,YAAY,CAAC,CAAC","file":"pivot-indicator.js","sourcesContent":["import type { BaseComponentProps } from '../base-component';\nimport { createComponent } from '../base-component';\nimport type { IIndicator } from '@visactor/vtable';\n\nexport type PivotIndicatorProps = IIndicator & BaseComponentProps;\n\nexport const PivotIndicator = createComponent<PivotIndicatorProps>('PivotIndicator', 'indicators');\n"]}
@@ -0,0 +1 @@
1
+ export declare const REACT_PRIVATE_PROPS: string[];
@@ -0,0 +1,2 @@
1
+ export const REACT_PRIVATE_PROPS = [ "children", "hooks", "ref" ];
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC","file":"constants.js","sourcesContent":["export const REACT_PRIVATE_PROPS = ['children', 'hooks', 'ref'];\n"]}
@@ -0,0 +1,33 @@
1
+ var __rest = this && this.__rest || function(s, e) {
2
+ var t = {};
3
+ for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
4
+ if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
5
+ var i = 0;
6
+ for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
7
+ }
8
+ return t;
9
+ };
10
+
11
+ import React, { useRef, useState, useLayoutEffect } from "openinula";
12
+
13
+ export default function withContainer(Comp, name = "TableContainer", getProps) {
14
+ const Cls = React.forwardRef(((props, ref) => {
15
+ const container = useRef(), [inited, setInited] = useState(!1), {className: className, style: style, width: width} = props, options = __rest(props, [ "className", "style", "width" ]);
16
+ return useLayoutEffect((() => {
17
+ setInited(!0);
18
+ }), []), React.createElement("div", {
19
+ ref: container,
20
+ className: className,
21
+ style: Object.assign({
22
+ position: "relative",
23
+ height: props.height || "100%",
24
+ width: props.width || "100%"
25
+ }, style)
26
+ }, inited ? React.createElement(Comp, Object.assign({
27
+ ref: ref,
28
+ container: container.current
29
+ }, getProps ? getProps(options) : options)) : React.createElement(React.Fragment, null));
30
+ }));
31
+ return Cls.displayName = name || Comp.name, Cls;
32
+ }
33
+ //# sourceMappingURL=withContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["containers/withContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AASrE,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,IAA4C,EAC5C,IAAI,GAAG,gBAAgB,EACvB,QAAoC;IAEpC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAyB,CAAC,KAAwB,EAAE,GAAG,EAAE,EAAE;QACrF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAiB,KAAK,EAAjB,OAAO,UAAK,KAAK,EAA/C,+BAAuC,CAAQ,CAAC;QAEtD,eAAe,CAAC,GAAG,EAAE;YACnB,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,CACL,6BACE,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,kBACH,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,IACzB,KAAK,KAGT,MAAM,CAAC,CAAC,CAAC,CACR,oBAAC,IAAI,kBAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,OAAO,IAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAqB,CAAC,EAAI,CAC9G,CAAC,CAAC,CAAC,CACF,yCAAK,CACN,CACG,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC","file":"withContainer.js","sourcesContent":["import React, { useRef, useState, useLayoutEffect } from 'openinula';\n\nexport interface ContainerProps {\n style?: React.CSSProperties;\n className?: string;\n width?: number | string;\n height?: number | string;\n}\n\nexport default function withContainer<Props extends ContainerProps, CompProps>(\n Comp: typeof React.Component<any, CompProps>,\n name = 'TableContainer',\n getProps?: (props: any) => CompProps\n) {\n const Cls = React.forwardRef<any, CompProps & Props>((props: CompProps & Props, ref) => {\n const container = useRef();\n const [inited, setInited] = useState(false);\n const { className, style, width, ...options } = props;\n\n useLayoutEffect(() => {\n setInited(true);\n }, []);\n\n return (\n <div\n ref={container}\n className={className}\n style={{\n position: 'relative',\n height: props.height || '100%',\n width: props.width || '100%',\n ...style\n }}\n >\n {inited ? (\n <Comp ref={ref} container={container.current} {...(getProps ? getProps(options) : (options as CompProps))} />\n ) : (\n <></>\n )}\n </div>\n );\n });\n Cls.displayName = name || Comp.name;\n return Cls;\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import React from 'openinula';
2
+ import type { ListTable, PivotTable, PivotChart } from '@visactor/vtable';
3
+ export interface TableContextType {
4
+ table?: ListTable | PivotTable | PivotChart;
5
+ isChildrenUpdated?: boolean;
6
+ }
7
+ declare const TableContext: import("openinula").Context<TableContextType>;
8
+ export declare function withTableInstance<T>(Component: typeof React.Component): import("openinula").ExoticComponent<import("openinula").PropsOmitRef<T>> & {
9
+ key?: import("openinula").Key;
10
+ } & {
11
+ ref?: import("openinula").Ref<any>;
12
+ };
13
+ export default TableContext;
@@ -0,0 +1,16 @@
1
+ import React from "openinula";
2
+
3
+ const TableContext = React.createContext(null);
4
+
5
+ TableContext.displayName = "TableContext";
6
+
7
+ export function withTableInstance(Component) {
8
+ const Com = React.forwardRef(((props, ref) => React.createElement(TableContext.Consumer, null, (ctx => React.createElement(Component, Object.assign({
9
+ ref: ref,
10
+ table: ctx.table
11
+ }, props))))));
12
+ return Com.displayName = Component.name, Com;
13
+ }
14
+
15
+ export default TableContext;
16
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["context/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,WAAW,CAAC;AAS9B,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAmB,IAAI,CAAC,CAAC;AACjE,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAAI,SAAiC;IACpE,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAS,CAAC,KAAQ,EAAE,GAAG,EAAE,EAAE;QACrD,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,QACnB,CAAC,GAAqB,EAAE,EAAE,CAAC,oBAAC,SAAS,kBAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAM,KAAK,EAAI,CAC1D,CACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,eAAe,YAAY,CAAC","file":"table.js","sourcesContent":["import React from 'openinula';\nimport type { ListTable, PivotTable, PivotChart } from '@visactor/vtable';\n\nexport interface TableContextType {\n table?: ListTable | PivotTable | PivotChart;\n // optionFromChildren: any;\n isChildrenUpdated?: boolean;\n}\n\nconst TableContext = React.createContext<TableContextType>(null);\nTableContext.displayName = 'TableContext';\n\nexport function withTableInstance<T>(Component: typeof React.Component) {\n const Com = React.forwardRef<any, T>((props: T, ref) => {\n return (\n <TableContext.Consumer>\n {(ctx: TableContextType) => <Component ref={ref} table={ctx.table} {...props} />}\n </TableContext.Consumer>\n );\n });\n Com.displayName = Component.name;\n return Com;\n}\n\nexport default TableContext;\n"]}
@@ -0,0 +1,88 @@
1
+ import type { IVTable } from './tables/base-table';
2
+ import type { TYPES } from '@visactor/vtable';
3
+ export type EventCallback<Params> = (params: Params) => void;
4
+ export interface EventsProps {
5
+ onClickCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['click_cell']>;
6
+ onDblClickCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dblclick_cell']>;
7
+ onMouseDownCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousedown_cell']>;
8
+ onMouseUpCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseup_cell']>;
9
+ onSelectedCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['selected_cell']>;
10
+ onKeyDown?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['keydown']>;
11
+ onMouseEnterTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_table']>;
12
+ onMouseLeaveTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_table']>;
13
+ onMouseMoveCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousemove_cell']>;
14
+ onMouseEnterCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_cell']>;
15
+ onMouseLeaveCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_cell']>;
16
+ onContextMenuCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['contextmenu_cell']>;
17
+ onResizeColumn?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_column']>;
18
+ onResizeColumnEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['resize_column_end']>;
19
+ onChangeHeaderPosition?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position']>;
20
+ onSortClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['sort_click']>;
21
+ onFreezeClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['freeze_click']>;
22
+ onScroll?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll']>;
23
+ onDropdownMenuClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_menu_click']>;
24
+ onMouseOverChartSymbol?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseover_chart_symbol']>;
25
+ onDragSelectEnd?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drag_select_end']>;
26
+ onDropdownIconClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_icon_click']>;
27
+ onDropdownMenuClear?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['dropdown_menu_clear']>;
28
+ onTreeHierarchyStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['tree_hierarchy_state_change']>;
29
+ onShowMenu?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['show_menu']>;
30
+ onHideMenu?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['hide_menu']>;
31
+ onIconClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['icon_click']>;
32
+ onLegendItemClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_click']>;
33
+ onLegendItemHover?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_hover']>;
34
+ onLegendItemUnHover?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_item_unHover']>;
35
+ onLegendChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['legend_change']>;
36
+ onMouseEnterAxis?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_axis']>;
37
+ onMouseLeaveAxis?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_axis']>;
38
+ onCheckboxStateChange?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['checkbox_state_change']>;
39
+ onAfterRender?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['after_render']>;
40
+ onInitialized?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['initialized']>;
41
+ onPivotSortClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['pivot_sort_click']>;
42
+ onDrillMenuClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['drillmenu_click']>;
43
+ onVChartEventType?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['vchart_event_type']>;
44
+ }
45
+ export declare const TABLE_EVENTS: {
46
+ onClickCell: "click_cell";
47
+ onDblClickCell: "dblclick_cell";
48
+ onMouseDownCell: "mousedown_cell";
49
+ onMouseUpCell: "mouseup_cell";
50
+ onSelectedCell: "selected_cell";
51
+ onKeyDown: "keydown";
52
+ onMouseEnterTable: "mouseenter_table";
53
+ onMouseLeaveTable: "mouseleave_table";
54
+ onMouseMoveCell: "mousemove_cell";
55
+ onMouseEnterCell: "mouseenter_cell";
56
+ onMouseLeaveCell: "mouseleave_cell";
57
+ onContextMenuCell: "contextmenu_cell";
58
+ onResizeColumn: "resize_column";
59
+ onResizeColumnEnd: "resize_column_end";
60
+ onChangeHeaderPosition: "change_header_position";
61
+ onSortClick: "sort_click";
62
+ onFreezeClick: "freeze_click";
63
+ onScroll: "scroll";
64
+ onDropdownMenuClick: "dropdown_menu_click";
65
+ onMouseOverChartSymbol: "mouseover_chart_symbol";
66
+ onDragSelectEnd: "drag_select_end";
67
+ onDropdownIconClick: "dropdown_icon_click";
68
+ onDropdownMenuClear: "dropdown_menu_clear";
69
+ onTreeHierarchyStateChange: "tree_hierarchy_state_change";
70
+ onShowMenu: "show_menu";
71
+ onHideMenu: "hide_menu";
72
+ onIconClick: "icon_click";
73
+ onLegendItemClick: "legend_item_click";
74
+ onLegendItemHover: "legend_item_hover";
75
+ onLegendItemUnHover: "legend_item_unHover";
76
+ onLegendChange: "legend_change";
77
+ onMouseEnterAxis: "mouseenter_axis";
78
+ onMouseLeaveAxis: "mouseleave_axis";
79
+ onCheckboxStateChange: "checkbox_state_change";
80
+ onAfterRender: "after_render";
81
+ onInitialized: "initialized";
82
+ onPivotSortClick: "pivot_sort_click";
83
+ onDrillMenuClick: "drillmenu_click";
84
+ onVChartEventType: "vchart_event_type";
85
+ };
86
+ export declare const TABLE_EVENTS_KEYS: string[];
87
+ export declare const findEventProps: <T extends EventsProps>(props: T, supportedEvents?: Record<string, string>) => EventsProps;
88
+ export declare const bindEventsToTable: <T>(table: IVTable, newProps?: T, prevProps?: T, supportedEvents?: Record<string, string>) => boolean;
@@ -0,0 +1,65 @@
1
+ import { ListTable, PivotTable, PivotChart } from "@visactor/vtable";
2
+
3
+ const EVENT_TYPE = Object.assign(Object.assign(Object.assign({}, ListTable.EVENT_TYPE), PivotTable.EVENT_TYPE), PivotChart.EVENT_TYPE);
4
+
5
+ export const TABLE_EVENTS = {
6
+ onClickCell: EVENT_TYPE.CLICK_CELL,
7
+ onDblClickCell: EVENT_TYPE.DBLCLICK_CELL,
8
+ onMouseDownCell: EVENT_TYPE.MOUSEDOWN_CELL,
9
+ onMouseUpCell: EVENT_TYPE.MOUSEUP_CELL,
10
+ onSelectedCell: EVENT_TYPE.SELECTED_CELL,
11
+ onKeyDown: EVENT_TYPE.KEYDOWN,
12
+ onMouseEnterTable: EVENT_TYPE.MOUSEENTER_TABLE,
13
+ onMouseLeaveTable: EVENT_TYPE.MOUSELEAVE_TABLE,
14
+ onMouseMoveCell: EVENT_TYPE.MOUSEMOVE_CELL,
15
+ onMouseEnterCell: EVENT_TYPE.MOUSEENTER_CELL,
16
+ onMouseLeaveCell: EVENT_TYPE.MOUSELEAVE_CELL,
17
+ onContextMenuCell: EVENT_TYPE.CONTEXTMENU_CELL,
18
+ onResizeColumn: EVENT_TYPE.RESIZE_COLUMN,
19
+ onResizeColumnEnd: EVENT_TYPE.RESIZE_COLUMN_END,
20
+ onChangeHeaderPosition: EVENT_TYPE.CHANGE_HEADER_POSITION,
21
+ onSortClick: EVENT_TYPE.SORT_CLICK,
22
+ onFreezeClick: EVENT_TYPE.FREEZE_CLICK,
23
+ onScroll: EVENT_TYPE.SCROLL,
24
+ onDropdownMenuClick: EVENT_TYPE.DROPDOWN_MENU_CLICK,
25
+ onMouseOverChartSymbol: EVENT_TYPE.MOUSEOVER_CHART_SYMBOL,
26
+ onDragSelectEnd: EVENT_TYPE.DRAG_SELECT_END,
27
+ onDropdownIconClick: EVENT_TYPE.DROPDOWN_ICON_CLICK,
28
+ onDropdownMenuClear: EVENT_TYPE.DROPDOWN_MENU_CLEAR,
29
+ onTreeHierarchyStateChange: EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE,
30
+ onShowMenu: EVENT_TYPE.SHOW_MENU,
31
+ onHideMenu: EVENT_TYPE.HIDE_MENU,
32
+ onIconClick: EVENT_TYPE.ICON_CLICK,
33
+ onLegendItemClick: EVENT_TYPE.LEGEND_ITEM_CLICK,
34
+ onLegendItemHover: EVENT_TYPE.LEGEND_ITEM_HOVER,
35
+ onLegendItemUnHover: EVENT_TYPE.LEGEND_ITEM_UNHOVER,
36
+ onLegendChange: EVENT_TYPE.LEGEND_CHANGE,
37
+ onMouseEnterAxis: EVENT_TYPE.MOUSEENTER_AXIS,
38
+ onMouseLeaveAxis: EVENT_TYPE.MOUSELEAVE_AXIS,
39
+ onCheckboxStateChange: EVENT_TYPE.CHECKBOX_STATE_CHANGE,
40
+ onAfterRender: EVENT_TYPE.AFTER_RENDER,
41
+ onInitialized: EVENT_TYPE.INITIALIZED,
42
+ onPivotSortClick: EVENT_TYPE.PIVOT_SORT_CLICK,
43
+ onDrillMenuClick: EVENT_TYPE.DRILLMENU_CLICK,
44
+ onVChartEventType: EVENT_TYPE.VCHART_EVENT_TYPE
45
+ };
46
+
47
+ export const TABLE_EVENTS_KEYS = Object.keys(TABLE_EVENTS);
48
+
49
+ export const findEventProps = (props, supportedEvents = TABLE_EVENTS) => {
50
+ const result = {};
51
+ return Object.keys(props).forEach((key => {
52
+ supportedEvents[key] && props[key] && (result[key] = props[key]);
53
+ })), result;
54
+ };
55
+
56
+ export const bindEventsToTable = (table, newProps, prevProps, supportedEvents = TABLE_EVENTS) => {
57
+ if (!newProps && !prevProps || !table) return !1;
58
+ const prevEventProps = prevProps ? findEventProps(prevProps, supportedEvents) : null, newEventProps = newProps ? findEventProps(newProps, supportedEvents) : null;
59
+ return prevEventProps && Object.keys(prevEventProps).forEach((eventKey => {
60
+ newEventProps && newEventProps[eventKey] && newEventProps[eventKey] === prevEventProps[eventKey] || table.off(supportedEvents[eventKey], prevProps[eventKey]);
61
+ })), newEventProps && Object.keys(newEventProps).forEach((eventKey => {
62
+ prevEventProps && prevEventProps[eventKey] && prevEventProps[eventKey] === newEventProps[eventKey] || table.on(supportedEvents[eventKey], newEventProps[eventKey]);
63
+ })), !0;
64
+ };
65
+ //# sourceMappingURL=eventsUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["eventsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMrE,MAAM,UAAU,iDACX,SAAS,CAAC,UAAU,GACpB,UAAU,CAAC,UAAU,GACrB,UAAU,CAAC,UAAU,CACzB,CAAC;AAuDF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,WAAW,EAAE,UAAU,CAAC,UAAU;IAClC,cAAc,EAAE,UAAU,CAAC,aAAa;IACxC,eAAe,EAAE,UAAU,CAAC,cAAc;IAC1C,aAAa,EAAE,UAAU,CAAC,YAAY;IACtC,cAAc,EAAE,UAAU,CAAC,aAAa;IACxC,SAAS,EAAE,UAAU,CAAC,OAAO;IAC7B,iBAAiB,EAAE,UAAU,CAAC,gBAAgB;IAC9C,iBAAiB,EAAE,UAAU,CAAC,gBAAgB;IAC9C,eAAe,EAAE,UAAU,CAAC,cAAc;IAC1C,gBAAgB,EAAE,UAAU,CAAC,eAAe;IAC5C,gBAAgB,EAAE,UAAU,CAAC,eAAe;IAC5C,iBAAiB,EAAE,UAAU,CAAC,gBAAgB;IAC9C,cAAc,EAAE,UAAU,CAAC,aAAa;IACxC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;IAC/C,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;IACzD,WAAW,EAAE,UAAU,CAAC,UAAU;IAClC,aAAa,EAAE,UAAU,CAAC,YAAY;IACtC,QAAQ,EAAE,UAAU,CAAC,MAAM;IAC3B,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;IACnD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;IACzD,eAAe,EAAE,UAAU,CAAC,eAAe;IAE3C,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;IACnD,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;IAEnD,0BAA0B,EAAE,UAAU,CAAC,2BAA2B;IAElE,UAAU,EAAE,UAAU,CAAC,SAAS;IAChC,UAAU,EAAE,UAAU,CAAC,SAAS;IAEhC,WAAW,EAAE,UAAU,CAAC,UAAU;IAElC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;IAC/C,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;IAC/C,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;IACnD,cAAc,EAAE,UAAU,CAAC,aAAa;IAExC,gBAAgB,EAAE,UAAU,CAAC,eAAe;IAC5C,gBAAgB,EAAE,UAAU,CAAC,eAAe;IAE5C,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;IACvD,aAAa,EAAE,UAAU,CAAC,YAAY;IACtC,aAAa,EAAE,UAAU,CAAC,WAAW;IAGrC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;IAC7C,gBAAgB,EAAE,UAAU,CAAC,eAAe;IAG5C,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;CAChD,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAQ,EACR,kBAA0C,YAAY,EACzC,EAAE;IACf,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC/B,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;SAC1B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAc,EACd,QAAmB,EACnB,SAAoB,EACpB,kBAA0C,YAAY,EACtD,EAAE;IACF,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAElF,IAAI,cAAc,EAAE;QAClB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC7C,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,EAAE;gBACtG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC3D;QACH,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,aAAa,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5C,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,aAAa,CAAC,QAAQ,CAAC,EAAE;gBACxG,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAmD,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;aAChH;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","file":"eventsUtils.js","sourcesContent":["import { ListTable, PivotTable, PivotChart } from '@visactor/vtable';\nimport type { IVTable } from './tables/base-table';\nimport type { TYPES } 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};\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 onKeyDown?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['keydown']>;\n onMouseEnterTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseenter_table']>;\n onMouseLeaveTable?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mouseleave_table']>;\n onMouseMoveCell?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['mousemove_cell']>;\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 onChangeHeaderPosition?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['change_header_position']>;\n onSortClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['sort_click']>;\n onFreezeClick?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['freeze_click']>;\n onScroll?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['scroll']>;\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\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 onAfterRender?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['after_render']>;\n onInitialized?: EventCallback<TYPES.TableEventHandlersEventArgumentMap['initialized']>;\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\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 onKeyDown: EVENT_TYPE.KEYDOWN,\n onMouseEnterTable: EVENT_TYPE.MOUSEENTER_TABLE,\n onMouseLeaveTable: EVENT_TYPE.MOUSELEAVE_TABLE,\n onMouseMoveCell: EVENT_TYPE.MOUSEMOVE_CELL,\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 onChangeHeaderPosition: EVENT_TYPE.CHANGE_HEADER_POSITION,\n onSortClick: EVENT_TYPE.SORT_CLICK,\n onFreezeClick: EVENT_TYPE.FREEZE_CLICK,\n onScroll: EVENT_TYPE.SCROLL,\n onDropdownMenuClick: EVENT_TYPE.DROPDOWN_MENU_CLICK,\n onMouseOverChartSymbol: EVENT_TYPE.MOUSEOVER_CHART_SYMBOL,\n onDragSelectEnd: EVENT_TYPE.DRAG_SELECT_END,\n\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 onAfterRender: EVENT_TYPE.AFTER_RENDER,\n onInitialized: EVENT_TYPE.INITIALIZED,\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\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]) {\n result[key] = props[key];\n }\n });\n\n return result;\n};\n\nexport const bindEventsToTable = <T>(\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 = prevProps ? findEventProps(prevProps, supportedEvents) : null;\n const newEventProps = newProps ? findEventProps(newProps, supportedEvents) : null;\n\n if (prevEventProps) {\n Object.keys(prevEventProps).forEach(eventKey => {\n if (!newEventProps || !newEventProps[eventKey] || newEventProps[eventKey] !== prevEventProps[eventKey]) {\n table.off(supportedEvents[eventKey], prevProps[eventKey]);\n }\n });\n }\n\n if (newEventProps) {\n Object.keys(newEventProps).forEach(eventKey => {\n if (!prevEventProps || !prevEventProps[eventKey] || prevEventProps[eventKey] !== newEventProps[eventKey]) {\n table.on(supportedEvents[eventKey] as keyof TYPES.TableEventHandlersEventArgumentMap, newEventProps[eventKey]);\n }\n });\n }\n\n return true;\n};\n"]}
package/es/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import * as VTable from '@visactor/vtable';
2
+ export * from './tables';
3
+ export * from './components';
4
+ export { VTable };
5
+ export declare const version = "0.21.3-alpha.1";
package/es/index.js ADDED
@@ -0,0 +1,10 @@
1
+ import * as VTable from "@visactor/vtable";
2
+
3
+ export * from "./tables";
4
+
5
+ export * from "./components";
6
+
7
+ export { VTable };
8
+
9
+ export const version = "0.21.3-alpha.1";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC","file":"index.js","sourcesContent":["import * as VTable from '@visactor/vtable';\n\nexport * from './tables';\nexport * from './components';\nexport { VTable };\n\nexport const version = \"0.21.3-alpha.1\";\n"]}