@datagrok-libraries/dock-spawn-dg 0.1.3 → 0.1.4

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@datagrok-libraries/dock-spawn-dg",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "A TypeScript Version of dock-spawn with changes for Datagrok",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -27,5 +27,7 @@
27
27
  "url": "git@github.com:datagrok-ai/public.git",
28
28
  "directory": "libraries/dock-spawn-dg"
29
29
  },
30
- "sideEffects": ["*.css"]
30
+ "sideEffects": [
31
+ "*.css"
32
+ ]
31
33
  }
@@ -5,5 +5,6 @@ export declare class DockConfig {
5
5
  dialogRootElement: HTMLElement;
6
6
  moveOnlyWithinDockConatiner?: boolean;
7
7
  enableBrowserWindows?: boolean;
8
+ activatePanelOnAdd?: boolean;
8
9
  }
9
10
  //# sourceMappingURL=DockConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DockConfig.d.ts","sourceRoot":"","sources":["DockConfig.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;;IASnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC"}
1
+ {"version":3,"file":"DockConfig.d.ts","sourceRoot":"","sources":["DockConfig.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;;IASnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAG/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC"}
package/src/DockConfig.ts CHANGED
@@ -12,4 +12,7 @@ export class DockConfig {
12
12
  dialogRootElement: HTMLElement;
13
13
  moveOnlyWithinDockConatiner?: boolean;
14
14
  enableBrowserWindows?: boolean;
15
+ // When false, docking a panel into an existing tab strip does not switch focus
16
+ // to it (the first panel of an empty strip is still activated). Default: true.
17
+ activatePanelOnAdd?: boolean;
15
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DockLayoutEngine.d.ts","sourceRoot":"","sources":["DockLayoutEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,gBAAgB;IAEzB,WAAW,EAAE,WAAW,CAAC;gBAEb,WAAW,EAAE,WAAW;IAIpC,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAInD,0DAA0D;IAC1D,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAIpD,wDAAwD;IACxD,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAIjD,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAInD,uEAAuE;IACvE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAInD,MAAM,CAAC,IAAI,EAAE,QAAQ;IAqDrB,KAAK,CAAC,IAAI,EAAE,QAAQ;IA2DpB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAiB3E,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO;IAiG1G,8BAA8B,GAAI,WAAW,cAAc,UAI1D;IAED,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ;IAWtF;;;;OAIG;IACH,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,GAAG,UAAU;IA4EtI,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAO5E"}
1
+ {"version":3,"file":"DockLayoutEngine.d.ts","sourceRoot":"","sources":["DockLayoutEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,gBAAgB;IAEzB,WAAW,EAAE,WAAW,CAAC;gBAEb,WAAW,EAAE,WAAW;IAIpC,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAInD,0DAA0D;IAC1D,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAIpD,wDAAwD;IACxD,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAIjD,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAInD,uEAAuE;IACvE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAInD,MAAM,CAAC,IAAI,EAAE,QAAQ;IAqDrB,KAAK,CAAC,IAAI,EAAE,QAAQ;IA2DpB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAiB3E,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO;IAmG1G,8BAA8B,GAAI,WAAW,cAAc,UAI1D;IAED,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ;IAWtF;;;;OAIG;IACH,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,GAAG,UAAU;IA4EtI,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAO5E"}
@@ -151,9 +151,11 @@ export class DockLayoutEngine {
151
151
  if (referenceNode.parent && referenceNode.parent.container.containerType === 'fill')
152
152
  referenceNode = referenceNode.parent;
153
153
  if (direction === 'fill' && referenceNode.container.containerType === 'fill') {
154
+ const wasEmpty = referenceNode.children.length === 0;
154
155
  referenceNode.addChild(newNode);
155
156
  referenceNode.performLayout(false);
156
- referenceNode.container.setActiveChild(newNode.container);
157
+ if (wasEmpty || this.dockManager.config.activatePanelOnAdd !== false)
158
+ referenceNode.container.setActiveChild(newNode.container);
157
159
  this.dockManager.invalidate();
158
160
  this.dockManager.notifyOnDock(newNode);
159
161
  return;
@@ -175,9 +175,11 @@ export class DockLayoutEngine {
175
175
  referenceNode = referenceNode.parent;
176
176
 
177
177
  if (direction === 'fill' && referenceNode.container.containerType === 'fill') {
178
+ const wasEmpty = referenceNode.children.length === 0;
178
179
  referenceNode.addChild(newNode);
179
180
  referenceNode.performLayout(false);
180
- referenceNode.container.setActiveChild(newNode.container);
181
+ if (wasEmpty || this.dockManager.config.activatePanelOnAdd !== false)
182
+ referenceNode.container.setActiveChild(newNode.container);
181
183
  this.dockManager.invalidate();
182
184
  this.dockManager.notifyOnDock(newNode);
183
185
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"DockManager.d.ts","sourceRoot":"","sources":["DockManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DockManager.d.ts","sourceRoot":"","sources":["DockManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;;GAIG;AACH,qBAAa,WAAW;IAEb,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C,2BAA2B,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,qBAAqB,EAAE,KAAK,CAAC;IAC7B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,GAAG,CAAC;IACrB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/F,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,oBAAoB,CAAiB;IAE7C,OAAO,CAAC,eAAe,CAAiB;gBAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,UAAU;IAarD,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED,UAAU;IA2BV,UAAU,CAAC,CAAC,EAAE,aAAa;IAU3B,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAyBxI,+BAA+B,CAAC,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAmB3J,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO;IAqB1I,+BAA+B,CAAC,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO;IAmB7J,aAAa,CAAC,IAAI,EAAE,QAAQ;IAO5B,UAAU;IAIV,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAepC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS;IAUzB,UAAU,CAAC,IAAI,EAAE,QAAQ;IAYzB,WAAW,CAAC,IAAI,EAAE,QAAQ;IAa1B,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAA;IAiBtC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAA;IAgBpC,OAAO,CAAC,aAAa;IAOrB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAmBxB,gEAAgE;IAChE,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAItD,iEAAiE;IACjE,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAIvD,uDAAuD;IACvD,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAIpD,uDAAuD;IACvD,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAItD,iEAAiE;IACjE,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAItD,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAI1E,oEAAoE;IACpE,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAI3E,0DAA0D;IAC1D,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAIxE,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAI1E,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc;IAI3D,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM;IA2B7H,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,qBAAqB;IA6C7B,kBAAkB,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,KAAA;IAK/C;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,KAAA,EAAE,UAAU,EAAE,KAAK;IA0BzE;;MAEE;IACF,YAAY,CAAC,SAAS,EAAE,cAAc;IAYtC;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,KAAA,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,OAAO;IAiBzF;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,cAAc;IAKvC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,cAAc;IASvC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ;IAsBxC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ;IAsB5C,yDAAyD;IACzD,OAAO,CAAC,sBAAsB;IAoB9B,4BAA4B,CAAC,gBAAgB,EAAE,WAAW;IAe1D,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB;IAIhD,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB;IAInD,aAAa,CAAC,KAAK,EAAE,cAAc;IAMnC,YAAY,CAAC,KAAK,EAAE,cAAc;IAMlC,YAAY,CAAC,QAAQ,EAAE,QAAQ;IAU/B,mBAAmB,CAAC,QAAQ,EAAE,QAAQ;IAQtC,cAAc,CAAC,QAAQ,EAAE,QAAQ;IASjC,kBAAkB,CAAC,KAAK,EAAE,cAAc;IAgBxC,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAQnC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IASjC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAQjC,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAQjE,wBAAwB,CAAC,aAAa,EAAE,cAAc;IAQtD,iBAAiB,CAAC,OAAO,EAAE,OAAO;IAQlC,yBAAyB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc;IAQ1E,4BAA4B,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc;IAQ7E,SAAS;IAKH,SAAS,CAAC,IAAI,EAAE,MAAM;IAM5B,SAAS;IAcT,aAAa,CAAC,KAAK,EAAE,OAAO;IAO5B,aAAa,CAAC,KAAK,EAAE,OAAO;IAK5B,eAAe,CAAC,KAAK,EAAE,OAAO;IAM9B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE;IAsB1B,gBAAgB,IAAI,cAAc,EAAE;IAepC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;IASnD,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,WAAW,IAAI,cAAc,CAEhC;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,cAAc,EA0CpC;CACJ"}
@@ -77,8 +77,8 @@ export class DockManager {
77
77
  return this.checkXBoundsWithinDockContainer(container, currentMousePosition, previousMousePosition, resizeWest, resizeEast);
78
78
  let rect = this.element.getBoundingClientRect();
79
79
  let dx = Math.floor(currentMousePosition.x - previousMousePosition.x);
80
- let leftBounds = container.offsetLeft + container.offsetWidth + dx + rect.left < 40; // || (container.offsetLeft + container.offsetWidth + dx - 40 ) < 0;
81
- let rightBounds = container.offsetLeft + dx + rect.left > (window.innerWidth - 40);
80
+ let leftBounds = dx < 0 && container.offsetLeft + container.offsetWidth + dx + rect.left < 40; // || (container.offsetLeft + container.offsetWidth + dx - 40 ) < 0;
81
+ let rightBounds = dx > 0 && container.offsetLeft + dx + rect.left > (window.innerWidth - 40);
82
82
  if (leftBounds) {
83
83
  previousMousePosition.x = currentMousePosition.x;
84
84
  dx = 0;
@@ -118,8 +118,8 @@ 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 < 0;
122
- let bottomBounds = container.offsetTop + dy + rect.top > (window.innerHeight - 16);
121
+ let topBounds = dy < 0 && container.offsetTop + dy < 0;
122
+ let bottomBounds = dy > 0 && container.offsetTop + dy + rect.top > (window.innerHeight - 16);
123
123
  if (topBounds) {
124
124
  previousMousePosition.y = currentMousePosition.y;
125
125
  dy = 0;
@@ -161,8 +161,6 @@ export class DockManager {
161
161
  this.resize(this.element.clientWidth, this.element.clientHeight);
162
162
  }
163
163
  resize(width, height) {
164
- this.element.style.width = width + 'px';
165
- this.element.style.height = height + 'px';
166
164
  this.context.model.rootNode.container.resize(width, height);
167
165
  let offsetX = 0, offsetY = 0;
168
166
  for (let dialog of this.context.model.dialogs) {
@@ -112,8 +112,8 @@ export class DockManager {
112
112
 
113
113
  let rect = this.element.getBoundingClientRect();
114
114
  let dx = Math.floor(currentMousePosition.x - previousMousePosition.x);
115
- let leftBounds = container.offsetLeft + container.offsetWidth + dx + rect.left < 40; // || (container.offsetLeft + container.offsetWidth + dx - 40 ) < 0;
116
- let rightBounds = container.offsetLeft + dx + rect.left > (window.innerWidth - 40);
115
+ let leftBounds = dx < 0 && container.offsetLeft + container.offsetWidth + dx + rect.left < 40; // || (container.offsetLeft + container.offsetWidth + dx - 40 ) < 0;
116
+ let rightBounds = dx > 0 && container.offsetLeft + dx + rect.left > (window.innerWidth - 40);
117
117
  if (leftBounds) {
118
118
  previousMousePosition.x = currentMousePosition.x;
119
119
  dx = 0;
@@ -156,8 +156,8 @@ 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 < 0;
160
- let bottomBounds = container.offsetTop + dy + rect.top > (window.innerHeight - 16);
159
+ let topBounds = dy < 0 && container.offsetTop + dy < 0;
160
+ let bottomBounds = dy > 0 && container.offsetTop + dy + rect.top > (window.innerHeight - 16);
161
161
  if (topBounds) {
162
162
  previousMousePosition.y = currentMousePosition.y;
163
163
  dy = 0;
@@ -202,8 +202,6 @@ export class DockManager {
202
202
  }
203
203
 
204
204
  resize(width: number, height: number) {
205
- this.element.style.width = width + 'px';
206
- this.element.style.height = height + 'px';
207
205
  this.context.model.rootNode.container.resize(width, height);
208
206
 
209
207
  let offsetX = 0, offsetY = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"UndockInitiator.d.ts","sourceRoot":"","sources":["UndockInitiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE;;;;;GAKG;AACH,qBAAa,eAAe;IACxB,cAAc,EAAE,YAAY,CAAC;IAC7B,cAAc,EAAE,YAAY,CAAC;IAC7B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,iBAAiB,EAAE,KAAK,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,mBAAmB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAK,MAAM,CAAC;IAClE,wBAAwB,EAAE,YAAY,CAAC;gBAE3B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAK,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM;IAWxH,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EA8CzB;IAED,WAAW,CAAC,CAAC,KAAA;IAuCb,SAAS;IAsBT,WAAW,CAAC,CAAC,EAAE,kBAAkB;IAgBjC,cAAc,CAAC,CAAC,KAAA;CAgBnB"}
1
+ {"version":3,"file":"UndockInitiator.d.ts","sourceRoot":"","sources":["UndockInitiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE;;;;;GAKG;AACH,qBAAa,eAAe;IACxB,cAAc,EAAE,YAAY,CAAC;IAC7B,cAAc,EAAE,YAAY,CAAC;IAC7B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,iBAAiB,EAAE,KAAK,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,mBAAmB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAK,MAAM,CAAC;IAClE,wBAAwB,EAAE,YAAY,CAAC;gBAE3B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAK,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM;IAWxH,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EA8CzB;IAED,WAAW,CAAC,CAAC,KAAA;IAuCb,SAAS;IAsBT,WAAW,CAAC,CAAC,EAAE,kBAAkB;IAqBjC,cAAc,CAAC,CAAC,KAAA;CAgBnB"}
@@ -116,6 +116,10 @@ export class UndockInitiator {
116
116
  return;
117
117
  e = e.touches[0];
118
118
  }
119
+ if (e.buttons == 0) {
120
+ this.onMouseUp();
121
+ return;
122
+ }
119
123
  let position = new Point(e.clientX, e.clientY);
120
124
  let dy = position.y - this.dragStartPosition.y;
121
125
  if (dy > this.thresholdPixels || dy < -this.thresholdPixels) {
@@ -153,6 +153,11 @@ export class UndockInitiator {
153
153
  e = e.touches[0];
154
154
  }
155
155
 
156
+ if ((<MouseEvent>e).buttons == 0){
157
+ this.onMouseUp();
158
+ return;
159
+ }
160
+
156
161
  let position = new Point(e.clientX, e.clientY);
157
162
  let dy = position.y - this.dragStartPosition.y;
158
163
 
@@ -14,6 +14,9 @@ export declare class DockSpawnTsWebcomponent extends HTMLElement {
14
14
  private initDockspawn;
15
15
  private initDockManager;
16
16
  set activePanelTitle(panelTitle: string);
17
+ private _preferredPanelTitle;
18
+ set preferredPanelTitle(panelTitle: string | null);
19
+ private applyPreferred;
17
20
  getElementInSlot(slot: HTMLSlotElement): HTMLElement;
18
21
  saveLayout(): string;
19
22
  loadLayout(layout: string): Promise<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,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
+ {"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;IAgBrB,OAAO,CAAC,eAAe;IAkDvB,IAAW,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAM7C;IAID,OAAO,CAAC,oBAAoB,CAAuB;IACnD,IAAW,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAGvD;IAED,OAAO,CAAC,cAAc;IAMf,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW;IAIpD,UAAU;IAIJ,UAAU,CAAC,MAAM,EAAE,MAAM;IAUtC,OAAO,CAAC,oBAAoB;IAuD5B,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"}
@@ -27,6 +27,9 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
27
27
  this.initialized = false;
28
28
  this.elementContainerMap = new Map();
29
29
  this.destroy$ = new Subject();
30
+ // The tab to keep active across tab adds/rebuilds. Re-asserted after structural
31
+ // changes; a no-op when the tab is already active, so it never causes a flicker.
32
+ this._preferredPanelTitle = null;
30
33
  const shadowRoot = this.attachShadow({ mode: 'open' });
31
34
  shadowRoot.adoptedStyleSheets = [style, style1, style2, faStyle];
32
35
  this.slotElementMap = new WeakMap();
@@ -40,6 +43,10 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
40
43
  this.shadowRoot.appendChild(dockSpawnDiv);
41
44
  this.dockManager = new DockManager(dockSpawnDiv);
42
45
  this.dockManager.config.dialogRootElement = dockSpawnDiv;
46
+ // Panels are added programmatically (Vue render -> MutationObserver), so a new
47
+ // tab must not steal focus from the user's current tab. The preferred tab is
48
+ // driven explicitly via the `preferredPanelTitle` property instead.
49
+ this.dockManager.config.activatePanelOnAdd = false;
43
50
  }
44
51
  initDockManager() {
45
52
  this.dockManager.initialize();
@@ -50,6 +57,12 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
50
57
  prevPanel: prevPanel === null || prevPanel === void 0 ? void 0 : prevPanel.title
51
58
  } }));
52
59
  },
60
+ onTabChanged: (_, tabpage) => {
61
+ var _a;
62
+ this.dispatchEvent(new CustomEvent('tab-clicked', { detail: {
63
+ title: (_a = tabpage === null || tabpage === void 0 ? void 0 : tabpage.panel) === null || _a === void 0 ? void 0 : _a.title
64
+ } }));
65
+ },
53
66
  onClosePanel: (dockManager, dockNode) => {
54
67
  let slot = dockNode.elementContent;
55
68
  let element = this.slotElementMap.get(slot);
@@ -86,6 +99,16 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
86
99
  (_f = pNode === null || pNode === void 0 ? void 0 : pNode.container) === null || _f === void 0 ? void 0 : _f.setActiveChild(foundPanel);
87
100
  }
88
101
  }
102
+ set preferredPanelTitle(panelTitle) {
103
+ this._preferredPanelTitle = panelTitle;
104
+ this.applyPreferred();
105
+ }
106
+ applyPreferred() {
107
+ var _a;
108
+ const title = this._preferredPanelTitle;
109
+ if (title && ((_a = this.dockManager) === null || _a === void 0 ? void 0 : _a.getPanels().some((panel) => panel.title === title)))
110
+ this.activePanelTitle = title;
111
+ }
89
112
  getElementInSlot(slot) {
90
113
  return this.slotElementMap.get(slot);
91
114
  }
@@ -149,6 +172,7 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
149
172
  this.dockManager.dockFill(dockRelativeTo, container);
150
173
  if (element.style.display == 'none')
151
174
  element.style.display = 'block';
175
+ this.applyPreferred();
152
176
  this.dispatchEvent(new CustomEvent('panel-opened', { detail: element }));
153
177
  }
154
178
  handleRemovedChildNode(element) {
@@ -42,6 +42,10 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
42
42
 
43
43
  this.dockManager = new DockManager(dockSpawnDiv);
44
44
  this.dockManager.config.dialogRootElement = dockSpawnDiv;
45
+ // Panels are added programmatically (Vue render -> MutationObserver), so a new
46
+ // tab must not steal focus from the user's current tab. The preferred tab is
47
+ // driven explicitly via the `preferredPanelTitle` property instead.
48
+ this.dockManager.config.activatePanelOnAdd = false;
45
49
  }
46
50
 
47
51
  private initDockManager() {
@@ -54,6 +58,11 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
54
58
  prevPanel: prevPanel?.title
55
59
  }}));
56
60
  },
61
+ onTabChanged: (_, tabpage) => {
62
+ this.dispatchEvent(new CustomEvent('tab-clicked', {detail: {
63
+ title: tabpage?.panel?.title
64
+ }}));
65
+ },
57
66
  onClosePanel: (dockManager, dockNode) => {
58
67
  let slot = dockNode.elementContent as any as HTMLSlotElement;
59
68
  let element = this.slotElementMap.get(slot);
@@ -97,6 +106,20 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
97
106
  }
98
107
  }
99
108
 
109
+ // The tab to keep active across tab adds/rebuilds. Re-asserted after structural
110
+ // changes; a no-op when the tab is already active, so it never causes a flicker.
111
+ private _preferredPanelTitle: string | null = null;
112
+ public set preferredPanelTitle(panelTitle: string | null) {
113
+ this._preferredPanelTitle = panelTitle;
114
+ this.applyPreferred();
115
+ }
116
+
117
+ private applyPreferred() {
118
+ const title = this._preferredPanelTitle;
119
+ if (title && this.dockManager?.getPanels().some((panel) => panel.title === title))
120
+ this.activePanelTitle = title;
121
+ }
122
+
100
123
  public getElementInSlot(slot: HTMLSlotElement): HTMLElement {
101
124
  return this.slotElementMap.get(slot);
102
125
  }
@@ -166,6 +189,7 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
166
189
  if ((<HTMLElement>element).style.display == 'none')
167
190
  (<HTMLElement>element).style.display = 'block';
168
191
 
192
+ this.applyPreferred();
169
193
  this.dispatchEvent(new CustomEvent('panel-opened', {detail: element}));
170
194
  }
171
195