@visactor/vtable 1.2.0 → 1.2.1-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 (57) hide show
  1. package/cjs/components/tooltip/TooltipHandler.js +5 -5
  2. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  3. package/cjs/components/tooltip/logic/BubbleTooltipElement.d.ts +2 -0
  4. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +25 -7
  5. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  6. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  7. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  8. package/cjs/core/BaseTable.js +3 -3
  9. package/cjs/core/BaseTable.js.map +1 -1
  10. package/cjs/index.d.ts +1 -1
  11. package/cjs/index.js +2 -2
  12. package/cjs/index.js.map +1 -1
  13. package/cjs/scenegraph/icon/icon-update.js +1 -0
  14. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  15. package/cjs/state/state.js +2 -1
  16. package/cjs/state/state.js.map +1 -1
  17. package/cjs/themes/theme.js +7 -1
  18. package/cjs/themes/theme.js.map +1 -1
  19. package/cjs/ts-types/base-table.d.ts +2 -0
  20. package/cjs/ts-types/base-table.js.map +1 -1
  21. package/cjs/ts-types/icon.d.ts +3 -0
  22. package/cjs/ts-types/icon.js.map +1 -1
  23. package/cjs/ts-types/theme.d.ts +2 -0
  24. package/cjs/ts-types/theme.js.map +1 -1
  25. package/cjs/ts-types/tooltip.d.ts +3 -0
  26. package/cjs/ts-types/tooltip.js.map +1 -1
  27. package/cjs/vrender.js.map +1 -1
  28. package/dist/vtable.js +76 -14
  29. package/dist/vtable.min.js +2 -2
  30. package/es/components/tooltip/TooltipHandler.js +5 -5
  31. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  32. package/es/components/tooltip/logic/BubbleTooltipElement.d.ts +2 -0
  33. package/es/components/tooltip/logic/BubbleTooltipElement.js +25 -7
  34. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  35. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  36. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  37. package/es/core/BaseTable.js +3 -3
  38. package/es/core/BaseTable.js.map +1 -1
  39. package/es/index.d.ts +1 -1
  40. package/es/index.js +1 -1
  41. package/es/index.js.map +1 -1
  42. package/es/scenegraph/icon/icon-update.js +1 -0
  43. package/es/scenegraph/icon/icon-update.js.map +1 -1
  44. package/es/state/state.js +2 -1
  45. package/es/state/state.js.map +1 -1
  46. package/es/themes/theme.js +7 -1
  47. package/es/themes/theme.js.map +1 -1
  48. package/es/ts-types/base-table.d.ts +2 -0
  49. package/es/ts-types/base-table.js.map +1 -1
  50. package/es/ts-types/icon.d.ts +3 -0
  51. package/es/ts-types/icon.js.map +1 -1
  52. package/es/ts-types/theme.d.ts +2 -0
  53. package/es/ts-types/theme.js.map +1 -1
  54. package/es/ts-types/tooltip.d.ts +3 -0
  55. package/es/ts-types/tooltip.js.map +1 -1
  56. package/es/vrender.js.map +1 -1
  57. package/package.json +3 -3
@@ -19,5 +19,8 @@ export type TooltipOptions = {
19
19
  color?: string;
20
20
  padding?: number[];
21
21
  arrowMark?: boolean;
22
+ maxWidth?: number;
23
+ maxHeight?: number;
22
24
  };
25
+ disappearDelay?: number;
23
26
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/tooltip.ts"],"names":[],"mappings":"","file":"tooltip.js","sourcesContent":["import type { RectProps } from './common';\nimport type { Placement } from './table-engine';\n\nexport type TooltipType = 'bubble-tooltip' | 'tooltip' | 'container';\n\n/** 显示弹出提示内容 */\nexport type TooltipOptions = {\n /** tooltip内容 */\n content: string;\n /** tooltip框的位置 优先级高于referencePosition */\n position?: { x: number; y: number };\n /** tooltip框的参考位置 如果设置了position则该配置不生效 */\n referencePosition?: {\n /** 参考位置设置为一个矩形边界 设置placement来指定处于边界位置的方位*/\n rect: RectProps;\n /** 指定处于边界位置的方位 */\n placement?: Placement;\n };\n /** 需要自定义样式指定className dom的tooltip生效 */\n className?: string;\n /** 设置tooltip的样式 */\n style?: {\n bgColor?: string;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n padding?: number[];\n arrowMark?: boolean;\n };\n};\n"]}
1
+ {"version":3,"sources":["../src/ts-types/tooltip.ts"],"names":[],"mappings":"","file":"tooltip.js","sourcesContent":["import type { RectProps } from './common';\nimport type { Placement } from './table-engine';\n\nexport type TooltipType = 'bubble-tooltip' | 'tooltip' | 'container';\n\n/** 显示弹出提示内容 */\nexport type TooltipOptions = {\n /** tooltip内容 */\n content: string;\n /** tooltip框的位置 优先级高于referencePosition */\n position?: { x: number; y: number };\n /** tooltip框的参考位置 如果设置了position则该配置不生效 */\n referencePosition?: {\n /** 参考位置设置为一个矩形边界 设置placement来指定处于边界位置的方位*/\n rect: RectProps;\n /** 指定处于边界位置的方位 */\n placement?: Placement;\n };\n /** 需要自定义样式指定className dom的tooltip生效 */\n className?: string;\n /** 设置tooltip的样式 */\n style?: {\n bgColor?: string;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n padding?: number[];\n arrowMark?: boolean;\n maxWidth?: number;\n maxHeight?: number;\n };\n /** 设置tooltip的消失时间 */\n disappearDelay?: number;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAChC,yDAA8F;AAC9F,yDAAqE;AACrE,yDAmBgC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,SAAgB,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAA,+BAAgB,GAAE,CAAC;IAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;QAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;QACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;KACxB;IACD,IAAA,0BAAW,GAAE,CAAC;IACd,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,8BAAe,GAAE,CAAC;IAClB,IAAA,gCAAiB,GAAE,CAAC;IACpB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,+BAAgB,GAAE,CAAC;IACnB,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,+BAAgB,GAAE,CAAC;AACrB,CAAC;AA/BD,gDA+BC;AAED,yDAAuC;AACvC,yDAAuC","file":"vrender.js","sourcesContent":["import '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule } from '@visactor/vrender-core';\nimport { loadBrowserEnv, loadNodeEnv } from '@visactor/vrender-kits';\nimport {\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.2.0\";\n\nlet registed = false;\nexport function registerForVrender() {\n if (registed) {\n return;\n }\n registed = true;\n // 注册内置组件\n preLoadAllModule();\n\n if (isBrowserEnv()) {\n loadBrowserEnv(container);\n } else if (isNodeEnv()) {\n loadNodeEnv(container);\n }\n registerArc();\n registerArc3d();\n registerArea();\n registerCircle();\n registerGlyph();\n registerGroup();\n registerImage();\n registerLine();\n registerPath();\n registerPolygon();\n registerPyramid3d();\n registerRect();\n registerRect3d();\n registerRichtext();\n registerShadowRoot();\n registerSymbol();\n registerText();\n registerWrapText();\n}\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\n"]}
1
+ {"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAChC,yDAA8F;AAC9F,yDAAqE;AACrE,yDAmBgC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,SAAgB,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAA,+BAAgB,GAAE,CAAC;IAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;QAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;QACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;KACxB;IACD,IAAA,0BAAW,GAAE,CAAC;IACd,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,8BAAe,GAAE,CAAC;IAClB,IAAA,gCAAiB,GAAE,CAAC;IACpB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,+BAAgB,GAAE,CAAC;IACnB,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,+BAAgB,GAAE,CAAC;AACrB,CAAC;AA/BD,gDA+BC;AAED,yDAAuC;AACvC,yDAAuC","file":"vrender.js","sourcesContent":["import '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule } from '@visactor/vrender-core';\nimport { loadBrowserEnv, loadNodeEnv } from '@visactor/vrender-kits';\nimport {\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.2.1-alpha.1\";\n\nlet registed = false;\nexport function registerForVrender() {\n if (registed) {\n return;\n }\n registed = true;\n // 注册内置组件\n preLoadAllModule();\n\n if (isBrowserEnv()) {\n loadBrowserEnv(container);\n } else if (isNodeEnv()) {\n loadNodeEnv(container);\n }\n registerArc();\n registerArc3d();\n registerArea();\n registerCircle();\n registerGlyph();\n registerGroup();\n registerImage();\n registerLine();\n registerPath();\n registerPolygon();\n registerPyramid3d();\n registerRect();\n registerRect3d();\n registerRichtext();\n registerShadowRoot();\n registerSymbol();\n registerText();\n registerWrapText();\n}\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\n"]}
package/dist/vtable.js CHANGED
@@ -25045,6 +25045,12 @@
25045
25045
  },
25046
25046
  get color() {
25047
25047
  return tooltip.color ?? '#FFF';
25048
+ },
25049
+ get maxWidth() {
25050
+ return tooltip.maxWidth;
25051
+ },
25052
+ get maxHeight() {
25053
+ return tooltip.maxHeight;
25048
25054
  }
25049
25055
  };
25050
25056
  }
@@ -25209,7 +25215,7 @@
25209
25215
  return hasThemeProperty(obj, names) || hasThemeProperty(superTheme, names);
25210
25216
  }
25211
25217
  extends(obj) {
25212
- return new TableTheme(obj, this);
25218
+ return new TableTheme(obj, this.internalTheme.superTheme || this.internalTheme.obj);
25213
25219
  }
25214
25220
  getStyle(style) {
25215
25221
  const that = this;
@@ -48491,6 +48497,7 @@
48491
48497
  },
48492
48498
  placement: baseIcon.tooltip.placement
48493
48499
  },
48500
+ disappearDelay: baseIcon.tooltip.disappearDelay,
48494
48501
  style: Object.assign({}, scene.table.internalProps.theme?.tooltipStyle, baseIcon.tooltip?.style)
48495
48502
  };
48496
48503
  if (!scene.table.internalProps.tooltipHandler.isBinded(tooltipOptions)) {
@@ -52210,7 +52217,8 @@
52210
52217
  rect: iconInfo.position,
52211
52218
  placement: inlineIcon.attribute.tooltip.placement
52212
52219
  },
52213
- style: Object.assign({}, this.table.internalProps.theme?.tooltipStyle, inlineIcon.tooltip?.style, inlineIcon.attribute?.tooltip?.style)
52220
+ style: Object.assign({}, this.table.internalProps.theme?.tooltipStyle, inlineIcon.tooltip?.style, inlineIcon.attribute?.tooltip?.style),
52221
+ disappearDelay: inlineIcon.attribute.tooltip.disappearDelay
52214
52222
  };
52215
52223
  if (!this.table.internalProps.tooltipHandler.isBinded(tooltipOptions)) {
52216
52224
  this.table.showTooltip(col, row, tooltipOptions);
@@ -56406,8 +56414,8 @@
56406
56414
  .vtable__bubble-tooltip-element {
56407
56415
  position: absolute;
56408
56416
 
56409
- pointer-events: none;
56410
- user-select: none;
56417
+ // pointer-events: none;
56418
+ //user-select: none;
56411
56419
  max-width: 300px;
56412
56420
  z-index: 99999;
56413
56421
 
@@ -56421,6 +56429,8 @@
56421
56429
  }
56422
56430
  .vtable__bubble-tooltip-element--hidden {
56423
56431
  opacity: 0;
56432
+ pointer-events: none;
56433
+ user-select: none;
56424
56434
  /* transform: translate(-50%, -50%); */
56425
56435
  transition: opacity 75ms linear;
56426
56436
  }
@@ -56439,12 +56449,30 @@
56439
56449
  white-space: pre-wrap;
56440
56450
  margin: 0;
56441
56451
  box-sizing: border-box;
56442
- overflow: hidden;
56452
+ overflow: auto;
56443
56453
  word-wrap: break-word;
56444
56454
  position: relative;
56445
56455
  background-color: #FFF;
56446
56456
  z-index: 2;
56447
- border-radius: 4px
56457
+ border-radius: 4px;
56458
+ }
56459
+ /* WebKit Microsoft Edge(新版): */
56460
+ .vtable__bubble-tooltip-element__content::-webkit-scrollbar {
56461
+ width: 0;
56462
+ height: 0;
56463
+ background-color: transparent;
56464
+ }
56465
+ /* Opera Firefox */
56466
+ .vtable__bubble-tooltip-element__content > scrollbar-track {
56467
+ width: 0;
56468
+ height: 0;
56469
+ background-color: transparent;
56470
+ }
56471
+ /* Internet Explorer 11 和 Microsoft Edge(旧版) */
56472
+ .vtable__bubble-tooltip-element__content > scrollbar {
56473
+ width: 0;
56474
+ height: 0;
56475
+ background-color: transparent;
56448
56476
  }
56449
56477
  .vtable__bubble-tooltip-element__triangle {
56450
56478
  /* font-size: .75rem; */
@@ -56473,17 +56501,31 @@
56473
56501
  _rootElement;
56474
56502
  _messageElement;
56475
56503
  _triangleElement;
56504
+ _disappearDelay;
56505
+ _disappearDelayId;
56476
56506
  constructor() {
56477
56507
  this._handler = new EventHandler();
56478
56508
  const rootElement = (this._rootElement = createElement('div', [TOOLTIP_CLASS, HIDDEN_CLASS]));
56479
- const messageElement = createElement('span', [CONTENT_CLASS]);
56509
+ const messageElement = createElement('div', [CONTENT_CLASS]);
56480
56510
  const triangle = createElement('span', [TRIANGLE_CLASS]);
56481
56511
  rootElement.appendChild(triangle);
56482
56512
  rootElement.appendChild(messageElement);
56483
56513
  this._messageElement = rootElement.querySelector(`.${CONTENT_CLASS}`) || undefined;
56484
56514
  this._triangleElement = rootElement.querySelector(`.${TRIANGLE_CLASS}`) || undefined;
56515
+ rootElement.addEventListener('mousemove', () => {
56516
+ this._disappearDelayId && clearTimeout(this._disappearDelayId);
56517
+ });
56518
+ rootElement.addEventListener('mouseleave', () => {
56519
+ this._disappearDelay = undefined;
56520
+ this.unbindFromCell();
56521
+ });
56522
+ messageElement.addEventListener('wheel', e => {
56523
+ e.stopPropagation();
56524
+ });
56485
56525
  }
56486
56526
  bindToCell(table, col, row, tooltipInstanceInfo, confine) {
56527
+ this._disappearDelay = tooltipInstanceInfo?.disappearDelay;
56528
+ this._disappearDelayId && clearTimeout(this._disappearDelayId);
56487
56529
  const rootElement = this._rootElement;
56488
56530
  const messageElement = this._messageElement;
56489
56531
  const triangle = this._triangleElement;
@@ -56504,6 +56546,10 @@
56504
56546
  tooltipInstanceInfo?.style?.color && (messageElement.style.color = tooltipInstanceInfo?.style?.color);
56505
56547
  tooltipInstanceInfo?.style?.padding &&
56506
56548
  (messageElement.style.padding = `${tooltipInstanceInfo?.style?.padding.join('px ')}px`);
56549
+ tooltipInstanceInfo?.style?.maxHeight &&
56550
+ (messageElement.style.maxHeight = `${tooltipInstanceInfo?.style?.maxHeight}px`);
56551
+ tooltipInstanceInfo?.style?.maxWidth &&
56552
+ (messageElement.style.maxWidth = `${tooltipInstanceInfo?.style?.maxWidth}px`);
56507
56553
  messageElement && (messageElement.textContent = tooltipInstanceInfo?.content);
56508
56554
  const binded = this._bindToCell(table, col, row, tooltipInstanceInfo?.position, tooltipInstanceInfo?.referencePosition, confine, tooltipInstanceInfo?.style?.arrowMark);
56509
56555
  if (binded) {
@@ -56539,10 +56585,21 @@
56539
56585
  }
56540
56586
  }
56541
56587
  unbindFromCell() {
56542
- const rootElement = this._rootElement;
56543
- if (rootElement?.parentElement) {
56544
- rootElement.classList.remove(SHOWN_CLASS);
56545
- rootElement.classList.add(HIDDEN_CLASS);
56588
+ if (this._disappearDelay) {
56589
+ this._disappearDelayId = setTimeout(() => {
56590
+ const rootElement = this._rootElement;
56591
+ if (rootElement?.parentElement) {
56592
+ rootElement.classList.remove(SHOWN_CLASS);
56593
+ rootElement.classList.add(HIDDEN_CLASS);
56594
+ }
56595
+ }, this._disappearDelay ?? 0);
56596
+ }
56597
+ else {
56598
+ const rootElement = this._rootElement;
56599
+ if (rootElement?.parentElement) {
56600
+ rootElement.classList.remove(SHOWN_CLASS);
56601
+ rootElement.classList.add(HIDDEN_CLASS);
56602
+ }
56546
56603
  }
56547
56604
  }
56548
56605
  _canBindToCell(table, col, row) {
@@ -56870,7 +56927,8 @@
56870
56927
  placement: Placement.bottom,
56871
56928
  rect
56872
56929
  },
56873
- style: { arrowMark: false }
56930
+ disappearDelay: table.internalProps.tooltip.overflowTextTooltipDisappearDelay ?? 0,
56931
+ style: table.theme.tooltipStyle
56874
56932
  };
56875
56933
  }
56876
56934
  else if (table.internalProps.tooltip?.isShowOverflowTextTooltip) {
@@ -56886,6 +56944,7 @@
56886
56944
  placement: Placement.bottom,
56887
56945
  rect
56888
56946
  },
56947
+ disappearDelay: table.internalProps.tooltip.overflowTextTooltipDisappearDelay ?? 0,
56889
56948
  style: table.theme.tooltipStyle
56890
56949
  };
56891
56950
  }
@@ -59044,7 +59103,7 @@
59044
59103
  return TABLE_EVENT_TYPE;
59045
59104
  }
59046
59105
  options;
59047
- version = "1.2.0";
59106
+ version = "1.2.1-alpha.1";
59048
59107
  pagination;
59049
59108
  id = `VTable${Date.now()}`;
59050
59109
  headerStyleCache;
@@ -60248,6 +60307,7 @@
60248
60307
  IconCache.clearAll();
60249
60308
  super.release?.();
60250
60309
  internalProps.handler?.release?.();
60310
+ this.eventManager.release();
60251
60311
  internalProps.focusControl?.release?.();
60252
60312
  internalProps.legends?.forEach(legend => {
60253
60313
  legend?.release();
@@ -60269,6 +60329,8 @@
60269
60329
  }
60270
60330
  this.editorManager?.editingEditor?.onEnd?.();
60271
60331
  this.isReleased = true;
60332
+ this.scenegraph = null;
60333
+ this.internalProps = null;
60272
60334
  }
60273
60335
  fireListeners(type, event) {
60274
60336
  return super.fireListeners(type, event);
@@ -72023,7 +72085,7 @@
72023
72085
  }
72024
72086
 
72025
72087
  registerForVrender();
72026
- const version = "1.2.0";
72088
+ const version = "1.2.1-alpha.1";
72027
72089
  function getIcons() {
72028
72090
  return get$2();
72029
72091
  }