@datagrok-libraries/dock-spawn-dg 0.1.0 → 0.1.2

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.
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@datagrok-libraries/dock-spawn-dg",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A TypeScript Version of dock-spawn with changes for Datagrok",
5
5
  "license": "MIT",
6
- "author": {
6
+ "author": {
7
7
  "name": "Andrey Sharapov",
8
8
  "email": "andrey.sharapov@softwarecountry.com"
9
9
  },
10
10
  "scripts": {
11
- "build": "tsc",
11
+ "build": "grok check --soft && tsc",
12
12
  "clean": "tsc --build --clean"
13
13
  },
14
14
  "dependencies": {
@@ -16,6 +16,7 @@
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/wu": "^2.1.44",
19
+ "datagrok-tools": "^4.14.20",
19
20
  "ts-loader": "^9.5.1",
20
21
  "typescript": "^5.6.3",
21
22
  "webpack": "^5.95.0",
@@ -25,5 +26,6 @@
25
26
  "type": "git",
26
27
  "url": "git@github.com:datagrok-ai/public.git",
27
28
  "directory": "libraries/dock-spawn-dg"
28
- }
29
+ },
30
+ "sideEffects": ["*.css"]
29
31
  }
@@ -118,7 +118,7 @@ export class DockManager {
118
118
  return this.checkYBoundsWithinDockContainer(container, currentMousePosition, previousMousePosition, resizeNorth, resizeSouth);
119
119
  let rect = this.element.getBoundingClientRect();
120
120
  let dy = Math.floor(currentMousePosition.y - previousMousePosition.y);
121
- let topBounds = container.offsetTop + dy + rect.top < 0;
121
+ let topBounds = container.offsetTop + dy < 0;
122
122
  let bottomBounds = container.offsetTop + dy + rect.top > (window.innerHeight - 16);
123
123
  if (topBounds) {
124
124
  previousMousePosition.y = currentMousePosition.y;
@@ -156,7 +156,7 @@ export class DockManager {
156
156
 
157
157
  let rect = this.element.getBoundingClientRect();
158
158
  let dy = Math.floor(currentMousePosition.y - previousMousePosition.y);
159
- let topBounds = container.offsetTop + dy + rect.top < 0;
159
+ let topBounds = container.offsetTop + dy < 0;
160
160
  let bottomBounds = container.offsetTop + dy + rect.top > (window.innerHeight - 16);
161
161
  if (topBounds) {
162
162
  previousMousePosition.y = currentMousePosition.y;
@@ -1 +1 @@
1
- {"version":3,"file":"PanelContainer.d.ts","sourceRoot":"","sources":["PanelContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PanelContainer.d.ts","sourceRoot":"","sources":["PanelContainer.ts"],"names":[],"mappings":"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"}
@@ -383,12 +383,14 @@ export class PanelContainer {
383
383
  this.elementPanel.style.height = height + 'px';
384
384
  //if (this.elementContentContainer.parentElement != this.dockManager.config.dialogRootElement)
385
385
  // this.dockManager.config.dialogRootElement.appendChild(this.elementContentContainer);
386
- const rect = this.elementContentWrapper.getBoundingClientRect();
387
- const rootRect = this.dockManager.config.dialogRootElement.getBoundingClientRect();
388
- this.elementContentContainer.style.left = (rect.x - rootRect.x) + 'px';
389
- this.elementContentContainer.style.top = (rect.y - rootRect.y) + 'px';
390
- this.elementContentContainer.style.width = rect.width + 'px';
391
- this.elementContentContainer.style.height = rect.height + 'px';
386
+ requestAnimationFrame(() => {
387
+ const rect = this.elementContentWrapper.getBoundingClientRect();
388
+ const rootRect = this.dockManager.config.dialogRootElement.getBoundingClientRect();
389
+ this.elementContentContainer.style.left = (rect.x - rootRect.x) + 'px';
390
+ this.elementContentContainer.style.top = (rect.y - rootRect.y) + 'px';
391
+ this.elementContentContainer.style.width = rect.width + 'px';
392
+ this.elementContentContainer.style.height = rect.height + 'px';
393
+ });
392
394
  }
393
395
  setDialogPosition(x, y) {
394
396
  this.elementContentContainer.style.left = x + 'px';
@@ -482,12 +482,14 @@ export class PanelContainer implements IDockContainerWithSize {
482
482
 
483
483
  //if (this.elementContentContainer.parentElement != this.dockManager.config.dialogRootElement)
484
484
  // this.dockManager.config.dialogRootElement.appendChild(this.elementContentContainer);
485
- const rect = this.elementContentWrapper.getBoundingClientRect();
486
- const rootRect = this.dockManager.config.dialogRootElement.getBoundingClientRect();
487
- this.elementContentContainer.style.left = (rect.x - rootRect.x) + 'px';
488
- this.elementContentContainer.style.top = (rect.y - rootRect.y) + 'px';
489
- this.elementContentContainer.style.width = rect.width + 'px';
490
- this.elementContentContainer.style.height = rect.height + 'px';
485
+ requestAnimationFrame(() => {
486
+ const rect = this.elementContentWrapper.getBoundingClientRect();
487
+ const rootRect = this.dockManager.config.dialogRootElement.getBoundingClientRect();
488
+ this.elementContentContainer.style.left = (rect.x - rootRect.x) + 'px';
489
+ this.elementContentContainer.style.top = (rect.y - rootRect.y) + 'px';
490
+ this.elementContentContainer.style.width = rect.width + 'px';
491
+ this.elementContentContainer.style.height = rect.height + 'px';
492
+ });
491
493
  }
492
494
 
493
495
  setDialogPosition(x: number, y: number) {
@@ -15,6 +15,8 @@ export declare class DockSpawnTsWebcomponent extends HTMLElement {
15
15
  private initDockManager;
16
16
  set activePanelTitle(panelTitle: string);
17
17
  getElementInSlot(slot: HTMLSlotElement): HTMLElement;
18
+ saveLayout(): string;
19
+ loadLayout(layout: string): Promise<void>;
18
20
  private handleAddedChildNode;
19
21
  private handleRemovedChildNode;
20
22
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DockSpawnTsWebcomponent.d.ts","sourceRoot":"","sources":["DockSpawnTsWebcomponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAavC,qBAAa,uBAAwB,SAAQ,WAAW;IAC7C,WAAW,EAAE,WAAW,CAAC;IAChC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,mBAAmB,CAA+C;IAC1E,OAAO,CAAC,QAAQ,CAAuB;;IAWvC,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,eAAe;IA6CvB,IAAW,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAI7C;IAEM,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW;IAI3D,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,sBAAsB;IAO9B,iBAAiB;IASjB,oBAAoB;IAEpB,MAAM;IAKN,qBAAqB,CAAC,kBAAkB,EAAE,WAAW,GAAG,cAAc,GAAG,QAAQ;IAOjF,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKpH,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKpI,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKrI,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKlI,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKpI,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;CAK1J"}
1
+ {"version":3,"file":"DockSpawnTsWebcomponent.d.ts","sourceRoot":"","sources":["DockSpawnTsWebcomponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAavC,qBAAa,uBAAwB,SAAQ,WAAW;IAC7C,WAAW,EAAE,WAAW,CAAC;IAChC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,mBAAmB,CAA+C;IAC1E,OAAO,CAAC,QAAQ,CAAuB;;IAWvC,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,eAAe;IA6CvB,IAAW,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAM7C;IAEM,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW;IAIpD,UAAU;IAIJ,UAAU,CAAC,MAAM,EAAE,MAAM;IAUtC,OAAO,CAAC,oBAAoB;IAsD5B,OAAO,CAAC,sBAAsB;IAO9B,iBAAiB;IASjB,oBAAoB;IAEpB,MAAM;IAKN,qBAAqB,CAAC,kBAAkB,EAAE,WAAW,GAAG,cAAc,GAAG,QAAQ;IAOjF,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKpH,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKpI,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKrI,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKlI,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAKpI,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO;CAK1J"}
@@ -1,3 +1,12 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import { DockManager } from "../DockManager";
2
11
  import { PanelContainer } from "../PanelContainer";
3
12
  import { PanelType } from "../enums/PanelType";
@@ -57,27 +66,43 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
57
66
  }
58
67
  this.observer = new MutationObserver((mutations) => {
59
68
  mutations.forEach((mutation) => {
60
- mutation.addedNodes.forEach((node) => {
61
- this.handleAddedChildNode(node);
62
- });
63
69
  mutation.removedNodes.forEach((node) => {
64
70
  this.handleRemovedChildNode(node);
65
71
  });
72
+ mutation.addedNodes.forEach((node) => {
73
+ this.handleAddedChildNode(node);
74
+ });
66
75
  });
67
76
  });
68
77
  this.observer.observe(this, { childList: true });
69
78
  elementResized(this).pipe(debounceTime(50), takeUntil(this.destroy$)).subscribe(() => this.resize());
70
- this.dispatchEvent(new CustomEvent('manager-init-finished'));
79
+ this.dispatchEvent(new CustomEvent('manager-init-finished', { detail: this.dockManager }));
71
80
  }
72
81
  set activePanelTitle(panelTitle) {
73
- var _a;
82
+ var _a, _b, _c, _d, _e, _f;
74
83
  const foundPanel = (_a = this.dockManager) === null || _a === void 0 ? void 0 : _a.getPanels().find((panel) => panel.title === panelTitle);
75
- if (foundPanel)
76
- this.dockManager.activePanel = foundPanel;
84
+ if (foundPanel) {
85
+ const pNode = (_e = (_b = this.dockManager) === null || _b === void 0 ? void 0 : _b.findNodeFromContainerElement((_d = (_c = foundPanel === null || foundPanel === void 0 ? void 0 : foundPanel.tabPage) === null || _c === void 0 ? void 0 : _c.container) === null || _d === void 0 ? void 0 : _d.containerElement)) === null || _e === void 0 ? void 0 : _e.parent;
86
+ (_f = pNode === null || pNode === void 0 ? void 0 : pNode.container) === null || _f === void 0 ? void 0 : _f.setActiveChild(foundPanel);
87
+ }
77
88
  }
78
89
  getElementInSlot(slot) {
79
90
  return this.slotElementMap.get(slot);
80
91
  }
92
+ saveLayout() {
93
+ return this.dockManager.saveState();
94
+ }
95
+ loadLayout(layout) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ this.observer.disconnect();
98
+ const oldPanels = this.dockManager.getPanels();
99
+ yield this.dockManager.loadState(layout);
100
+ oldPanels.forEach((panel) => panel.elementContentContainer.remove());
101
+ this.dockManager.element.firstChild.remove();
102
+ this.observer.observe(this, { childList: true });
103
+ this.dockManager.invalidate();
104
+ });
105
+ }
81
106
  handleAddedChildNode(element) {
82
107
  var _a;
83
108
  if (element instanceof Comment || (element instanceof Text && element.textContent.length === 0))
@@ -124,6 +149,7 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
124
149
  this.dockManager.dockFill(dockRelativeTo, container);
125
150
  if (element.style.display == 'none')
126
151
  element.style.display = 'block';
152
+ this.dispatchEvent(new CustomEvent('panel-opened', { detail: element }));
127
153
  }
128
154
  handleRemovedChildNode(element) {
129
155
  let panel = this.elementContainerMap.get(element);
@@ -72,12 +72,12 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
72
72
 
73
73
  this.observer = new MutationObserver((mutations) => {
74
74
  mutations.forEach((mutation) => {
75
- mutation.addedNodes.forEach((node) => {
76
- this.handleAddedChildNode(node as HTMLElement);
77
- });
78
75
  mutation.removedNodes.forEach((node) => {
79
76
  this.handleRemovedChildNode(node as HTMLElement);
80
77
  });
78
+ mutation.addedNodes.forEach((node) => {
79
+ this.handleAddedChildNode(node as HTMLElement);
80
+ });
81
81
  });
82
82
  });
83
83
  this.observer.observe(this, {childList: true});
@@ -86,19 +86,35 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
86
86
  debounceTime(50),
87
87
  takeUntil(this.destroy$)
88
88
  ).subscribe(() => this.resize());
89
- this.dispatchEvent(new CustomEvent('manager-init-finished'));
89
+ this.dispatchEvent(new CustomEvent('manager-init-finished', {detail: this.dockManager}));
90
90
  }
91
91
 
92
92
  public set activePanelTitle(panelTitle: string) {
93
93
  const foundPanel = this.dockManager?.getPanels().find((panel) => panel.title === panelTitle);
94
- if (foundPanel)
95
- this.dockManager.activePanel = foundPanel;
94
+ if (foundPanel) {
95
+ const pNode = this.dockManager?.findNodeFromContainerElement(foundPanel?.tabPage?.container?.containerElement)?.parent;
96
+ pNode?.container?.setActiveChild(foundPanel);
97
+ }
96
98
  }
97
99
 
98
100
  public getElementInSlot(slot: HTMLSlotElement): HTMLElement {
99
101
  return this.slotElementMap.get(slot);
100
102
  }
101
103
 
104
+ public saveLayout() {
105
+ return this.dockManager.saveState();
106
+ }
107
+
108
+ public async loadLayout(layout: string) {
109
+ this.observer.disconnect();
110
+ const oldPanels = this.dockManager.getPanels();
111
+ await this.dockManager.loadState(layout);
112
+ oldPanels.forEach((panel) => panel.elementContentContainer.remove());
113
+ this.dockManager.element.firstChild.remove();
114
+ this.observer.observe(this, { childList: true });
115
+ this.dockManager.invalidate();
116
+ }
117
+
102
118
  private handleAddedChildNode(element: HTMLElement) {
103
119
  if (element instanceof Comment || (element instanceof Text && element.textContent.length === 0)) return;
104
120
 
@@ -149,6 +165,8 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
149
165
 
150
166
  if ((<HTMLElement>element).style.display == 'none')
151
167
  (<HTMLElement>element).style.display = 'block';
168
+
169
+ this.dispatchEvent(new CustomEvent('panel-opened', {detail: element}));
152
170
  }
153
171
 
154
172
  private handleRemovedChildNode(element: HTMLElement) {