@visactor/vtable 1.26.5 → 1.26.6

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 (93) hide show
  1. package/cjs/ListTable.d.ts +4 -1
  2. package/cjs/ListTable.js +17 -3
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/body-helper/body-helper.d.ts +1 -0
  5. package/cjs/body-helper/body-helper.js +4 -3
  6. package/cjs/body-helper/body-helper.js.map +1 -1
  7. package/cjs/components/index.js +2 -1
  8. package/cjs/core/BaseTable.d.ts +1 -0
  9. package/cjs/core/BaseTable.js +20 -10
  10. package/cjs/core/BaseTable.js.map +1 -1
  11. package/cjs/core/row-series-number-helper.d.ts +1 -0
  12. package/cjs/core/row-series-number-helper.js +3 -1
  13. package/cjs/core/row-series-number-helper.js.map +1 -1
  14. package/cjs/data/CachedDataSource.js +5 -3
  15. package/cjs/data/CachedDataSource.js.map +1 -1
  16. package/cjs/header-helper/header-helper.d.ts +1 -0
  17. package/cjs/header-helper/header-helper.js +4 -3
  18. package/cjs/header-helper/header-helper.js.map +1 -1
  19. package/cjs/index.d.ts +1 -1
  20. package/cjs/index.js +1 -1
  21. package/cjs/index.js.map +1 -1
  22. package/cjs/layout/index.js +2 -1
  23. package/cjs/plugins/interface.d.ts +2 -1
  24. package/cjs/plugins/interface.js.map +1 -1
  25. package/cjs/plugins/plugin-manager.d.ts +1 -1
  26. package/cjs/plugins/plugin-manager.js +11 -6
  27. package/cjs/plugins/plugin-manager.js.map +1 -1
  28. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +24 -8
  29. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  30. package/cjs/scenegraph/layout/compute-row-height.js +15 -4
  31. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  32. package/cjs/scenegraph/layout/update-row.js +24 -3
  33. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  34. package/cjs/scenegraph/scenegraph.js +42 -20
  35. package/cjs/scenegraph/scenegraph.js.map +1 -1
  36. package/cjs/scenegraph/utils/text-icon-layout.js +4 -3
  37. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  38. package/cjs/state/checkbox/checkbox.d.ts +3 -0
  39. package/cjs/state/checkbox/checkbox.js +138 -2
  40. package/cjs/state/checkbox/checkbox.js.map +1 -1
  41. package/cjs/ts-types/base-table.d.ts +1 -0
  42. package/cjs/ts-types/base-table.js.map +1 -1
  43. package/cjs/ts-types/table-engine.d.ts +7 -1
  44. package/cjs/ts-types/table-engine.js.map +1 -1
  45. package/cjs/vrender.js.map +1 -1
  46. package/dist/vtable.js +404 -45
  47. package/dist/vtable.min.js +1 -1
  48. package/es/ListTable.d.ts +4 -1
  49. package/es/ListTable.js +17 -4
  50. package/es/ListTable.js.map +1 -1
  51. package/es/body-helper/body-helper.d.ts +1 -0
  52. package/es/body-helper/body-helper.js +4 -3
  53. package/es/body-helper/body-helper.js.map +1 -1
  54. package/es/components/index.js +2 -1
  55. package/es/core/BaseTable.d.ts +1 -0
  56. package/es/core/BaseTable.js +22 -12
  57. package/es/core/BaseTable.js.map +1 -1
  58. package/es/core/row-series-number-helper.d.ts +1 -0
  59. package/es/core/row-series-number-helper.js +3 -1
  60. package/es/core/row-series-number-helper.js.map +1 -1
  61. package/es/data/CachedDataSource.js +5 -3
  62. package/es/data/CachedDataSource.js.map +1 -1
  63. package/es/header-helper/header-helper.d.ts +1 -0
  64. package/es/header-helper/header-helper.js +4 -3
  65. package/es/header-helper/header-helper.js.map +1 -1
  66. package/es/index.d.ts +1 -1
  67. package/es/index.js +1 -1
  68. package/es/index.js.map +1 -1
  69. package/es/layout/index.js +2 -1
  70. package/es/plugins/interface.d.ts +2 -1
  71. package/es/plugins/interface.js.map +1 -1
  72. package/es/plugins/plugin-manager.d.ts +1 -1
  73. package/es/plugins/plugin-manager.js +11 -6
  74. package/es/plugins/plugin-manager.js.map +1 -1
  75. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +24 -8
  76. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  77. package/es/scenegraph/layout/compute-row-height.js +15 -4
  78. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  79. package/es/scenegraph/layout/update-row.js +25 -2
  80. package/es/scenegraph/layout/update-row.js.map +1 -1
  81. package/es/scenegraph/scenegraph.js +42 -20
  82. package/es/scenegraph/scenegraph.js.map +1 -1
  83. package/es/scenegraph/utils/text-icon-layout.js +7 -6
  84. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  85. package/es/state/checkbox/checkbox.d.ts +3 -0
  86. package/es/state/checkbox/checkbox.js +133 -0
  87. package/es/state/checkbox/checkbox.js.map +1 -1
  88. package/es/ts-types/base-table.d.ts +1 -0
  89. package/es/ts-types/base-table.js.map +1 -1
  90. package/es/ts-types/table-engine.d.ts +7 -1
  91. package/es/ts-types/table-engine.js.map +1 -1
  92. package/es/vrender.js.map +1 -1
  93. package/package.json +4 -4
@@ -10,6 +10,7 @@ export declare class BodyHelper {
10
10
  collapseIcon: SvgIcon;
11
11
  _table: BaseTableAPI;
12
12
  constructor(_table: BaseTableAPI);
13
+ updateIcons(): void;
13
14
  getIcons(col: number, row: number, cellValue: any, dataValue: any, context: CanvasRenderingContext2D): ColumnIconOption[];
14
15
  getStyleClass(cellType: 'text' | 'link' | 'image' | 'video' | 'chart' | 'sparkline' | 'progressbar' | 'chart' | 'checkbox' | 'radio' | 'switch' | 'button'): typeof Style | typeof RadioStyle | typeof SwitchStyle | typeof ButtonStyle | typeof CheckboxStyle;
15
16
  getCellIconFromRecordValue(icon: ColumnIconOption, col: number, row: number): ColumnIconOption;
@@ -33,7 +33,9 @@ const ts_types_1 = require("../ts-types"), registerIcons = __importStar(require(
33
33
 
34
34
  class BodyHelper {
35
35
  constructor(_table) {
36
- this._table = _table;
36
+ this._table = _table, this.updateIcons();
37
+ }
38
+ updateIcons() {
37
39
  const regedIcons = registerIcons.get();
38
40
  this.expandIcon = regedIcons[ts_types_1.InternalIconName.expandIconName], this.collapseIcon = regedIcons[ts_types_1.InternalIconName.collapseIconName];
39
41
  }
@@ -117,5 +119,4 @@ class BodyHelper {
117
119
  }
118
120
  }
119
121
 
120
- exports.BodyHelper = BodyHelper;
121
- //# sourceMappingURL=body-helper.js.map
122
+ exports.BodyHelper = BodyHelper;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/body-helper/body-helper.ts"],"names":[],"mappings":"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","file":"body-helper.js","sourcesContent":["import type { ColumnIconOption, ImageIcon, ListTableAPI, SvgIcon } from '../ts-types';\nimport { HierarchyState, InternalIconName } from '../ts-types';\nimport * as registerIcons from '../icons';\nimport { Style } from './style/Style';\nimport { TextStyle } from './style/MultilineTextStyle';\nimport { ProgressBarStyle } from './style/ProgressBarStyle';\nimport { ImageStyle } from './style/ImageStyle';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport * as icons from '../tools/icons';\nimport { obj } from '../tools/helper';\nimport { CheckboxStyle } from './style/CheckboxStyle';\nimport { RadioStyle } from './style/RadioStyle';\nimport { isValid } from '@visactor/vutils';\nimport { SwitchStyle } from './style/SwitchStyle';\nimport { ButtonStyle } from './style/ButtonStyle';\nexport class BodyHelper {\n expandIcon: SvgIcon;\n collapseIcon: SvgIcon;\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n const regedIcons = registerIcons.get();\n //展开折叠按钮\n this.expandIcon = regedIcons[InternalIconName.expandIconName] as SvgIcon;\n this.collapseIcon = regedIcons[InternalIconName.collapseIconName] as SvgIcon;\n }\n getIcons(\n col: number,\n row: number,\n cellValue: any,\n dataValue: any,\n context: CanvasRenderingContext2D\n ): ColumnIconOption[] {\n //加入固定列图标 排序 文本中元素\n const iconArr: ColumnIconOption[] = [];\n\n const hierarchyIcon = this.getHierarchyIcon(col, row);\n if (hierarchyIcon) {\n iconArr.push(hierarchyIcon);\n }\n\n const { icon: iconDefine } = this._table.getBodyColumnDefine(col, row);\n\n if (iconDefine) {\n let iconResults;\n if (typeof iconDefine === 'function') {\n const arg = {\n col,\n row,\n value: cellValue,\n dataValue,\n table: this._table\n };\n iconResults = iconDefine(arg);\n } else {\n iconResults = iconDefine;\n }\n const regedIcons = registerIcons.get();\n const addIcon = (columnIcon: string | ColumnIconOption) => {\n let icon;\n if (typeof columnIcon === 'string') {\n icon = regedIcons[columnIcon];\n } else {\n icon = columnIcon;\n }\n if (icon) {\n iconArr.push(icon);\n }\n };\n if (Array.isArray(iconResults)) {\n iconResults.forEach((columnIcon: string | ColumnIconOption, index: number) => {\n addIcon(columnIcon);\n });\n } else {\n addIcon(iconResults);\n }\n }\n\n context &&\n iconArr.forEach((i, index) => {\n if ((i as any).content || (<ImageIcon>i).src) {\n iconArr[index] = this.getCellIconFromRecordValue(i, col, row);\n // if ((<FontIcon>i).font)\n // helper.testFontLoad((<FontIcon>i).font, (<FontIcon>i).content, col, row);\n }\n });\n\n return iconArr;\n }\n getStyleClass(\n cellType:\n | 'text'\n | 'link'\n | 'image'\n | 'video'\n | 'chart'\n | 'sparkline'\n | 'progressbar'\n | 'chart'\n | 'checkbox'\n | 'radio'\n | 'switch'\n | 'button'\n ) {\n switch (cellType) {\n case 'text':\n return TextStyle;\n case 'image':\n return ImageStyle;\n case 'video':\n return ImageStyle;\n case 'link':\n return TextStyle;\n case 'chart':\n return Style;\n case 'sparkline':\n return Style;\n case 'progressbar':\n return ProgressBarStyle;\n case 'checkbox':\n return CheckboxStyle;\n case 'radio':\n return RadioStyle;\n case 'switch':\n return SwitchStyle;\n case 'button':\n return ButtonStyle;\n }\n return TextStyle;\n }\n getCellIconFromRecordValue(icon: ColumnIconOption, col: number, row: number): ColumnIconOption;\n getCellIconFromRecordValue(icon: ColumnIconOption[], col: number, row: number): ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[] {\n if (Array.isArray(icon)) {\n return icon.map(i => this.getCellIconFromRecordValue(i, col, row));\n }\n // icon.positionType = IconPosition.inlineFront;\n if (!obj.isObject(icon) || typeof icon === 'function') {\n return (this._table as ListTableAPI).getFieldData(icon, col, row);\n }\n // 新建对象 挨个属性赋值\n const retIcon: any = {};\n const iconOpt: any = icon;\n icons.iconPropKeys.forEach(k => {\n if (typeof iconOpt[k] !== 'undefined') {\n const f = (this._table as ListTableAPI).getFieldData(iconOpt[k], col, row);\n if (isValid(f)) {\n retIcon[k] = f;\n } else if (!this._table._hasField?.(iconOpt[k], col, row)) {\n retIcon[k] = iconOpt[k];\n }\n }\n });\n return retIcon;\n }\n\n getHierarchyIcon(col: number, row: number) {\n const hierarchyState = this._table.getHierarchyState(col, row);\n if (hierarchyState === HierarchyState.expand) {\n //展开状态 应该显示-号\n return this.expandIcon;\n } else if (hierarchyState === HierarchyState.collapse) {\n //折叠状态 应该显示-号\n return this.collapseIcon;\n }\n return undefined;\n }\n getHierarchyIconWidth() {\n return this.expandIcon.width + (this.expandIcon.marginLeft ?? 0) + (this.expandIcon.marginRight ?? 0);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/body-helper/body-helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0CAA+D;AAC/D,wDAA0C;AAC1C,yCAAsC;AACtC,mEAAuD;AACvD,+DAA4D;AAC5D,mDAAgD;AAEhD,sDAAwC;AACxC,4CAAsC;AACtC,yDAAsD;AACtD,mDAAgD;AAChD,6CAA2C;AAC3C,qDAAkD;AAClD,qDAAkD;AAClD,MAAa,UAAU;IAIrB,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACT,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,2BAAgB,CAAC,cAAc,CAAY,CAAC;QACzE,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,2BAAgB,CAAC,gBAAgB,CAAY,CAAC;IAC/E,CAAC;IACD,QAAQ,CACN,GAAW,EACX,GAAW,EACX,SAAc,EACd,SAAc,EACd,OAAiC;QAGjC,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,aAAa,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC7B;QAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEvE,IAAI,UAAU,EAAE;YACd,IAAI,WAAW,CAAC;YAChB,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;gBACpC,MAAM,GAAG,GAAG;oBACV,GAAG;oBACH,GAAG;oBACH,KAAK,EAAE,SAAS;oBAChB,SAAS;oBACT,KAAK,EAAE,IAAI,CAAC,MAAM;iBACnB,CAAC;gBACF,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;aAC/B;iBAAM;gBACL,WAAW,GAAG,UAAU,CAAC;aAC1B;YACD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,CAAC,UAAqC,EAAE,EAAE;gBACxD,IAAI,IAAI,CAAC;gBACT,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;oBAClC,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;iBAC/B;qBAAM;oBACL,IAAI,GAAG,UAAU,CAAC;iBACnB;gBACD,IAAI,IAAI,EAAE;oBACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpB;YACH,CAAC,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC9B,WAAW,CAAC,OAAO,CAAC,CAAC,UAAqC,EAAE,KAAa,EAAE,EAAE;oBAC3E,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,CAAC,WAAW,CAAC,CAAC;aACtB;SACF;QAED,OAAO;YACL,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC3B,IAAK,CAAS,CAAC,OAAO,IAAgB,CAAE,CAAC,GAAG,EAAE;oBAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBAG/D;YACH,CAAC,CAAC,CAAC;QAEL,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,aAAa,CACX,QAYY;QAEZ,QAAQ,QAAQ,EAAE;YAChB,KAAK,MAAM;gBACT,OAAO,8BAAS,CAAC;YACnB,KAAK,OAAO;gBACV,OAAO,uBAAU,CAAC;YACpB,KAAK,OAAO;gBACV,OAAO,uBAAU,CAAC;YACpB,KAAK,MAAM;gBACT,OAAO,8BAAS,CAAC;YACnB,KAAK,OAAO;gBACV,OAAO,aAAK,CAAC;YACf,KAAK,WAAW;gBACd,OAAO,aAAK,CAAC;YACf,KAAK,aAAa;gBAChB,OAAO,mCAAgB,CAAC;YAC1B,KAAK,UAAU;gBACb,OAAO,6BAAa,CAAC;YACvB,KAAK,OAAO;gBACV,OAAO,uBAAU,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,yBAAW,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,yBAAW,CAAC;SACtB;QACD,OAAO,8BAAS,CAAC;IACnB,CAAC;IAQD,0BAA0B,CACxB,IAA2C,EAC3C,GAAW,EACX,GAAW;QAEX,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,YAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YACrD,OAAQ,IAAI,CAAC,MAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACnE;QAED,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAQ,IAAI,CAAC;QAC1B,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;YAC7B,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;gBACrC,MAAM,CAAC,GAAI,IAAI,CAAC,MAAuB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC3E,IAAI,IAAA,gBAAO,EAAC,CAAC,CAAC,EAAE;oBACd,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAChB;qBAAM,IAAI,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,EAAC,SAAS,mDAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA,EAAE;oBACzD,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;iBACzB;aACF;QACH,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,cAAc,KAAK,yBAAc,CAAC,MAAM,EAAE;YAE5C,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;aAAM,IAAI,cAAc,KAAK,yBAAc,CAAC,QAAQ,EAAE;YAErD,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,qBAAqB;;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,UAAU,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAC;IACxG,CAAC;CACF;AAxKD,gCAwKC","file":"body-helper.js","sourcesContent":["import type { ColumnIconOption, ImageIcon, ListTableAPI, SvgIcon } from '../ts-types';\nimport { HierarchyState, InternalIconName } from '../ts-types';\nimport * as registerIcons from '../icons';\nimport { Style } from './style/Style';\nimport { TextStyle } from './style/MultilineTextStyle';\nimport { ProgressBarStyle } from './style/ProgressBarStyle';\nimport { ImageStyle } from './style/ImageStyle';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport * as icons from '../tools/icons';\nimport { obj } from '../tools/helper';\nimport { CheckboxStyle } from './style/CheckboxStyle';\nimport { RadioStyle } from './style/RadioStyle';\nimport { isValid } from '@visactor/vutils';\nimport { SwitchStyle } from './style/SwitchStyle';\nimport { ButtonStyle } from './style/ButtonStyle';\nexport class BodyHelper {\n expandIcon: SvgIcon;\n collapseIcon: SvgIcon;\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n this.updateIcons();\n }\n\n updateIcons() {\n const regedIcons = registerIcons.get();\n //展开折叠按钮\n this.expandIcon = regedIcons[InternalIconName.expandIconName] as SvgIcon;\n this.collapseIcon = regedIcons[InternalIconName.collapseIconName] as SvgIcon;\n }\n getIcons(\n col: number,\n row: number,\n cellValue: any,\n dataValue: any,\n context: CanvasRenderingContext2D\n ): ColumnIconOption[] {\n //加入固定列图标 排序 文本中元素\n const iconArr: ColumnIconOption[] = [];\n\n const hierarchyIcon = this.getHierarchyIcon(col, row);\n if (hierarchyIcon) {\n iconArr.push(hierarchyIcon);\n }\n\n const { icon: iconDefine } = this._table.getBodyColumnDefine(col, row);\n\n if (iconDefine) {\n let iconResults;\n if (typeof iconDefine === 'function') {\n const arg = {\n col,\n row,\n value: cellValue,\n dataValue,\n table: this._table\n };\n iconResults = iconDefine(arg);\n } else {\n iconResults = iconDefine;\n }\n const regedIcons = registerIcons.get();\n const addIcon = (columnIcon: string | ColumnIconOption) => {\n let icon;\n if (typeof columnIcon === 'string') {\n icon = regedIcons[columnIcon];\n } else {\n icon = columnIcon;\n }\n if (icon) {\n iconArr.push(icon);\n }\n };\n if (Array.isArray(iconResults)) {\n iconResults.forEach((columnIcon: string | ColumnIconOption, index: number) => {\n addIcon(columnIcon);\n });\n } else {\n addIcon(iconResults);\n }\n }\n\n context &&\n iconArr.forEach((i, index) => {\n if ((i as any).content || (<ImageIcon>i).src) {\n iconArr[index] = this.getCellIconFromRecordValue(i, col, row);\n // if ((<FontIcon>i).font)\n // helper.testFontLoad((<FontIcon>i).font, (<FontIcon>i).content, col, row);\n }\n });\n\n return iconArr;\n }\n getStyleClass(\n cellType:\n | 'text'\n | 'link'\n | 'image'\n | 'video'\n | 'chart'\n | 'sparkline'\n | 'progressbar'\n | 'chart'\n | 'checkbox'\n | 'radio'\n | 'switch'\n | 'button'\n ) {\n switch (cellType) {\n case 'text':\n return TextStyle;\n case 'image':\n return ImageStyle;\n case 'video':\n return ImageStyle;\n case 'link':\n return TextStyle;\n case 'chart':\n return Style;\n case 'sparkline':\n return Style;\n case 'progressbar':\n return ProgressBarStyle;\n case 'checkbox':\n return CheckboxStyle;\n case 'radio':\n return RadioStyle;\n case 'switch':\n return SwitchStyle;\n case 'button':\n return ButtonStyle;\n }\n return TextStyle;\n }\n getCellIconFromRecordValue(icon: ColumnIconOption, col: number, row: number): ColumnIconOption;\n getCellIconFromRecordValue(icon: ColumnIconOption[], col: number, row: number): ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[] {\n if (Array.isArray(icon)) {\n return icon.map(i => this.getCellIconFromRecordValue(i, col, row));\n }\n // icon.positionType = IconPosition.inlineFront;\n if (!obj.isObject(icon) || typeof icon === 'function') {\n return (this._table as ListTableAPI).getFieldData(icon, col, row);\n }\n // 新建对象 挨个属性赋值\n const retIcon: any = {};\n const iconOpt: any = icon;\n icons.iconPropKeys.forEach(k => {\n if (typeof iconOpt[k] !== 'undefined') {\n const f = (this._table as ListTableAPI).getFieldData(iconOpt[k], col, row);\n if (isValid(f)) {\n retIcon[k] = f;\n } else if (!this._table._hasField?.(iconOpt[k], col, row)) {\n retIcon[k] = iconOpt[k];\n }\n }\n });\n return retIcon;\n }\n\n getHierarchyIcon(col: number, row: number) {\n const hierarchyState = this._table.getHierarchyState(col, row);\n if (hierarchyState === HierarchyState.expand) {\n //展开状态 应该显示-号\n return this.expandIcon;\n } else if (hierarchyState === HierarchyState.collapse) {\n //折叠状态 应该显示-号\n return this.collapseIcon;\n }\n return undefined;\n }\n getHierarchyIconWidth() {\n return this.expandIcon.width + (this.expandIcon.marginLeft ?? 0) + (this.expandIcon.marginRight ?? 0);\n }\n}\n"]}
@@ -46,4 +46,5 @@ const registerAnimation = () => {
46
46
  (0, vrender_1.registerCustomAnimate)(), (0, vrender_1.registerAnimate)();
47
47
  };
48
48
 
49
- exports.registerAnimation = registerAnimation;
49
+ exports.registerAnimation = registerAnimation;
50
+ //# sourceMappingURL=index.js.map
@@ -352,6 +352,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
352
352
  get enableLineBreak(): boolean;
353
353
  set enableLineBreak(enableLineBreak: boolean);
354
354
  updateAutoWrapText(autoWrapText: boolean): void;
355
+ private _updateFunctionalIcons;
355
356
  get theme(): TableTheme;
356
357
  set theme(theme: TableTheme);
357
358
  updateTheme(theme: ITableThemeDefine): void;
@@ -35,6 +35,10 @@ Object.defineProperty(exports, "__esModule", {
35
35
 
36
36
  const columnStyleContents = __importStar(require("../body-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), ts_types_1 = require("../ts-types"), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), vutils_1 = require("@visactor/vutils"), text_measure_1 = require("../scenegraph/utils/text-measure"), get_prop_1 = require("../scenegraph/utils/get-prop"), tableHelper_1 = require("./tableHelper"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), row_height_map_1 = require("../layout/row-height-map"), row_series_number_helper_1 = require("./row-series-number-helper"), update_select_border_1 = require("../scenegraph/select/update-select-border"), react_custom_layout_1 = require("../components/react/react-custom-layout"), layout_helper_1 = require("../layout/layout-helper"), factory_1 = require("./factory"), get_cell_position_1 = require("./utils/get-cell-position"), style_helper_1 = require("./style-helper"), frozen_react_1 = require("../scenegraph/layout/frozen-react"), icons_1 = require("../icons"), animation_1 = require("./animation"), check_in_select_1 = require("../state/common/check-in-select"), is_cell_select_highlight_1 = require("../state/select/is-cell-select-highlight"), get_custom_merge_cell_func_1 = require("./utils/get-custom-merge-cell-func"), vrender_1 = require("./../vrender"), plugin_manager_1 = require("../plugins/plugin-manager"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
37
37
 
38
+ function normalizeCellType(cellType) {
39
+ return (0, vutils_1.isValid)(cellType) ? cellType : "text";
40
+ }
41
+
38
42
  (0, style_1.importStyle)();
39
43
 
40
44
  class BaseTable extends EventTarget_1.EventTarget {
@@ -45,7 +49,7 @@ class BaseTable extends EventTarget_1.EventTarget {
45
49
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
46
50
  if (super(), this.showFrozenIcon = !0, this._scrollToRowCorrectTimer = null, this._tableBorderWidth_left = 0,
47
51
  this._tableBorderWidth_right = 0, this._tableBorderWidth_top = 0, this._tableBorderWidth_bottom = 0,
48
- this.version = "1.26.5", this.id = `VTable${Date.now()}`, this.isReleased = !1,
52
+ this.version = "1.26.6", this.id = `VTable${Date.now()}`, this.isReleased = !1,
49
53
  this._chartEventMap = {}, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
50
54
  "undefined" != typeof window) {
51
55
  const g = window;
@@ -137,7 +141,7 @@ class BaseTable extends EventTarget_1.EventTarget {
137
141
  return "node" === env_1.Env.mode ? that.canvasWidth / (null != pixelRatio ? pixelRatio : 1) : this._.canvas.width / (null !== (_b = null !== (_a = this._.context.pixelRatio) && void 0 !== _a ? _a : that.internalProps.pixelRatio) && void 0 !== _b ? _b : window.devicePixelRatio);
138
142
  }
139
143
  }, internalProps.cellTextOverflows = {}, internalProps.focusedTable = !1, internalProps.theme = themes_1.default.of(null !== (_r = options.theme) && void 0 !== _r ? _r : themes_1.default.DEFAULT),
140
- internalProps.theme.isPivot = this.isPivotTable(), (0, icons_1.setIconColor)(internalProps.theme.functionalIconsStyle),
144
+ internalProps.theme.isPivot = this.isPivotTable(), this._updateFunctionalIcons(),
141
145
  container ? (clearDOM && (container.innerHTML = ""), container.appendChild(internalProps.element),
142
146
  this._updateSize()) : this._updateSize(), internalProps.bodyHelper = new body_helper_1.BodyHelper(this),
143
147
  internalProps.headerHelper = new header_helper_1.HeaderHelper(this), internalProps.rowSeriesNumberHelper = new row_series_number_helper_1.RowSeriesNumberHelper(this),
@@ -1078,7 +1082,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1078
1082
  internalProps._rowHeightsMap = new row_height_map_1.NumberRangeMap(this), internalProps._rowRangeHeightsMap = new Map,
1079
1083
  internalProps._colRangeWidthsMap = new Map), internalProps.stick.changedCells.clear(),
1080
1084
  internalProps.theme = themes_1.default.of(null !== (_p = options.theme) && void 0 !== _p ? _p : themes_1.default.DEFAULT),
1081
- internalProps.theme.isPivot = this.isPivotTable(), (0, icons_1.setIconColor)(internalProps.theme.functionalIconsStyle),
1085
+ internalProps.theme.isPivot = this.isPivotTable(), this._updateFunctionalIcons(),
1082
1086
  this.scenegraph.updateStageBackground(), internalProps.autoWrapText = options.autoWrapText,
1083
1087
  internalProps.enableLineBreak = options.enableLineBreak, internalProps.allowFrozenColCount = null !== (_q = options.allowFrozenColCount) && void 0 !== _q ? _q : 0,
1084
1088
  internalProps.limitMaxAutoWidth = null !== (_r = options.limitMaxAutoWidth) && void 0 !== _r ? _r : 450,
@@ -1403,13 +1407,19 @@ class BaseTable extends EventTarget_1.EventTarget {
1403
1407
  this.options.autoWrapText = autoWrapText, this.scenegraph.clearCells(), this.clearCellStyleCache(),
1404
1408
  this.scenegraph.createSceneGraph(), this.render());
1405
1409
  }
1410
+ _updateFunctionalIcons() {
1411
+ var _a, _b, _c;
1412
+ (0, icons_1.setIconColor)(this.internalProps.theme.functionalIconsStyle), null === (_a = this.internalProps.headerHelper) || void 0 === _a || _a.updateIcons(),
1413
+ null === (_b = this.internalProps.bodyHelper) || void 0 === _b || _b.updateIcons(),
1414
+ null === (_c = this.internalProps.rowSeriesNumberHelper) || void 0 === _c || _c.updateIcons();
1415
+ }
1406
1416
  get theme() {
1407
1417
  return this.internalProps.theme;
1408
1418
  }
1409
1419
  set theme(theme) {
1410
1420
  this.internalProps.theme = themes_1.default.of(null != theme ? theme : themes_1.default.DEFAULT),
1411
1421
  this.internalProps.theme.isPivot = this.isPivotTable(), this.options.theme = theme,
1412
- (0, icons_1.setIconColor)(this.internalProps.theme.functionalIconsStyle);
1422
+ this._updateFunctionalIcons();
1413
1423
  }
1414
1424
  updateTheme(theme) {
1415
1425
  const oldHoverState = {
@@ -1417,7 +1427,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1417
1427
  row: this.stateManager.hover.cellPos.row
1418
1428
  };
1419
1429
  this.internalProps.theme = themes_1.default.of(null != theme ? theme : themes_1.default.DEFAULT),
1420
- this.internalProps.theme.isPivot = this.isPivotTable(), (0, icons_1.setIconColor)(this.internalProps.theme.functionalIconsStyle),
1430
+ this.internalProps.theme.isPivot = this.isPivotTable(), this._updateFunctionalIcons(),
1421
1431
  this.options.theme = theme, this.scenegraph.updateComponent(), this.scenegraph.updateStageBackground(),
1422
1432
  this.scenegraph.clearCells(), this.clearCellStyleCache(), this.scenegraph.createSceneGraph(),
1423
1433
  this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row), this.render();
@@ -1432,20 +1442,20 @@ class BaseTable extends EventTarget_1.EventTarget {
1432
1442
  getBodyColumnType(col, row) {
1433
1443
  var _a, _b;
1434
1444
  const cellType = null !== (_b = null === (_a = this.internalProps.layoutMap.getBody(col, row)) || void 0 === _a ? void 0 : _a.cellType) && void 0 !== _b ? _b : "text";
1435
- return (0, get_prop_1.getProp)("cellType", {
1445
+ return normalizeCellType((0, get_prop_1.getProp)("cellType", {
1436
1446
  cellType: cellType
1437
- }, col, row, this);
1447
+ }, col, row, this));
1438
1448
  }
1439
1449
  getCellType(col, row) {
1440
1450
  let cellType;
1441
1451
  if (this.isSeriesNumberInHeader(col, row)) {
1442
1452
  const seriesHeaderCellType = this.internalProps.layoutMap.getSeriesNumberHeader(col, row).cellType;
1443
- return "radio" === seriesHeaderCellType ? "text" : seriesHeaderCellType;
1453
+ return normalizeCellType("radio" === seriesHeaderCellType ? "text" : seriesHeaderCellType);
1444
1454
  }
1445
1455
  return cellType = this.isHeader(col, row) ? this.internalProps.layoutMap.getHeader(col, row).headerType : this.internalProps.layoutMap.getBody(col, row).cellType,
1446
- (0, get_prop_1.getProp)("cellType", {
1456
+ normalizeCellType((0, get_prop_1.getProp)("cellType", {
1447
1457
  cellType: cellType
1448
- }, col, row, this);
1458
+ }, col, row, this));
1449
1459
  }
1450
1460
  getHeaderField(col, row) {
1451
1461
  return this.internalProps.layoutMap.getHeaderField(col, row);