dockview-core 3.1.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/cjs/api/component.api.d.ts +0 -2
  2. package/dist/cjs/api/component.api.js +0 -10
  3. package/dist/cjs/dnd/abstractDragHandler.js +4 -2
  4. package/dist/cjs/dnd/dropTargetAnchorContainer.d.ts +16 -0
  5. package/dist/cjs/dnd/dropTargetAnchorContainer.js +105 -0
  6. package/dist/cjs/dnd/droptarget.d.ts +16 -0
  7. package/dist/cjs/dnd/droptarget.js +138 -14
  8. package/dist/cjs/dnd/ghost.d.ts +4 -1
  9. package/dist/cjs/dnd/ghost.js +3 -2
  10. package/dist/cjs/dnd/groupDragHandler.js +3 -1
  11. package/dist/cjs/dockview/components/panel/content.js +10 -13
  12. package/dist/cjs/dockview/components/popupService.d.ts +13 -0
  13. package/dist/cjs/dockview/components/popupService.js +76 -0
  14. package/dist/cjs/dockview/components/tab/tab.js +17 -7
  15. package/dist/cjs/dockview/components/titlebar/tabOverflowControl.d.ts +8 -0
  16. package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +20 -0
  17. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +45 -0
  18. package/dist/cjs/dockview/components/titlebar/tabs.js +288 -0
  19. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +8 -9
  20. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +108 -152
  21. package/dist/cjs/dockview/components/titlebar/voidContainer.js +2 -9
  22. package/dist/cjs/dockview/dockviewComponent.d.ts +10 -3
  23. package/dist/cjs/dockview/dockviewComponent.js +71 -30
  24. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -0
  25. package/dist/cjs/dockview/dockviewGroupPanelModel.js +31 -0
  26. package/dist/cjs/dockview/dockviewPanelModel.d.ts +5 -3
  27. package/dist/cjs/dockview/dockviewPanelModel.js +25 -4
  28. package/dist/cjs/dockview/framework.d.ts +4 -1
  29. package/dist/cjs/dockview/options.d.ts +8 -5
  30. package/dist/cjs/dockview/options.js +3 -1
  31. package/dist/cjs/dockview/theme.d.ts +31 -0
  32. package/dist/cjs/dockview/theme.js +42 -0
  33. package/dist/cjs/dockview/types.d.ts +5 -1
  34. package/dist/cjs/dom.d.ts +1 -0
  35. package/dist/cjs/dom.js +15 -1
  36. package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -0
  37. package/dist/cjs/index.d.ts +1 -0
  38. package/dist/cjs/index.js +1 -0
  39. package/dist/cjs/paneview/paneviewComponent.js +1 -0
  40. package/dist/cjs/scrollbar.d.ts +12 -0
  41. package/dist/cjs/scrollbar.js +106 -0
  42. package/dist/cjs/splitview/splitview.js +1 -0
  43. package/dist/cjs/splitview/splitviewComponent.js +1 -0
  44. package/dist/dockview-core.amd.js +930 -293
  45. package/dist/dockview-core.amd.js.map +1 -1
  46. package/dist/dockview-core.amd.min.js +2 -2
  47. package/dist/dockview-core.amd.min.js.map +1 -1
  48. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  49. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  50. package/dist/dockview-core.amd.noStyle.js +929 -292
  51. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  52. package/dist/dockview-core.cjs.js +930 -293
  53. package/dist/dockview-core.cjs.js.map +1 -1
  54. package/dist/dockview-core.esm.js +923 -294
  55. package/dist/dockview-core.esm.js.map +1 -1
  56. package/dist/dockview-core.esm.min.js +2 -2
  57. package/dist/dockview-core.esm.min.js.map +1 -1
  58. package/dist/dockview-core.js +930 -293
  59. package/dist/dockview-core.js.map +1 -1
  60. package/dist/dockview-core.min.js +2 -2
  61. package/dist/dockview-core.min.js.map +1 -1
  62. package/dist/dockview-core.min.noStyle.js +2 -2
  63. package/dist/dockview-core.min.noStyle.js.map +1 -1
  64. package/dist/dockview-core.noStyle.js +929 -292
  65. package/dist/dockview-core.noStyle.js.map +1 -1
  66. package/dist/esm/api/component.api.d.ts +0 -2
  67. package/dist/esm/api/component.api.js +0 -6
  68. package/dist/esm/dnd/abstractDragHandler.js +4 -2
  69. package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +16 -0
  70. package/dist/esm/dnd/dropTargetAnchorContainer.js +74 -0
  71. package/dist/esm/dnd/droptarget.d.ts +16 -0
  72. package/dist/esm/dnd/droptarget.js +134 -14
  73. package/dist/esm/dnd/ghost.d.ts +4 -1
  74. package/dist/esm/dnd/ghost.js +3 -2
  75. package/dist/esm/dnd/groupDragHandler.js +3 -1
  76. package/dist/esm/dockview/components/panel/content.js +10 -13
  77. package/dist/esm/dockview/components/popupService.d.ts +13 -0
  78. package/dist/esm/dockview/components/popupService.js +53 -0
  79. package/dist/esm/dockview/components/tab/tab.js +15 -7
  80. package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +8 -0
  81. package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +16 -0
  82. package/dist/esm/dockview/components/titlebar/tabs.d.ts +45 -0
  83. package/dist/esm/dockview/components/titlebar/tabs.js +183 -0
  84. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +8 -9
  85. package/dist/esm/dockview/components/titlebar/tabsContainer.js +133 -162
  86. package/dist/esm/dockview/components/titlebar/voidContainer.js +2 -9
  87. package/dist/esm/dockview/dockviewComponent.d.ts +10 -3
  88. package/dist/esm/dockview/dockviewComponent.js +69 -24
  89. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -0
  90. package/dist/esm/dockview/dockviewGroupPanelModel.js +27 -0
  91. package/dist/esm/dockview/dockviewPanelModel.d.ts +5 -3
  92. package/dist/esm/dockview/dockviewPanelModel.js +14 -4
  93. package/dist/esm/dockview/framework.d.ts +4 -1
  94. package/dist/esm/dockview/options.d.ts +8 -5
  95. package/dist/esm/dockview/options.js +3 -1
  96. package/dist/esm/dockview/theme.d.ts +31 -0
  97. package/dist/esm/dockview/theme.js +39 -0
  98. package/dist/esm/dockview/types.d.ts +5 -1
  99. package/dist/esm/dom.d.ts +1 -0
  100. package/dist/esm/dom.js +13 -0
  101. package/dist/esm/gridview/baseComponentGridview.d.ts +3 -0
  102. package/dist/esm/index.d.ts +1 -0
  103. package/dist/esm/index.js +1 -0
  104. package/dist/esm/paneview/paneviewComponent.js +1 -0
  105. package/dist/esm/scrollbar.d.ts +12 -0
  106. package/dist/esm/scrollbar.js +80 -0
  107. package/dist/esm/splitview/splitview.js +1 -0
  108. package/dist/esm/splitview/splitviewComponent.js +1 -0
  109. package/dist/styles/dockview.css +444 -76
  110. package/package.json +1 -1
@@ -0,0 +1,80 @@
1
+ import { toggleClass, watchElementResize } from './dom';
2
+ import { addDisposableListener } from './events';
3
+ import { CompositeDisposable } from './lifecycle';
4
+ import { clamp } from './math';
5
+ export class Scrollbar extends CompositeDisposable {
6
+ get element() {
7
+ return this._element;
8
+ }
9
+ constructor(scrollableElement) {
10
+ super();
11
+ this.scrollableElement = scrollableElement;
12
+ this._scrollLeft = 0;
13
+ this._element = document.createElement('div');
14
+ this._element.className = 'dv-scrollable';
15
+ this._horizontalScrollbar = document.createElement('div');
16
+ this._horizontalScrollbar.className = 'dv-scrollbar-horizontal';
17
+ this.element.appendChild(scrollableElement);
18
+ this.element.appendChild(this._horizontalScrollbar);
19
+ this.addDisposables(addDisposableListener(this.element, 'wheel', (event) => {
20
+ this._scrollLeft += event.deltaY * Scrollbar.MouseWheelSpeed;
21
+ this.calculateScrollbarStyles();
22
+ }), addDisposableListener(this._horizontalScrollbar, 'pointerdown', (event) => {
23
+ event.preventDefault();
24
+ toggleClass(this.element, 'dv-scrollable-scrolling', true);
25
+ const originalClientX = event.clientX;
26
+ const originalScrollLeft = this._scrollLeft;
27
+ const onPointerMove = (event) => {
28
+ const deltaX = event.clientX - originalClientX;
29
+ const { clientWidth } = this.element;
30
+ const { scrollWidth } = this.scrollableElement;
31
+ const p = clientWidth / scrollWidth;
32
+ this._scrollLeft = originalScrollLeft + deltaX / p;
33
+ this.calculateScrollbarStyles();
34
+ };
35
+ const onEnd = () => {
36
+ toggleClass(this.element, 'dv-scrollable-scrolling', false);
37
+ document.removeEventListener('pointermove', onPointerMove);
38
+ document.removeEventListener('pointerup', onEnd);
39
+ document.removeEventListener('pointercancel', onEnd);
40
+ };
41
+ document.addEventListener('pointermove', onPointerMove);
42
+ document.addEventListener('pointerup', onEnd);
43
+ document.addEventListener('pointercancel', onEnd);
44
+ }), addDisposableListener(this.element, 'scroll', () => {
45
+ this.calculateScrollbarStyles();
46
+ }), addDisposableListener(this.scrollableElement, 'scroll', () => {
47
+ this._scrollLeft = this.scrollableElement.scrollLeft;
48
+ this.calculateScrollbarStyles();
49
+ }), watchElementResize(this.element, () => {
50
+ toggleClass(this.element, 'dv-scrollable-resizing', true);
51
+ if (this._animationTimer) {
52
+ clearTimeout(this._animationTimer);
53
+ }
54
+ this._animationTimer = setTimeout(() => {
55
+ clearTimeout(this._animationTimer);
56
+ toggleClass(this.element, 'dv-scrollable-resizing', false);
57
+ }, 500);
58
+ this.calculateScrollbarStyles();
59
+ }));
60
+ }
61
+ calculateScrollbarStyles() {
62
+ const { clientWidth } = this.element;
63
+ const { scrollWidth } = this.scrollableElement;
64
+ const hasScrollbar = scrollWidth > clientWidth;
65
+ if (hasScrollbar) {
66
+ const px = clientWidth * (clientWidth / scrollWidth);
67
+ this._horizontalScrollbar.style.width = `${px}px`;
68
+ this._scrollLeft = clamp(this._scrollLeft, 0, this.scrollableElement.scrollWidth - clientWidth);
69
+ this.scrollableElement.scrollLeft = this._scrollLeft;
70
+ const percentageComplete = this._scrollLeft / (scrollWidth - clientWidth);
71
+ this._horizontalScrollbar.style.left = `${(clientWidth - px) * percentageComplete}px`;
72
+ }
73
+ else {
74
+ this._horizontalScrollbar.style.width = `0px`;
75
+ this._horizontalScrollbar.style.left = `0px`;
76
+ this._scrollLeft = 0;
77
+ }
78
+ }
79
+ }
80
+ Scrollbar.MouseWheelSpeed = 1;
@@ -112,6 +112,7 @@ export class Splitview {
112
112
  }
113
113
  set margin(value) {
114
114
  this._margin = value;
115
+ toggleClass(this.element, 'dv-splitview-has-margin', value !== 0);
115
116
  }
116
117
  constructor(container, options) {
117
118
  var _a, _b;
@@ -258,6 +258,7 @@ export class SplitviewComponent extends Resizable {
258
258
  for (const view of views) {
259
259
  view.dispose();
260
260
  }
261
+ this.element.remove();
261
262
  super.dispose();
262
263
  }
263
264
  }