igniteui-dockmanager 1.16.0-beta.2 → 1.16.0-beta.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.
Files changed (56) hide show
  1. package/custom-elements.json +289 -127
  2. package/dist/cjs/igc-button-component_20.cjs.entry.js +899 -120
  3. package/dist/cjs/igc-button-component_20.cjs.entry.js.map +1 -1
  4. package/dist/cjs/igniteui-dockmanager.cjs.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/locale-98a30720.js.map +1 -1
  7. package/dist/collection/collection-manifest.json +1 -1
  8. package/dist/collection/components/dockmanager/dockmanager-component.css +6 -1
  9. package/dist/collection/components/dockmanager/dockmanager-component.js +69 -16
  10. package/dist/collection/components/dockmanager/dockmanager-component.js.map +1 -1
  11. package/dist/collection/components/dockmanager/dockmanager.interfaces.js +4 -0
  12. package/dist/collection/components/dockmanager/dockmanager.interfaces.js.map +1 -1
  13. package/dist/collection/components/dockmanager/dockmanager.public-interfaces.js.map +1 -1
  14. package/dist/collection/components/dockmanager/dockmanager.service.js +155 -37
  15. package/dist/collection/components/dockmanager/dockmanager.service.js.map +1 -1
  16. package/dist/collection/components/dockmanager/dockmanager.service.spec.js +179 -0
  17. package/dist/collection/components/dockmanager/dockmanager.service.spec.js.map +1 -1
  18. package/dist/collection/components/dockmanager/panes/content-pane-component.js +21 -2
  19. package/dist/collection/components/dockmanager/panes/content-pane-component.js.map +1 -1
  20. package/dist/collection/components/dockmanager/panes/document-host-component.js +20 -1
  21. package/dist/collection/components/dockmanager/panes/document-host-component.js.map +1 -1
  22. package/dist/collection/components/dockmanager/panes/split-pane-component.js +39 -1
  23. package/dist/collection/components/dockmanager/panes/split-pane-component.js.map +1 -1
  24. package/dist/collection/components/dockmanager/panes/splitter-component.js +28 -7
  25. package/dist/collection/components/dockmanager/panes/splitter-component.js.map +1 -1
  26. package/dist/collection/components/sample-component/sample-component.css +39 -4
  27. package/dist/collection/components/sample-component/sample-component.js +644 -48
  28. package/dist/collection/components/sample-component/sample-component.js.map +1 -1
  29. package/dist/collection/components/tabs/tabs-component.js +20 -1
  30. package/dist/collection/components/tabs/tabs-component.js.map +1 -1
  31. package/dist/esm/igc-button-component_20.entry.js +893 -114
  32. package/dist/esm/igc-button-component_20.entry.js.map +1 -1
  33. package/dist/esm/igniteui-dockmanager.js +1 -1
  34. package/dist/esm/loader.js +1 -1
  35. package/dist/esm/locale-81ccabef.js.map +1 -1
  36. package/dist/igniteui-dockmanager/igniteui-dockmanager.esm.js +1 -1
  37. package/dist/igniteui-dockmanager/igniteui-dockmanager.esm.js.map +1 -1
  38. package/dist/igniteui-dockmanager/p-90285d40.entry.js +2 -0
  39. package/dist/igniteui-dockmanager/p-90285d40.entry.js.map +1 -0
  40. package/dist/igniteui-dockmanager/p-f09ed94c.js.map +1 -1
  41. package/dist/types/components/dockmanager/dockmanager-component.d.ts +4 -0
  42. package/dist/types/components/dockmanager/dockmanager.interfaces.d.ts +4 -0
  43. package/dist/types/components/dockmanager/dockmanager.public-interfaces.d.ts +5 -0
  44. package/dist/types/components/dockmanager/dockmanager.service.d.ts +8 -2
  45. package/dist/types/components/dockmanager/panes/content-pane-component.d.ts +1 -0
  46. package/dist/types/components/dockmanager/panes/document-host-component.d.ts +1 -0
  47. package/dist/types/components/dockmanager/panes/split-pane-component.d.ts +2 -0
  48. package/dist/types/components/dockmanager/panes/splitter-component.d.ts +1 -0
  49. package/dist/types/components/sample-component/sample-component.d.ts +12 -19
  50. package/dist/types/components/tabs/tabs-component.d.ts +1 -0
  51. package/dist/types/components.d.ts +12 -0
  52. package/loader/cdn.js +2 -2
  53. package/loader/index.cjs.js +2 -2
  54. package/package.json +1 -1
  55. package/dist/igniteui-dockmanager/p-b20b97f6.entry.js +0 -2
  56. package/dist/igniteui-dockmanager/p-b20b97f6.entry.js.map +0 -1
@@ -84,6 +84,10 @@ class Utils {
84
84
  * @hidden
85
85
  */
86
86
  const IGC_DEFAULT_PANE_SIZE = 100;
87
+ /**
88
+ * @hidden
89
+ */
90
+ const IGC_DEFAULT_PANE_SIZE_IN_PIXELS = 100;
87
91
  /**
88
92
  * @hidden
89
93
  */
@@ -130,13 +134,14 @@ const IgcContentPaneComponent = class {
130
134
  this.disabled = false;
131
135
  this.isSingleFloating = false;
132
136
  this.contentId = undefined;
137
+ this.parentUseFixedSize = false;
133
138
  }
134
139
  componentDidRender() {
135
140
  this.rendered.emit();
136
141
  }
137
142
  render() {
138
143
  const size = this.size || this.size === 0 ? this.size : IGC_DEFAULT_PANE_SIZE;
139
- const unpinnedSize = this.unpinnedSize ? this.unpinnedSize : IGC_DEFAULT_UNPIN_PANE_SIZE;
144
+ const unpinnedSize = this.unpinnedSize >= 0 ? this.unpinnedSize : IGC_DEFAULT_UNPIN_PANE_SIZE;
140
145
  const parts = Utils.partNameMap({
141
146
  'content-pane': true,
142
147
  [this.contentId]: true,
@@ -144,7 +149,7 @@ const IgcContentPaneComponent = class {
144
149
  'single-floating': this.isSingleFloating
145
150
  });
146
151
  return (index.h(index.Host, { role: "group", "aria-label": this.header, "aria-disabled": this.disabled ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, style: {
147
- flex: this.isFlyout ? `0 1 ${unpinnedSize}px` : `${size} 1 ${size}px`
152
+ flex: this.isFlyout ? `0 1 ${unpinnedSize}px` : this.parentUseFixedSize ? `0 0 ${size}px` : `${size} 1 ${size}px`
148
153
  }, part: parts }, index.h("slot", { name: "header" }), index.h("slot", null)));
149
154
  }
150
155
  };
@@ -546,7 +551,8 @@ class IgcDockManagerService {
546
551
  const floatingPane = {
547
552
  type: locale.IgcDockManagerPaneType.splitPane,
548
553
  orientation: locale.IgcSplitPaneOrientation.vertical,
549
- panes: [content]
554
+ panes: [content],
555
+ size: content.size
550
556
  };
551
557
  floatingPane.floatingLocation = location;
552
558
  floatingPane.floatingWidth = width;
@@ -653,6 +659,7 @@ class IgcDockManagerService {
653
659
  }
654
660
  }
655
661
  dockToEdge(targetPane, position) {
662
+ var _a, _b;
656
663
  const targetParent = this.getParent(targetPane);
657
664
  if (!targetParent) {
658
665
  return this.dockToCenter(targetPane, this.dockManager.draggedPane);
@@ -682,6 +689,15 @@ class IgcDockManagerService {
682
689
  };
683
690
  }
684
691
  const paneToDock = draggedPane ? this.getPaneToDock(draggedPane) : this.dockManager.activePane;
692
+ // reset dragged pane size in pixels
693
+ if (((_a = this.draggedPaneParent) === null || _a === void 0 ? void 0 : _a.useFixedSize) === true && targetParent.useFixedSize !== true) {
694
+ paneToDock.size = IGC_DEFAULT_PANE_SIZE_IN_PIXELS;
695
+ }
696
+ else if (targetParent.useFixedSize === true && ((_b = this.draggedPaneParent) === null || _b === void 0 ? void 0 : _b.orientation) !== targetParent.orientation) {
697
+ const floatingPane = draggedPane;
698
+ const floatingPaneSizeInPixels = targetParent.orientation === locale.IgcSplitPaneOrientation.horizontal ? floatingPane === null || floatingPane === void 0 ? void 0 : floatingPane.floatingWidth : floatingPane === null || floatingPane === void 0 ? void 0 : floatingPane.floatingHeight;
699
+ paneToDock.size = floatingPaneSizeInPixels;
700
+ }
685
701
  let newSplitPane;
686
702
  var isDockingBefore = Utils.isDockingIndicatorBefore(position) && !isRTL || Utils.isDockingIndicatorBeforeRTL(position) && isRTL;
687
703
  const insertIndex = isDockingBefore ?
@@ -702,23 +718,42 @@ class IgcDockManagerService {
702
718
  panes: isDockingBefore ?
703
719
  [paneToDock, targetPane] :
704
720
  [targetPane, paneToDock],
705
- size: targetPane.size
721
+ size: targetPane.size >= 0 ? targetPane.size : targetParent.size
706
722
  };
707
723
  targetParent.panes[paneIndex] = newSplitPane;
708
724
  }
709
- targetPane.size = undefined;
710
- paneToDock.size = undefined;
725
+ if (!this.shouldUseFixedSize(targetPane)) {
726
+ targetPane.size = undefined;
727
+ paneToDock.size = undefined;
728
+ }
729
+ // simplifying nested split panes
730
+ const parentSplitPane = this.getParent(targetParent);
731
+ if (parentSplitPane &&
732
+ parentSplitPane.type === locale.IgcDockManagerPaneType.splitPane &&
733
+ parentSplitPane.panes.length === 1 &&
734
+ parentSplitPane.allowEmpty === targetParent.allowEmpty &&
735
+ parentSplitPane.size === targetParent.size &&
736
+ parentSplitPane.useFixedSize === targetParent.useFixedSize) {
737
+ parentSplitPane.orientation = targetParent.orientation;
738
+ parentSplitPane.panes = targetParent.panes;
739
+ }
711
740
  }
712
- // simplifying nested split panes
713
- const parentSplitPane = this.getParent(targetParent);
714
- if (parentSplitPane &&
715
- parentSplitPane.type === locale.IgcDockManagerPaneType.splitPane &&
716
- parentSplitPane.panes.length === 1 &&
717
- parentSplitPane.allowEmpty === targetParent.allowEmpty &&
718
- parentSplitPane.size === targetParent.size) {
719
- parentSplitPane.orientation = targetParent.orientation;
720
- parentSplitPane.panes = targetParent.panes;
741
+ }
742
+ shouldUseFixedSize(pane) {
743
+ if (pane.type === locale.IgcDockManagerPaneType.splitPane) {
744
+ if (pane.useFixedSize) {
745
+ return true;
746
+ }
747
+ for (let i = 0; i < pane.panes.length; i++) {
748
+ if (this.shouldUseFixedSize(pane.panes[i])) {
749
+ return true;
750
+ }
751
+ }
721
752
  }
753
+ else if (pane.type === locale.IgcDockManagerPaneType.documentHost) {
754
+ this.shouldUseFixedSize(pane.rootPane);
755
+ }
756
+ return false;
722
757
  }
723
758
  updateLayout() {
724
759
  this.dockManager.layout = Object.assign({}, this.dockManager.layout);
@@ -788,7 +823,7 @@ class IgcDockManagerService {
788
823
  resizeFlyoutPane(delta) {
789
824
  const pane = this.dockManager.flyoutPane;
790
825
  const location = this.unpinnedLocationMap.get(pane);
791
- const paneSize = pane.unpinnedSize ? pane.unpinnedSize : IGC_DEFAULT_UNPIN_PANE_SIZE;
826
+ const paneSize = pane.unpinnedSize >= 0 ? pane.unpinnedSize : IGC_DEFAULT_UNPIN_PANE_SIZE;
792
827
  const newSize = location === locale.IgcUnpinnedLocation.left || location === locale.IgcUnpinnedLocation.top ?
793
828
  paneSize + delta :
794
829
  paneSize - delta;
@@ -803,7 +838,9 @@ class IgcDockManagerService {
803
838
  const sizeSum = paneSizes.reduce((p, c) => c + p, 0);
804
839
  const calcDelta = deltaPercentage * sizeSum;
805
840
  childPanes[paneIndex - 1].size = paneSizes[paneIndex - 1] + calcDelta;
806
- childPanes[paneIndex].size = paneSizes[paneIndex] - calcDelta;
841
+ if (!parentPane.useFixedSize) {
842
+ childPanes[paneIndex].size = paneSizes[paneIndex] - calcDelta;
843
+ }
807
844
  this.updateLayout();
808
845
  }
809
846
  togglePin(pane, unpinBehavior = locale.IgcPaneActionBehavior.allPanes) {
@@ -847,16 +884,38 @@ class IgcDockManagerService {
847
884
  this.updateLayout();
848
885
  }
849
886
  }
887
+ checkUseFixedSizeParent(pane) {
888
+ const parent = this.getParent(pane);
889
+ if (!parent) {
890
+ return null;
891
+ }
892
+ // If the pane to close is the last non-placeholder pane of a split pane, close the whole split pane.
893
+ // Also check if the pane to close is inside a split pane and close the top split pane that holds the placeholder.
894
+ if (parent.type === locale.IgcDockManagerPaneType.splitPane && parent.panes.length === 2) {
895
+ const isPlaceholderPresent = parent.panes.some(p => p.type === locale.IgcDockManagerPaneType.contentPane && p.contentId === "placeholder");
896
+ const isValidContentPane = parent.panes.every(p => p.type === locale.IgcDockManagerPaneType.contentPane ||
897
+ p.type === locale.IgcDockManagerPaneType.tabGroupPane ||
898
+ (p.type === locale.IgcDockManagerPaneType.splitPane && p.panes.length === 1 && p.panes[0].type === locale.IgcDockManagerPaneType.contentPane));
899
+ if (isPlaceholderPresent && isValidContentPane) {
900
+ return parent;
901
+ }
902
+ }
903
+ return this.checkUseFixedSizeParent(parent);
904
+ }
850
905
  closePane(pane) {
851
906
  let paneToRemove = pane;
852
907
  let closeAll = this.dockManager.closeBehavior !== locale.IgcPaneActionBehavior.selectedPane;
853
908
  if (pane.type === locale.IgcDockManagerPaneType.contentPane && pane !== this.dockManager.flyoutPane) {
854
- const parent = this.paneParentMap.get(pane);
855
- if (parent.type === locale.IgcDockManagerPaneType.tabGroupPane && closeAll) {
909
+ const parent = this.getParent(pane);
910
+ const ignoreResizeConstraintPaneTargetParent = this.checkUseFixedSizeParent(pane);
911
+ if (ignoreResizeConstraintPaneTargetParent !== null) {
912
+ paneToRemove = ignoreResizeConstraintPaneTargetParent;
913
+ }
914
+ else if (parent.type === locale.IgcDockManagerPaneType.tabGroupPane && closeAll) {
856
915
  paneToRemove = parent;
857
916
  }
858
917
  }
859
- const paneRemoved = paneToRemove.type === locale.IgcDockManagerPaneType.tabGroupPane ?
918
+ const paneRemoved = paneToRemove.type === locale.IgcDockManagerPaneType.tabGroupPane || paneToRemove.type === locale.IgcDockManagerPaneType.splitPane ?
860
919
  this.removeAllowedPanes(pane, paneToRemove) :
861
920
  this.emitPaneClose(pane, [paneToRemove]);
862
921
  if ((paneRemoved || pane.hidden) && pane === this.dockManager.flyoutPane) {
@@ -1042,6 +1101,9 @@ class IgcDockManagerService {
1042
1101
  let panesToRemove = [pane];
1043
1102
  let paneToAdd = pane;
1044
1103
  const parent = this.paneParentMap.get(pane);
1104
+ if (parent.type === locale.IgcDockManagerPaneType.splitPane && parent.useFixedSize === true) {
1105
+ this.draggedPaneParent = parent;
1106
+ }
1045
1107
  if (pane !== this.dockManager.flyoutPane && parent.type === locale.IgcDockManagerPaneType.tabGroupPane) {
1046
1108
  if (parent.allowEmpty) {
1047
1109
  const panes = [...parent.panes];
@@ -1116,11 +1178,11 @@ class IgcDockManagerService {
1116
1178
  position === locale.IgcDockingIndicatorPosition.right && isRTL ||
1117
1179
  position === locale.IgcDockingIndicatorPosition.top;
1118
1180
  const insertIndex = isDockingBefore ? 0 : rootPane.panes.length;
1119
- if ((isIndicatorVertical && isSplitPaneVertical) || (!isIndicatorVertical && !isSplitPaneVertical)) {
1181
+ if (rootPane.useFixedSize !== true && ((isIndicatorVertical && isSplitPaneVertical) || (!isIndicatorVertical && !isSplitPaneVertical))) {
1120
1182
  rootPane.panes.splice(insertIndex, 0, paneToDock);
1121
1183
  }
1122
1184
  else {
1123
- if (rootPane.panes.length === 1 && rootPane.panes[0].type === locale.IgcDockManagerPaneType.splitPane) {
1185
+ if (rootPane.useFixedSize !== true && rootPane.panes.length === 1 && rootPane.panes[0].type === locale.IgcDockManagerPaneType.splitPane) {
1124
1186
  rootPane.orientation =
1125
1187
  rootPane.orientation === locale.IgcSplitPaneOrientation.horizontal ?
1126
1188
  locale.IgcSplitPaneOrientation.vertical :
@@ -1130,7 +1192,9 @@ class IgcDockManagerService {
1130
1192
  else {
1131
1193
  const newRootPane = {
1132
1194
  type: locale.IgcDockManagerPaneType.splitPane,
1133
- orientation: isSplitPaneVertical ? locale.IgcSplitPaneOrientation.horizontal : locale.IgcSplitPaneOrientation.vertical,
1195
+ orientation: rootPane.useFixedSize !== true ?
1196
+ (isSplitPaneVertical ? locale.IgcSplitPaneOrientation.horizontal : locale.IgcSplitPaneOrientation.vertical) :
1197
+ isIndicatorVertical ? locale.IgcSplitPaneOrientation.vertical : locale.IgcSplitPaneOrientation.horizontal,
1134
1198
  panes: isDockingBefore ?
1135
1199
  [paneToDock, rootPane] :
1136
1200
  [rootPane, paneToDock],
@@ -1227,9 +1291,10 @@ class IgcDockManagerService {
1227
1291
  }
1228
1292
  return items;
1229
1293
  }
1230
- dragPaneStart(pane, rect, clientX, clientY) {
1294
+ dragPaneStart(pane, rect, clientX, clientY, anyPaneIgnoringResizeConstraints = false) {
1231
1295
  var _a;
1232
- if (this.dockManager.maximizedPane) {
1296
+ if (this.dockManager.maximizedPane ||
1297
+ (anyPaneIgnoringResizeConstraints && !this.isFloatingPane(this.getRootParent(pane)))) {
1233
1298
  return false;
1234
1299
  }
1235
1300
  let panes;
@@ -1379,8 +1444,12 @@ class IgcDockManagerService {
1379
1444
  this.dockPane(this.proximityDockPosition);
1380
1445
  docked = true;
1381
1446
  }
1447
+ if (!docked && this.draggedPaneParent && this.dockManager.draggedPane.type === locale.IgcDockManagerPaneType.splitPane && this.dockManager.draggedPane.panes.length === 1) {
1448
+ this.dockManager.draggedPane.panes[0].size = IGC_DEFAULT_PANE_SIZE_IN_PIXELS;
1449
+ }
1382
1450
  this.draggedPanes = null;
1383
1451
  this.draggedTab = null;
1452
+ this.draggedPaneParent = null;
1384
1453
  this.dockManager.draggedPane = null;
1385
1454
  this.dockManager.dropTargetPaneInfo = null;
1386
1455
  this.dockManager.dropShadowRect = null;
@@ -1459,7 +1528,10 @@ class IgcDockManagerService {
1459
1528
  this.draggedPanes = [pane];
1460
1529
  return true;
1461
1530
  }
1462
- dragTabMove(pane, args, rects) {
1531
+ dragTabMove(pane, args, rects, anyPaneIgnoringResizeConstraints = false) {
1532
+ if (anyPaneIgnoringResizeConstraints && !this.isFloatingPane(this.getRootParent(pane))) {
1533
+ return false;
1534
+ }
1463
1535
  const clientX = args.clientX;
1464
1536
  const clientY = args.clientY;
1465
1537
  const offsetX = args.offsetX;
@@ -1609,11 +1681,11 @@ class IgcDockManagerService {
1609
1681
  }
1610
1682
  }
1611
1683
  getDropShadowRect(dockingPosition, dockingDirection) {
1612
- var _a;
1684
+ var _a, _b;
1613
1685
  const shadowRect = new DOMRect();
1614
1686
  dockingPosition = dockingPosition !== null && dockingPosition !== void 0 ? dockingPosition : this.dockingIndicator.position;
1615
1687
  dockingDirection = dockingDirection !== null && dockingDirection !== void 0 ? dockingDirection : this.dockingIndicator.direction;
1616
- const parentRect = this.dropTargetParentRect;
1688
+ let parentRect = this.dropTargetParentRect;
1617
1689
  const dropTargetPaneInfo = this.dockManager.dropTargetPaneInfo;
1618
1690
  if (dropTargetPaneInfo && !parentRect) {
1619
1691
  const targetRect = dropTargetPaneInfo.targetRect;
@@ -1626,7 +1698,6 @@ class IgcDockManagerService {
1626
1698
  else if (!dropTargetPaneInfo || !parentRect) {
1627
1699
  return;
1628
1700
  }
1629
- const draggedPaneSize = (_a = this.getPaneToDock(this.dockManager.draggedPane).size) !== null && _a !== void 0 ? _a : IGC_DEFAULT_PANE_SIZE;
1630
1701
  const isOuter = Utils.isDockingIndicatorOuter(dockingPosition);
1631
1702
  const baseRect = isOuter ? parentRect : dropTargetPaneInfo.targetRect;
1632
1703
  if (dockingPosition === locale.IgcDockingIndicatorPosition.center) {
@@ -1640,6 +1711,17 @@ class IgcDockManagerService {
1640
1711
  const targetParent = this.getParent(targetPane);
1641
1712
  const panes = this.getSplitPaneVisibleChildren(targetParent);
1642
1713
  const draggedPaneIndex = panes.indexOf(this.dockManager.draggedPane);
1714
+ // reset dragged pane size for preview
1715
+ let draggedPaneSize = this.getPaneToDock(this.dockManager.draggedPane).size;
1716
+ if (((_a = this.draggedPaneParent) === null || _a === void 0 ? void 0 : _a.useFixedSize) === true && targetParent.useFixedSize !== true) {
1717
+ draggedPaneSize = IGC_DEFAULT_PANE_SIZE_IN_PIXELS;
1718
+ }
1719
+ if (targetParent.useFixedSize === true && ((_b = this.draggedPaneParent) === null || _b === void 0 ? void 0 : _b.orientation) !== targetParent.orientation) {
1720
+ const floatingPane = this.dockManager.draggedPane;
1721
+ const floatingPaneSizeInPixels = targetParent.orientation === locale.IgcSplitPaneOrientation.horizontal ? floatingPane === null || floatingPane === void 0 ? void 0 : floatingPane.floatingWidth : floatingPane === null || floatingPane === void 0 ? void 0 : floatingPane.floatingHeight;
1722
+ draggedPaneSize = floatingPaneSizeInPixels;
1723
+ }
1724
+ draggedPaneSize = draggedPaneSize >= 0 ? draggedPaneSize : IGC_DEFAULT_PANE_SIZE;
1643
1725
  if (draggedPaneIndex > -1) {
1644
1726
  panes.splice(draggedPaneIndex, 1);
1645
1727
  }
@@ -1648,13 +1730,24 @@ class IgcDockManagerService {
1648
1730
  const isSplitPaneVertical = Utils.isSplitPaneVertical(targetParent);
1649
1731
  const isSameSplitPane = ((isIndicatorVertical && isSplitPaneVertical) || (!isIndicatorVertical && !isSplitPaneVertical));
1650
1732
  const isRTL = dockingDirection === 'rtl';
1651
- const panesTotalSize = panes.reduce((a, b) => a + (b.size || IGC_DEFAULT_PANE_SIZE), 0);
1733
+ // take splitter size into account only when split pane has useFixedSize=true
1734
+ const splitterSize = targetParent.useFixedSize ? 4 : 0;
1735
+ const panesTotalSize = panes.reduce((a, b) => a + (b.size >= 0 ? b.size : IGC_DEFAULT_PANE_SIZE), 0) + (panes.length - 1) * splitterSize;
1652
1736
  const beforePanesTotalSize = !isRTL || isIndicatorVertical
1653
- ? panes.slice(0, dropTargetIndex).reduce((a, b) => a + (b.size || IGC_DEFAULT_PANE_SIZE), 0)
1654
- : panes.slice(dropTargetIndex, panes.length).reduce((a, b) => a + (b.size || IGC_DEFAULT_PANE_SIZE), 0);
1737
+ ? panes.slice(0, dropTargetIndex).reduce((a, b) => a + (b.size >= 0 ? b.size : IGC_DEFAULT_PANE_SIZE), 0) + dropTargetIndex * splitterSize
1738
+ : panes.slice(dropTargetIndex, panes.length).reduce((a, b) => a + (b.size >= 0 ? b.size : IGC_DEFAULT_PANE_SIZE), 0) + dropTargetIndex * splitterSize;
1655
1739
  const afterPanesTotalSize = !isRTL || isIndicatorVertical
1656
- ? panes.slice(0, dropTargetIndex + 1).reduce((a, b) => a + (b.size || IGC_DEFAULT_PANE_SIZE), 0)
1657
- : panes.slice(dropTargetIndex + 1, panes.length).reduce((a, b) => a + (b.size || IGC_DEFAULT_PANE_SIZE), 0);
1740
+ ? panes.slice(0, dropTargetIndex + 1).reduce((a, b) => a + (b.size >= 0 ? b.size : IGC_DEFAULT_PANE_SIZE), 0) + (dropTargetIndex + 1) * splitterSize
1741
+ : panes.slice(dropTargetIndex + 1, panes.length).reduce((a, b) => a + (b.size >= 0 ? b.size : IGC_DEFAULT_PANE_SIZE), 0) + (dropTargetIndex + 1) * splitterSize;
1742
+ // update parent rect for preview when useFixedSize=true
1743
+ if (targetParent.useFixedSize) {
1744
+ const rectWithPlaceholder = parentRect;
1745
+ parentRect = new DOMRect();
1746
+ parentRect.x = rectWithPlaceholder.x;
1747
+ parentRect.y = rectWithPlaceholder.y;
1748
+ parentRect.width = isSplitPaneVertical ? rectWithPlaceholder.width : panesTotalSize + draggedPaneSize;
1749
+ parentRect.height = isSplitPaneVertical ? panesTotalSize + draggedPaneSize : rectWithPlaceholder.height;
1750
+ }
1658
1751
  switch (dockingPosition) {
1659
1752
  case locale.IgcDockingIndicatorPosition.left:
1660
1753
  case locale.IgcDockingIndicatorPosition.outerLeft:
@@ -1716,19 +1809,19 @@ class IgcDockManagerService {
1716
1809
  return shadowRect;
1717
1810
  }
1718
1811
  getDropShadowRectRoot() {
1719
- var _a;
1720
1812
  const rootRect = this.dropTargetParentRect;
1721
1813
  const shadowRect = new DOMRect();
1722
- const draggedPaneSize = (_a = this.getPaneToDock(this.dockManager.draggedPane).size) !== null && _a !== void 0 ? _a : IGC_DEFAULT_PANE_SIZE;
1814
+ let draggedPaneSize = this.getPaneToDock(this.dockManager.draggedPane).size;
1815
+ draggedPaneSize = draggedPaneSize >= 0 ? draggedPaneSize : IGC_DEFAULT_PANE_SIZE;
1723
1816
  const panes = this.getSplitPaneVisibleChildren(this.dockManager.layout.rootPane);
1724
1817
  const draggedPaneIndex = panes.indexOf(this.dockManager.draggedPane);
1725
1818
  if (draggedPaneIndex > -1) {
1726
1819
  panes.splice(draggedPaneIndex, 1);
1727
1820
  }
1728
- const panesTotalSize = panes.reduce((a, b) => a + (b.size || IGC_DEFAULT_PANE_SIZE), 0);
1821
+ const panesTotalSize = panes.reduce((a, b) => a + (b.size >= 0 ? b.size : IGC_DEFAULT_PANE_SIZE), 0);
1729
1822
  const isIndicatorVertical = Utils.isDockingIndicatorVertical(this.dockingIndicator.position);
1730
1823
  const isSplitPaneVertical = Utils.isSplitPaneVertical(this.dockManager.layout.rootPane);
1731
- const isSameSplitPane = (isIndicatorVertical && isSplitPaneVertical) || (!isIndicatorVertical && !isSplitPaneVertical);
1824
+ const isSameSplitPane = this.dockManager.layout.rootPane.useFixedSize !== true && ((isIndicatorVertical && isSplitPaneVertical) || (!isIndicatorVertical && !isSplitPaneVertical));
1732
1825
  const isEmptyDockManager = panes.length === 0;
1733
1826
  switch (this.dockingIndicator.position) {
1734
1827
  case locale.IgcDockingIndicatorPosition.left:
@@ -1811,6 +1904,36 @@ class IgcDockManagerService {
1811
1904
  this.normalizeMaximizedPane(nextPane);
1812
1905
  this.dockManager.activePane = nextPane;
1813
1906
  }
1907
+ isSplitPaneIgnoringResizeConstraints(pane) {
1908
+ return pane && pane.type === locale.IgcDockManagerPaneType.splitPane && pane.useFixedSize;
1909
+ }
1910
+ isParentUseFixedSize(pane) {
1911
+ const parent = this.getParent(pane);
1912
+ return this.isSplitPaneIgnoringResizeConstraints(parent);
1913
+ }
1914
+ checkAndAddPlaceholderPane(pane) {
1915
+ //Add placeholder pane in every splitPane that ignores resize constraints
1916
+ if (this.isSplitPaneIgnoringResizeConstraints(pane)) {
1917
+ // this.anyPaneIgnoringResizeConstraints = true;
1918
+ const placeholderPane = {
1919
+ type: locale.IgcDockManagerPaneType.contentPane,
1920
+ contentId: "placeholder",
1921
+ header: 'Placeholder',
1922
+ allowDocking: false,
1923
+ allowFloating: false,
1924
+ allowMaximize: false,
1925
+ allowPinning: false,
1926
+ size: 0
1927
+ };
1928
+ pane.panes.push(placeholderPane);
1929
+ }
1930
+ if (pane.type !== locale.IgcDockManagerPaneType.contentPane && pane.type !== locale.IgcDockManagerPaneType.documentHost && pane.panes) {
1931
+ pane.panes.forEach(p => this.checkAndAddPlaceholderPane(p));
1932
+ }
1933
+ else if (pane.type === locale.IgcDockManagerPaneType.documentHost) {
1934
+ this.checkAndAddPlaceholderPane(pane.rootPane);
1935
+ }
1936
+ }
1814
1937
  }
1815
1938
 
1816
1939
  /**
@@ -1966,7 +2089,7 @@ class IgcDockManagerKeyboardService {
1966
2089
  }
1967
2090
  }
1968
2091
 
1969
- const dockmanagerComponentCss = ":host{position:relative;z-index:0;display:flex;overflow:hidden;box-sizing:border-box;height:100%;background:var(--igc-dock-background, var(--igc-background-color, #E5E7E9));color:var(--igc-dock-text, var(--igc-text-color, rgba(0, 0, 0, 0.72)));font-family:var(--igc-font-family, \"Titillium Web\", \"Roboto\", \"Helvetica Neue\", sans-serif);outline-style:none;--unpinned-tab-area-size:30px}:host igc-icon-component svg{width:17px;height:17px}.pane-container--vertical,.pane-container--horizontal,.pane-container{display:flex;flex-grow:1;height:100%;width:100%;overflow:hidden}.pane-container--vertical{flex-direction:column}.unpinned-tab-area{display:flex;flex-direction:column;width:var(--unpinned-tab-area-size);height:auto}.unpinned-tab-area--left{padding:8px 8px 8px 0}.unpinned-tab-area--right{padding:8px 0 8px 8px}.unpinned-tab-area--bottom{padding-top:8px}.unpinned-tab-area--horizontal{flex-direction:row;width:auto;height:var(--unpinned-tab-area-size)}.unpinned-tab-area--hidden{display:none}.flyout-pane{display:flex;flex-direction:column;position:absolute;width:100%;height:100%;pointer-events:none;z-index:2}.flyout-pane igc-content-pane-component{box-shadow:0 12px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.flyout-pane--right{flex-direction:row-reverse}.flyout-pane--right igc-content-pane-component{box-shadow:-12px 0px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.flyout-pane--bottom{flex-direction:column-reverse}.flyout-pane--bottom igc-content-pane-component{box-shadow:0 -12px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.flyout-pane--left{flex-direction:row}.flyout-pane--left igc-content-pane-component{box-shadow:12px 0px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.floating-panes{position:fixed;top:0;left:0;bottom:0;right:0;pointer-events:none;z-index:10000}.docking-indicators-container{position:absolute;display:flex;flex-direction:column;width:100%;height:100%;pointer-events:none;z-index:10004}.content{overflow:auto;height:100%;flex-grow:1;color:var(--igc-pane-content-text, var(--igc-text-color, rgba(0, 0, 0, 0.72)));background:var(--igc-pane-content-background, var(--igc-border-color, #F3F5F7));position:relative}.maximized{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10002}.drop-shadow{background-color:var(--igc-drop-shadow-background, rgba(100, 149, 237, 0.2));position:fixed;z-index:10003;display:block;pointer-events:none}.hidden{height:0;opacity:0;padding:0;pointer-events:none;min-height:0 !important;transition:opacity 0.5s ease;position:absolute}.transitioned{overflow:hidden;transition:opacity 0.5s ease;position:absolute;z-index:999;width:100%}::-webkit-scrollbar{height:var(--igc-sb-size, 12px);width:var(--igc-sb-size, 12px)}::-webkit-scrollbar-track{background:var(--igc-sb-track-bg-color, #e5e7e9)}::-webkit-scrollbar-track:hover,::-webkit-scrollbar-track:active{background:var(--igc-sb-track-bg-color-hover, #e5e7e9)}::-webkit-scrollbar-corner{background:var(--igc-sb-corner-bg, #e5e7e9);border:var(--igc-sb-corner-border-size, 0) solid var(--igc-sb-corner-border-color, transparent)}::-webkit-scrollbar-track-piece{border:var(--igc-sb-track-border-size, 0) solid var(--igc-sb-track-border-color, transparent)}::-webkit-scrollbar-button:vertical:start:decrement,::-webkit-scrollbar-button:vertical:end:increment,::-webkit-scrollbar-button:horizontal:start:decrement,::-webkit-scrollbar-button:horizontal:end:increment{display:none}::-webkit-scrollbar-thumb{min-height:var(--igc-sb-thumb-min-height, 32px);border-radius:var(--igc-sb-thumb-border-radius, 0);border:var(--igc-sb-thumb-border-size, 0) solid var(--igc-sb-thumb-border-color, transparent);background-clip:content-box;background-color:var(--igc-sb-thumb-bg-color, #d1d1d1)}::-webkit-scrollbar-thumb:hover{background-color:var(--igc-sb-thumb-bg-color-hover, #afafaf)}";
2092
+ const dockmanagerComponentCss = ":host{position:relative;z-index:0;display:flex;overflow:hidden;box-sizing:border-box;height:100%;background:var(--igc-dock-background, var(--igc-background-color, #E5E7E9));color:var(--igc-dock-text, var(--igc-text-color, rgba(0, 0, 0, 0.72)));font-family:var(--igc-font-family, \"Titillium Web\", \"Roboto\", \"Helvetica Neue\", sans-serif);outline-style:none;--unpinned-tab-area-size:30px}:host igc-icon-component svg{width:17px;height:17px}.pane-container--vertical,.pane-container--horizontal,.pane-container{display:flex;flex-grow:1;max-height:100vh;max-width:100vw;height:100%;width:100%}.pane-container--horizontal{overflow-x:auto}.pane-container--vertical{flex-direction:column;overflow-y:auto}.unpinned-tab-area{display:flex;flex-direction:column;width:var(--unpinned-tab-area-size);height:auto}.unpinned-tab-area--left{padding:8px 8px 8px 0}.unpinned-tab-area--right{padding:8px 0 8px 8px}.unpinned-tab-area--bottom{padding-top:8px}.unpinned-tab-area--horizontal{flex-direction:row;width:auto;height:var(--unpinned-tab-area-size)}.unpinned-tab-area--hidden{display:none}.flyout-pane{display:flex;flex-direction:column;position:absolute;width:100%;height:100%;pointer-events:none;z-index:2}.flyout-pane igc-content-pane-component{box-shadow:0 12px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.flyout-pane--right{flex-direction:row-reverse}.flyout-pane--right igc-content-pane-component{box-shadow:-12px 0px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.flyout-pane--bottom{flex-direction:column-reverse}.flyout-pane--bottom igc-content-pane-component{box-shadow:0 -12px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.flyout-pane--left{flex-direction:row}.flyout-pane--left igc-content-pane-component{box-shadow:12px 0px 8px var(--igc-flyout-shadow-color, rgba(0, 0, 0, 0.08))}.floating-panes{position:fixed;top:0;left:0;bottom:0;right:0;pointer-events:none;z-index:10000}.docking-indicators-container{position:absolute;display:flex;flex-direction:column;width:100%;height:100%;pointer-events:none;z-index:10004}.content{overflow:auto;height:100%;flex-grow:1;color:var(--igc-pane-content-text, var(--igc-text-color, rgba(0, 0, 0, 0.72)));background:var(--igc-pane-content-background, var(--igc-border-color, #F3F5F7));position:relative}.maximized{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10002}.drop-shadow{background-color:var(--igc-drop-shadow-background, rgba(100, 149, 237, 0.2));position:fixed;z-index:10003;display:block;pointer-events:none}.hidden{height:0;opacity:0;padding:0;pointer-events:none;min-height:0 !important;transition:opacity 0.5s ease;position:absolute}.transitioned{overflow:hidden;transition:opacity 0.5s ease;position:absolute;z-index:999;width:100%}::-webkit-scrollbar{height:var(--igc-sb-size, 12px);width:var(--igc-sb-size, 12px)}::-webkit-scrollbar-track{background:var(--igc-sb-track-bg-color, #e5e7e9)}::-webkit-scrollbar-track:hover,::-webkit-scrollbar-track:active{background:var(--igc-sb-track-bg-color-hover, #e5e7e9)}::-webkit-scrollbar-corner{background:var(--igc-sb-corner-bg, #e5e7e9);border:var(--igc-sb-corner-border-size, 0) solid var(--igc-sb-corner-border-color, transparent)}::-webkit-scrollbar-track-piece{border:var(--igc-sb-track-border-size, 0) solid var(--igc-sb-track-border-color, transparent)}::-webkit-scrollbar-button:vertical:start:decrement,::-webkit-scrollbar-button:vertical:end:increment,::-webkit-scrollbar-button:horizontal:start:decrement,::-webkit-scrollbar-button:horizontal:end:increment{display:none}::-webkit-scrollbar-thumb{min-height:var(--igc-sb-thumb-min-height, 32px);border-radius:var(--igc-sb-thumb-border-radius, 0);border:var(--igc-sb-thumb-border-size, 0) solid var(--igc-sb-thumb-border-color, transparent);background-clip:content-box;background-color:var(--igc-sb-thumb-bg-color, #d1d1d1)}::-webkit-scrollbar-thumb:hover{background-color:var(--igc-sb-thumb-bg-color-hover, #afafaf)}";
1970
2093
 
1971
2094
  var ActionReason;
1972
2095
  (function (ActionReason) {
@@ -2009,6 +2132,7 @@ const IgcDockManager = class {
2009
2132
  this.resizeObserver = new ResizeObserver(this.restrictFloatingPaneSize.bind(this));
2010
2133
  this.proximityDockThreshold = 50;
2011
2134
  this.proximityOuterDockThreshold = 25;
2135
+ this.anyPaneIgnoringResizeConstraints = false;
2012
2136
  this.templatableComponents = [
2013
2137
  {
2014
2138
  slot: 'paneHeaderCloseButton',
@@ -2202,7 +2326,7 @@ const IgcDockManager = class {
2202
2326
  const panes = this.draggedPane.type === locale.IgcDockManagerPaneType.contentPane ?
2203
2327
  [this.draggedPane] :
2204
2328
  this.service.getChildContentPanes(this.draggedPane);
2205
- this.showDockingIndicators = panes.every(p => p.allowDocking !== false);
2329
+ this.showDockingIndicators = panes.every(p => p.allowDocking !== false) && !this.anyPaneIgnoringResizeConstraints;
2206
2330
  this.documentOnlyDrag = panes.some(p => p.documentOnly);
2207
2331
  }
2208
2332
  else {
@@ -2330,6 +2454,7 @@ const IgcDockManager = class {
2330
2454
  this.contextMenuMeta = null;
2331
2455
  this.navigationPaneMeta = null;
2332
2456
  if (this.layout) {
2457
+ this.updateLayout();
2333
2458
  this.layoutChanged();
2334
2459
  }
2335
2460
  if (!this.resourceStrings) {
@@ -2373,6 +2498,17 @@ const IgcDockManager = class {
2373
2498
  focusElement() {
2374
2499
  this.element.focus();
2375
2500
  }
2501
+ updateLayout() {
2502
+ //Check for useFixedSize in the layout and create a placeholder pane for resizing.
2503
+ this.service.checkAndAddPlaceholderPane(this.layout.rootPane);
2504
+ for (const p of this.layout.floatingPanes) {
2505
+ // Do not add a placeholder pane for floating pane's root splitPane
2506
+ p.panes.forEach(cp => this.service.checkAndAddPlaceholderPane(cp));
2507
+ // Should we add a resolved prop instead of setting useFixedSize to false?
2508
+ // Used to prevent the root parent splitPane of having flex grow and shrink set to 0 which breaks floating pane resizing.
2509
+ p.useFixedSize = false;
2510
+ }
2511
+ }
2376
2512
  handleTabsRendered(pane) {
2377
2513
  var _a;
2378
2514
  if (this.reason !== ActionReason.drop) {
@@ -2577,7 +2713,11 @@ const IgcDockManager = class {
2577
2713
  pane.unpinnedSize = minSize;
2578
2714
  }
2579
2715
  // If new pane size does not meet the size constraints, do not resize
2580
- let offset = this.isPaneSizeWithinConstraints(previousPane, event.detail, orientation, 'previous') ? this.splitterOffset * event.detail : 0;
2716
+ let parent = this.service.getParent(pane);
2717
+ let offset = this.service.isSplitPaneIgnoringResizeConstraints(parent) ||
2718
+ this.isPaneSizeWithinConstraints(previousPane, event.detail, orientation, 'previous') ?
2719
+ this.splitterOffset * event.detail :
2720
+ 0;
2581
2721
  this.service.resizeFlyoutPane(offset);
2582
2722
  let rect;
2583
2723
  rect = splitter.previousElementSibling.getBoundingClientRect();
@@ -2613,7 +2753,9 @@ const IgcDockManager = class {
2613
2753
  const sizeProperty = parentPane.orientation === locale.IgcSplitPaneOrientation.horizontal ? 'offsetWidth' : 'offsetHeight';
2614
2754
  const sizeSum = paneComponents.reduce((s, p) => p[sizeProperty] + s, 0);
2615
2755
  // If the new size is smaller or bigger that the size constraints, do not resize
2616
- const offset = this.isPaneSizeWithinConstraints(previousPane, event.detail, parentPane.orientation, 'previous') && this.isPaneSizeWithinConstraints(nextPane, event.detail, parentPane.orientation) ? event.detail : 0;
2756
+ const offset = parentPane.useFixedSize ||
2757
+ this.isPaneSizeWithinConstraints(previousPane, event.detail, parentPane.orientation, 'previous') &&
2758
+ this.isPaneSizeWithinConstraints(nextPane, event.detail, parentPane.orientation) ? event.detail : 0;
2617
2759
  let offsetPercentage = this.splitterOffset * offset / sizeSum;
2618
2760
  let rtl = false;
2619
2761
  if (this.element.dir !== '') {
@@ -2701,7 +2843,7 @@ const IgcDockManager = class {
2701
2843
  }
2702
2844
  this.shouldClearActivePane = false;
2703
2845
  this.focusElement();
2704
- const dragStarted = this.service.dragPaneStart(pane, rect, event.detail.clientX, event.detail.clientY);
2846
+ const dragStarted = this.service.dragPaneStart(pane, rect, event.detail.clientX, event.detail.clientY, this.anyPaneIgnoringResizeConstraints);
2705
2847
  this.isDragging = true;
2706
2848
  this.scheduleAfterRender(() => {
2707
2849
  this.shouldClearActivePane = true;
@@ -2741,6 +2883,22 @@ const IgcDockManager = class {
2741
2883
  if (event && !dragMoved) {
2742
2884
  event.detail.cancel = true;
2743
2885
  }
2886
+ // After successfull pane drag, check if there is a splitPane with useFixedSize = true
2887
+ // that is left with a single placeholder pane and remove it.
2888
+ // This would happen only when the last non placeholder pane of a split pane gets dragged.
2889
+ if (dragMoved) {
2890
+ const elements = this.element.shadowRoot.elementsFromPoint(clientX, clientY);
2891
+ const splitPanes = elements.filter(e => e.tagName.toLowerCase() === 'igc-split-pane-component');
2892
+ for (const sp of splitPanes) {
2893
+ const splitPane = this.panesElementMap.getByValue(sp);
2894
+ if (splitPane.useFixedSize &&
2895
+ splitPane.panes.length === 1 &&
2896
+ splitPane.panes[0].type === locale.IgcDockManagerPaneType.contentPane &&
2897
+ splitPane.panes[0].contentId === "placeholder") {
2898
+ this.service.closePane(splitPane.panes[0]);
2899
+ }
2900
+ }
2901
+ }
2744
2902
  }
2745
2903
  getInnerDropTargetParentRect() {
2746
2904
  if (this.dropTargetPaneInfo && this.service.proximityDockPosition) {
@@ -2909,7 +3067,7 @@ const IgcDockManager = class {
2909
3067
  tabsRect
2910
3068
  };
2911
3069
  this.handleDropPositionChange(event.detail.clientX, event.detail.clientY, event === null || event === void 0 ? void 0 : event.target);
2912
- const tabMoved = this.service.dragTabMove(pane, event.detail, tabRectsInfo);
3070
+ const tabMoved = this.service.dragTabMove(pane, event.detail, tabRectsInfo, this.anyPaneIgnoringResizeConstraints);
2913
3071
  if (event && !tabMoved) {
2914
3072
  event.detail.cancel = true;
2915
3073
  }
@@ -2938,6 +3096,9 @@ const IgcDockManager = class {
2938
3096
  }
2939
3097
  handleDropPositionChange(clientX, clientY, target) {
2940
3098
  var _a;
3099
+ if (this.highlightedJoystick) {
3100
+ this.highlightedJoystick.style.boxShadow = '';
3101
+ }
2941
3102
  const elements = clientX && clientY ?
2942
3103
  this.element.shadowRoot.elementsFromPoint(clientX, clientY) :
2943
3104
  null;
@@ -2974,13 +3135,17 @@ const IgcDockManager = class {
2974
3135
  let indicatorTarget = null;
2975
3136
  let dockingIndicatorElement = topElement.closest('igc-root-docking-indicator-component');
2976
3137
  if (dockingIndicatorElement) {
3138
+ // root docking indicator
2977
3139
  this.service.dockingIndicator = {
2978
3140
  position: dockingIndicatorElement.position,
2979
3141
  isRoot: true,
2980
- direction: this.direction
3142
+ direction: this.direction,
2981
3143
  };
3144
+ this.highlightedJoystick = dockingIndicatorElement;
3145
+ this.highlightedJoystick.style.boxShadow = 'inset 0 0 0 3px rgba(0,0,0,0.2), inset 0 0 0 25px rgba(100,149,237,0.2)';
2982
3146
  }
2983
- if (!dockingIndicatorElement) {
3147
+ else {
3148
+ // regular docking indicator
2984
3149
  const joystickIcon = topElement.closest('igc-joystick-icon-component');
2985
3150
  if (joystickIcon && !joystickIcon.empty) {
2986
3151
  dockingIndicatorElement = joystickIcon;
@@ -2991,6 +3156,8 @@ const IgcDockManager = class {
2991
3156
  };
2992
3157
  const joystickIndicator = joystickIcon.closest('igc-joystick-indicator-component');
2993
3158
  indicatorTarget = joystickIndicator.dropTargetPaneInfo;
3159
+ this.highlightedJoystick = joystickIcon;
3160
+ this.highlightedJoystick.style.boxShadow = 'inset 0 0 0 3px rgba(0,0,0,0.2), inset 0 0 0 25px rgba(100,149,237,0.2)';
2994
3161
  }
2995
3162
  }
2996
3163
  if (dockingIndicatorElement &&
@@ -3272,7 +3439,7 @@ const IgcDockManager = class {
3272
3439
  const maximized = this.maximizedPane === pane ||
3273
3440
  (parentPane.type === locale.IgcDockManagerPaneType.tabGroupPane && this.maximizedPane === parentPane) ||
3274
3441
  isFloating && isSingleFloatingContentPane && floatingPane === this.maximizedPane;
3275
- return (index.h("igc-content-pane-component", { key: pane.id, contentId: pane.contentId, size: pane.size, isFlyout: isFlyout, unpinnedSize: pane.unpinnedSize, disabled: pane.disabled, isSingleFloating: isSingleFloatingContentPane, onMouseMove: this.togglePaneHeaderVisibility.bind(this, pane), onMouseLeave: this.removeHoveredPane.bind(this), ref: el => {
3442
+ return (index.h("igc-content-pane-component", { key: pane.id, contentId: pane.contentId, size: pane.size, isFlyout: isFlyout, unpinnedSize: pane.unpinnedSize, disabled: pane.disabled, isSingleFloating: isSingleFloatingContentPane, onMouseMove: this.togglePaneHeaderVisibility.bind(this, pane), onMouseLeave: this.removeHoveredPane.bind(this), parentUseFixedSize: this.service.isParentUseFixedSize(pane), ref: el => {
3276
3443
  if (el) {
3277
3444
  this.panesElementMap.set(pane, el);
3278
3445
  this.contentPanesElementMap.set(pane, el);
@@ -3287,10 +3454,10 @@ const IgcDockManager = class {
3287
3454
  pane.header), index.h("div", { class: "content", onMouseDown: this.handlePaneContentMouseDown.bind(this, pane), onScroll: this.handlePaneContentScroll.bind(this, pane) }, index.h("slot", { name: pane.contentId }))));
3288
3455
  }
3289
3456
  renderSplitter(parentPane, pane) {
3290
- return (index.h("igc-splitter-component", { splitPaneOrientation: parentPane.orientation, onResizeStart: this.handleSplitterResizeStart.bind(this, pane), onResizeEnd: this.handleSplitterResizeEnd.bind(this, parentPane, pane), onFocusin: this.clearActivePane.bind(this) }));
3457
+ return (index.h("igc-splitter-component", { splitPaneOrientation: parentPane.orientation, onResizeStart: this.handleSplitterResizeStart.bind(this, pane), onResizeEnd: this.handleSplitterResizeEnd.bind(this, parentPane, pane), onFocusin: this.clearActivePane.bind(this), parentUseFixedSize: parentPane.useFixedSize }));
3291
3458
  }
3292
3459
  renderDocumentHost(docHost) {
3293
- return (index.h("igc-document-host-component", { key: docHost.id, size: docHost.size, ref: el => {
3460
+ return (index.h("igc-document-host-component", { key: docHost.id, size: docHost.size, parentUseFixedSize: this.service.isParentUseFixedSize(docHost), ref: el => {
3294
3461
  if (el) {
3295
3462
  this.panesElementMap.set(docHost, el);
3296
3463
  }
@@ -3314,7 +3481,7 @@ const IgcDockManager = class {
3314
3481
  else {
3315
3482
  contentIds.push(pane.contentId);
3316
3483
  }
3317
- return (allowEmpty || tabs.length > 0) && (index.h("igc-tabs-component", { key: pane.id, contentIds: contentIds, size: pane.size, selectedIndex: selectedIndex, hasHeaders: !isSingleTab, maximized: this.maximizedPane === pane, allowMaximize: position === IgcTabHeadersPosition.top && allowMaximize, onMaximizeMinimizeFocus: this.clearActivePane.bind(this), onMaximize: this.handleMaximize.bind(this, pane), onSelectedIndexChanged: this.handleTabSelectedIndexChanged.bind(this, pane), onHiddenTabSelected: this.handleHiddenTabSelected.bind(this, pane), onSelectedTabOutOfView: this.handleSelectedTabOutOfView.bind(this, pane), onRendered: this.handleTabsRendered.bind(this, pane), tabHeadersPosition: position, resourceStrings: this.resourceStrings, ref: el => {
3484
+ return (allowEmpty || tabs.length > 0) && (index.h("igc-tabs-component", { key: pane.id, contentIds: contentIds, size: pane.size, selectedIndex: selectedIndex, hasHeaders: !isSingleTab, parentUseFixedSize: this.service.isParentUseFixedSize(pane), maximized: this.maximizedPane === pane, allowMaximize: position === IgcTabHeadersPosition.top && allowMaximize, onMaximizeMinimizeFocus: this.clearActivePane.bind(this), onMaximize: this.handleMaximize.bind(this, pane), onSelectedIndexChanged: this.handleTabSelectedIndexChanged.bind(this, pane), onHiddenTabSelected: this.handleHiddenTabSelected.bind(this, pane), onSelectedTabOutOfView: this.handleSelectedTabOutOfView.bind(this, pane), onRendered: this.handleTabsRendered.bind(this, pane), tabHeadersPosition: position, resourceStrings: this.resourceStrings, ref: el => {
3318
3485
  if (el) {
3319
3486
  this.panesElementMap.set(pane, el);
3320
3487
  }
@@ -3357,7 +3524,7 @@ const IgcDockManager = class {
3357
3524
  }
3358
3525
  renderSplitPane(splitPane, isFloating, isInDocumentHost) {
3359
3526
  const panes = this.service.getSplitPaneVisibleChildren(splitPane);
3360
- return (splitPane.allowEmpty || panes.length > 0) && (index.h("igc-split-pane-component", { key: splitPane.id, orientation: splitPane.orientation, size: splitPane.size, onRendered: this.handleSplitPaneRendered.bind(this, panes), ref: el => {
3527
+ return (splitPane.allowEmpty || panes.length > 0) && (index.h("igc-split-pane-component", { key: splitPane.id, orientation: splitPane.orientation, size: splitPane.size, useFixedSize: splitPane.useFixedSize, parentUseFixedSize: this.service.isParentUseFixedSize(splitPane), onRendered: this.handleSplitPaneRendered.bind(this, panes), ref: el => {
3361
3528
  if (el) {
3362
3529
  this.panesElementMap.set(splitPane, el);
3363
3530
  }
@@ -3367,9 +3534,11 @@ const IgcDockManager = class {
3367
3534
  paneComponent = this.renderSplitPane(p, isFloating, isInDocumentHost);
3368
3535
  }
3369
3536
  else if (p.type === locale.IgcDockManagerPaneType.contentPane) {
3370
- paneComponent = isInDocumentHost ?
3371
- this.renderTabGroup(p, isFloating, true) :
3372
- this.renderContentPane(p, isFloating, false);
3537
+ paneComponent = p.contentId === "placeholder" ?
3538
+ this.renderPlaceholder(p) :
3539
+ isInDocumentHost ?
3540
+ this.renderTabGroup(p, isFloating, true) :
3541
+ this.renderContentPane(p, isFloating, false);
3373
3542
  }
3374
3543
  else if (p.type === locale.IgcDockManagerPaneType.documentHost) {
3375
3544
  paneComponent = this.renderDocumentHost(p);
@@ -3382,6 +3551,9 @@ const IgcDockManager = class {
3382
3551
  paneComponent;
3383
3552
  })));
3384
3553
  }
3554
+ renderPlaceholder(pane) {
3555
+ return (index.h("igc-content-pane-component", { key: pane.id, contentId: pane.contentId, size: pane.size }));
3556
+ }
3385
3557
  renderUnpinnedTabArea(location) {
3386
3558
  const panes = [];
3387
3559
  const isHorizontal = location === locale.IgcUnpinnedLocation.top || location === locale.IgcUnpinnedLocation.bottom;
@@ -3453,6 +3625,10 @@ const IgcDockManager = class {
3453
3625
  renderDockingIndicators() {
3454
3626
  const startPosition = this.direction !== 'rtl' ? locale.IgcDockingIndicatorPosition.left : locale.IgcDockingIndicatorPosition.right;
3455
3627
  const endPosition = this.direction !== 'rtl' ? locale.IgcDockingIndicatorPosition.right : locale.IgcDockingIndicatorPosition.left;
3628
+ // Only show the joystick indicator if the target drop location is an empty split pane
3629
+ const hideJoystickIndicator = this.dropTargetPaneInfo &&
3630
+ this.dropTargetPaneInfo.pane.type == "splitPane" &&
3631
+ this.service.getSplitPaneVisibleChildren(this.dropTargetPaneInfo.pane).length;
3456
3632
  return (index.h("div", { class: "docking-indicators-container", style: {
3457
3633
  display: this.showDockingIndicators ? 'flex' : 'none'
3458
3634
  } }, !this.documentOnlyDrag && !this.proximityDock && this.renderRootDockingIndicator(locale.IgcDockingIndicatorPosition.top), index.h("div", { style: {
@@ -3460,7 +3636,7 @@ const IgcDockManager = class {
3460
3636
  display: 'flex',
3461
3637
  flexDirection: 'row',
3462
3638
  justifyContent: 'space-between'
3463
- } }, !this.documentOnlyDrag && !this.proximityDock && this.renderRootDockingIndicator(startPosition), !this.documentOnlyDrag && !this.proximityDock && this.renderRootDockingIndicator(endPosition)), !this.documentOnlyDrag && !this.proximityDock && this.renderRootDockingIndicator(locale.IgcDockingIndicatorPosition.bottom), this.dropTargetPaneInfo && !this.proximityDock &&
3639
+ } }, !this.documentOnlyDrag && !this.proximityDock && this.renderRootDockingIndicator(startPosition), !this.documentOnlyDrag && !this.proximityDock && this.renderRootDockingIndicator(endPosition)), !this.documentOnlyDrag && !this.proximityDock && this.renderRootDockingIndicator(locale.IgcDockingIndicatorPosition.bottom), this.dropTargetPaneInfo && !this.proximityDock && !hideJoystickIndicator &&
3464
3640
  index.h("igc-joystick-indicator-component", { dropTargetPaneInfo: this.dropTargetPaneInfo, documentOnlyDrag: this.documentOnlyDrag, allowCenterDock: this.allowInnerDock })));
3465
3641
  }
3466
3642
  renderContextMenu() {
@@ -3517,11 +3693,12 @@ const IgcDocumentHostComponent = class {
3517
3693
  constructor(hostRef) {
3518
3694
  index.registerInstance(this, hostRef);
3519
3695
  this.size = undefined;
3696
+ this.parentUseFixedSize = false;
3520
3697
  }
3521
3698
  render() {
3522
3699
  const size = this.size || this.size === 0 ? this.size : IGC_DEFAULT_PANE_SIZE;
3523
3700
  return (index.h(index.Host, { role: "group", style: {
3524
- flex: `${size} 1 ${size}px`
3701
+ flex: this.parentUseFixedSize ? `0 0 ${size}px` : `${size} 1 ${size}px`
3525
3702
  } }));
3526
3703
  }
3527
3704
  };
@@ -4323,6 +4500,8 @@ const IgcSplitPaneComponent = class {
4323
4500
  this.rendered = index.createEvent(this, "rendered", 7);
4324
4501
  this.orientation = undefined;
4325
4502
  this.size = undefined;
4503
+ this.useFixedSize = false;
4504
+ this.parentUseFixedSize = false;
4326
4505
  }
4327
4506
  componentDidRender() {
4328
4507
  this.rendered.emit();
@@ -4331,7 +4510,7 @@ const IgcSplitPaneComponent = class {
4331
4510
  const size = this.size || this.size === 0 ? this.size : IGC_DEFAULT_PANE_SIZE;
4332
4511
  return (index.h(index.Host, { role: "group", style: {
4333
4512
  flexDirection: this.orientation === locale.IgcSplitPaneOrientation.horizontal ? 'row' : 'column',
4334
- flex: `${size} 1 ${size}px`
4513
+ flex: this.parentUseFixedSize ? `0 0 ${size}px` : `${size} 1 ${size}px`
4335
4514
  }, part: "split-pane" }));
4336
4515
  }
4337
4516
  };
@@ -4383,6 +4562,7 @@ const IgcSplitterComponent = class {
4383
4562
  this.showDragGhost = undefined;
4384
4563
  this.splitPaneOrientation = undefined;
4385
4564
  this.flyoutLocation = undefined;
4565
+ this.parentUseFixedSize = false;
4386
4566
  }
4387
4567
  connectedCallback() {
4388
4568
  this.dragService = new IgcDragService(this.element);
@@ -4508,14 +4688,16 @@ const IgcSplitterComponent = class {
4508
4688
  }
4509
4689
  }
4510
4690
  else {
4511
- const referencePaneSize = !rtl || isVertical ? this.paneSizes[1] : this.paneSizes[0];
4512
- if (referencePaneSize > IGC_RESIZING_MIN_SIZE) {
4513
- if (referencePaneSize - this.dragOffset < IGC_RESIZING_MIN_SIZE) {
4514
- this.dragOffset = referencePaneSize - IGC_RESIZING_MIN_SIZE;
4691
+ if (!this.parentUseFixedSize) {
4692
+ const referencePaneSize = !rtl || isVertical ? this.paneSizes[1] : this.paneSizes[0];
4693
+ if (referencePaneSize > IGC_RESIZING_MIN_SIZE) {
4694
+ if (referencePaneSize - this.dragOffset < IGC_RESIZING_MIN_SIZE) {
4695
+ this.dragOffset = referencePaneSize - IGC_RESIZING_MIN_SIZE;
4696
+ }
4697
+ }
4698
+ else {
4699
+ this.dragOffset = 0;
4515
4700
  }
4516
- }
4517
- else {
4518
- this.dragOffset = 0;
4519
4701
  }
4520
4702
  }
4521
4703
  }
@@ -4797,6 +4979,7 @@ const IgcTabsComponent = class {
4797
4979
  this.showHiddenTabsMenu = true;
4798
4980
  this.resourceStrings = undefined;
4799
4981
  this.contentIds = [];
4982
+ this.parentUseFixedSize = false;
4800
4983
  }
4801
4984
  selectedIndexPropertyChanged(newValue) {
4802
4985
  this.handleSelectedIndexChanged(newValue);
@@ -4996,7 +5179,7 @@ const IgcTabsComponent = class {
4996
5179
  bottom
4997
5180
  }, ',');
4998
5181
  return (index.h(index.Host, { role: "tablist", style: {
4999
- flex: `${size} 1 ${size}px`
5182
+ flex: this.parentUseFixedSize ? `0 0 ${size}px` : `${size} 1 ${size}px`
5000
5183
  }, exportparts: exportParts, part: parts }, top && this.renderTabHeaders(top), index.h("div", { part: tabsContentParts, class: "content" }, index.h("slot", { onSlotchange: this.slotChanged.bind(this) })), bottom && this.renderTabHeaders(top), this.renderHiddenTabsMenu()));
5001
5184
  }
5002
5185
  get el() { return index.getElement(this); }
@@ -5035,7 +5218,7 @@ const IgcUnpinnedPaneHeaderComponent = class {
5035
5218
  };
5036
5219
  IgcUnpinnedPaneHeaderComponent.style = unpinnedPaneHeaderComponentCss;
5037
5220
 
5038
- const sampleComponentCss = ".sc-sample-component-h{display:flex;flex-direction:column;height:100%}";
5221
+ const sampleComponentCss = ".sc-sample-component-h{display:flex;flex-direction:column;height:100%}igc-dockmanager.sc-sample-component{margin:10px;border:1px solid black}";
5039
5222
 
5040
5223
  /**
5041
5224
  * @hidden
@@ -5360,128 +5543,723 @@ const SampleComponent = class {
5360
5543
  };
5361
5544
  this.layout3 = {
5362
5545
  rootPane: {
5363
- id: "root",
5364
5546
  type: locale.IgcDockManagerPaneType.splitPane,
5365
5547
  orientation: locale.IgcSplitPaneOrientation.horizontal,
5548
+ useFixedSize: true,
5366
5549
  panes: [
5550
+ // {
5551
+ // type: IgcDockManagerPaneType.splitPane,
5552
+ // useFixedSize: true,
5553
+ // orientation: IgcSplitPaneOrientation.vertical,
5554
+ // size: 300, // PIXELS
5555
+ // panes: [
5556
+ // {
5557
+ // type: IgcDockManagerPaneType.contentPane,
5558
+ // contentId: 'content1',
5559
+ // header: 'Content Pane 1',
5560
+ // size: 500 // PIXELS
5561
+ // },
5562
+ // {
5563
+ // type: IgcDockManagerPaneType.contentPane,
5564
+ // contentId: 'content2',
5565
+ // header: 'Content Pane 2',
5566
+ // size: 300 // PIXELS
5567
+ // }
5568
+ // ]
5569
+ // },
5367
5570
  {
5368
5571
  type: locale.IgcDockManagerPaneType.splitPane,
5369
5572
  orientation: locale.IgcSplitPaneOrientation.vertical,
5573
+ size: 450,
5574
+ panes: [
5575
+ {
5576
+ type: locale.IgcDockManagerPaneType.splitPane,
5577
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5578
+ useFixedSize: true,
5579
+ size: 300,
5580
+ panes: [
5581
+ {
5582
+ type: locale.IgcDockManagerPaneType.contentPane,
5583
+ contentId: 'content4',
5584
+ header: 'Content Pane 4',
5585
+ size: 400 // PIXELS
5586
+ }
5587
+ ]
5588
+ },
5589
+ {
5590
+ type: locale.IgcDockManagerPaneType.contentPane,
5591
+ contentId: 'content7',
5592
+ header: 'Content Pane 7',
5593
+ size: 450 // PIXELS
5594
+ }
5595
+ ]
5596
+ }
5597
+ ]
5598
+ },
5599
+ floatingPanes: [
5600
+ // {
5601
+ // type: IgcDockManagerPaneType.splitPane,
5602
+ // orientation: IgcSplitPaneOrientation.vertical,
5603
+ // useFixedSize: true,
5604
+ // // size: 950, // PIXELS
5605
+ // floatingHeight: 950,
5606
+ // floatingWidth: 650,
5607
+ // floatingLocation: { x: 200, y: 50 },
5608
+ // panes: [
5609
+ // {
5610
+ // type: IgcDockManagerPaneType.splitPane,
5611
+ // orientation: IgcSplitPaneOrientation.horizontal,
5612
+ // useFixedSize: true,
5613
+ // size: 400, // PIXELS
5614
+ // panes: [
5615
+ // {
5616
+ // type: IgcDockManagerPaneType.contentPane,
5617
+ // contentId: 'content12',
5618
+ // header: 'Content Pane 12',
5619
+ // size: 400 // PIXELS
5620
+ // },
5621
+ // {
5622
+ // type: IgcDockManagerPaneType.contentPane,
5623
+ // contentId: 'content13',
5624
+ // header: 'Content Pane 13',
5625
+ // size: 200 // PIXELS
5626
+ // }
5627
+ // ]
5628
+ // },
5629
+ // {
5630
+ // type: IgcDockManagerPaneType.splitPane,
5631
+ // orientation: IgcSplitPaneOrientation.vertical,
5632
+ // useFixedSize: true,
5633
+ // size: 500, // PIXELS
5634
+ // panes: [
5635
+ // {
5636
+ // type: IgcDockManagerPaneType.contentPane,
5637
+ // contentId: 'content11',
5638
+ // header: 'Content Pane 11',
5639
+ // size: 300 // PIXELS
5640
+ // },
5641
+ // ]
5642
+ // }
5643
+ // ]
5644
+ // }
5645
+ ]
5646
+ };
5647
+ this.commonProps = {
5648
+ allowClose: false,
5649
+ allowMaximize: false,
5650
+ allowPinning: false,
5651
+ };
5652
+ this.bodyRect = document.body.getBoundingClientRect();
5653
+ this.bodyWidth = this.bodyRect.width - 36;
5654
+ this.bodyHeight = this.bodyRect.height - 36;
5655
+ this.layout4 = {
5656
+ rootPane: {
5657
+ type: locale.IgcDockManagerPaneType.splitPane,
5658
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5659
+ useFixedSize: true,
5660
+ panes: [
5661
+ {
5662
+ type: locale.IgcDockManagerPaneType.splitPane,
5663
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5664
+ useFixedSize: true,
5665
+ size: this.bodyHeight / 2,
5666
+ panes: [
5667
+ {
5668
+ type: locale.IgcDockManagerPaneType.contentPane,
5669
+ contentId: 'content1',
5670
+ header: 'Content 1 Header',
5671
+ size: 260, // PIXELS
5672
+ },
5673
+ {
5674
+ type: locale.IgcDockManagerPaneType.splitPane,
5675
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5676
+ size: 240 + 10,
5677
+ useFixedSize: true,
5678
+ panes: [
5679
+ {
5680
+ type: locale.IgcDockManagerPaneType.splitPane,
5681
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5682
+ size: this.bodyWidth / 3,
5683
+ panes: [
5684
+ {
5685
+ type: locale.IgcDockManagerPaneType.contentPane,
5686
+ contentId: 'content2',
5687
+ header: 'Content 2 Header',
5688
+ size: 240, // PIXELS
5689
+ },
5690
+ ],
5691
+ },
5692
+ {
5693
+ type: locale.IgcDockManagerPaneType.splitPane,
5694
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5695
+ useFixedSize: true,
5696
+ size: (this.bodyWidth * 2) / 3,
5697
+ panes: [
5698
+ {
5699
+ type: locale.IgcDockManagerPaneType.contentPane,
5700
+ contentId: 'content3',
5701
+ header: 'Content 3 Header',
5702
+ size: 240, // PIXELS
5703
+ },
5704
+ ],
5705
+ },
5706
+ // {
5707
+ // type: IgcDockManagerPaneType.contentPane,
5708
+ // contentId: 'content_not_used_2',
5709
+ // header: 'NOT USED',
5710
+ // // size: 0,
5711
+ // ...this.commonProps,
5712
+ // },
5713
+ ],
5714
+ },
5715
+ {
5716
+ type: locale.IgcDockManagerPaneType.contentPane,
5717
+ contentId: 'content4',
5718
+ header: 'Content 4 Header',
5719
+ size: 290, // PIXELS
5720
+ },
5721
+ {
5722
+ type: locale.IgcDockManagerPaneType.splitPane,
5723
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5724
+ size: 240 + 10,
5725
+ panes: [
5726
+ {
5727
+ type: locale.IgcDockManagerPaneType.splitPane,
5728
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5729
+ size: this.bodyWidth / 3,
5730
+ panes: [
5731
+ {
5732
+ type: locale.IgcDockManagerPaneType.contentPane,
5733
+ contentId: 'content5',
5734
+ header: 'Content 5 Header',
5735
+ size: 240, // PIXELS
5736
+ },
5737
+ ],
5738
+ },
5739
+ {
5740
+ type: locale.IgcDockManagerPaneType.splitPane,
5741
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5742
+ size: (this.bodyWidth * 2) / 3,
5743
+ panes: [
5744
+ {
5745
+ type: locale.IgcDockManagerPaneType.contentPane,
5746
+ contentId: 'content6',
5747
+ header: 'Content 6 Header',
5748
+ size: 240, // PIXELS
5749
+ },
5750
+ ],
5751
+ },
5752
+ // {
5753
+ // type: IgcDockManagerPaneType.contentPane,
5754
+ // contentId: 'content_not_used_3',
5755
+ // header: 'NOT USED',
5756
+ // ...this.commonProps,
5757
+ // },
5758
+ ],
5759
+ },
5760
+ {
5761
+ type: locale.IgcDockManagerPaneType.splitPane,
5762
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5763
+ size: 240 + 10,
5764
+ panes: [
5765
+ {
5766
+ type: locale.IgcDockManagerPaneType.splitPane,
5767
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5768
+ size: this.bodyWidth / 2,
5769
+ panes: [
5770
+ {
5771
+ type: locale.IgcDockManagerPaneType.contentPane,
5772
+ contentId: 'content7',
5773
+ header: 'Content 7 Header',
5774
+ size: 240, // PIXELS
5775
+ },
5776
+ ],
5777
+ },
5778
+ {
5779
+ type: locale.IgcDockManagerPaneType.splitPane,
5780
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5781
+ size: this.bodyWidth / 2,
5782
+ panes: [
5783
+ {
5784
+ type: locale.IgcDockManagerPaneType.contentPane,
5785
+ contentId: 'content8',
5786
+ header: 'Content 8 Header',
5787
+ size: 240, // PIXELS
5788
+ },
5789
+ ],
5790
+ },
5791
+ // {
5792
+ // type: IgcDockManagerPaneType.contentPane,
5793
+ // contentId: 'content_not_used_4',
5794
+ // header: 'NOT USED',
5795
+ // ...this.commonProps,
5796
+ // },
5797
+ ],
5798
+ },
5799
+ {
5800
+ type: locale.IgcDockManagerPaneType.contentPane,
5801
+ contentId: 'content9',
5802
+ header: 'Content 9 Header',
5803
+ size: 290, // PIXELS
5804
+ },
5805
+ // {
5806
+ // type: IgcDockManagerPaneType.contentPane,
5807
+ // contentId: 'content_not_used_1',
5808
+ // header: 'NOT USED',
5809
+ // ...this.commonProps,
5810
+ // },
5811
+ ],
5812
+ },
5813
+ ],
5814
+ },
5815
+ floatingPanes: [],
5816
+ };
5817
+ this.layout5 = {
5818
+ rootPane: {
5819
+ type: locale.IgcDockManagerPaneType.splitPane,
5820
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5821
+ panes: [
5822
+ {
5823
+ type: locale.IgcDockManagerPaneType.splitPane,
5824
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5825
+ useFixedSize: true,
5826
+ size: this.bodyWidth,
5827
+ panes: [
5828
+ {
5829
+ type: locale.IgcDockManagerPaneType.contentPane,
5830
+ contentId: 'content1',
5831
+ header: 'Content 1 Header',
5832
+ size: 60, // PIXELS
5833
+ },
5834
+ {
5835
+ type: locale.IgcDockManagerPaneType.splitPane,
5836
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5837
+ size: 240 + 10,
5838
+ useFixedSize: true,
5839
+ panes: [
5840
+ {
5841
+ type: locale.IgcDockManagerPaneType.splitPane,
5842
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5843
+ size: this.bodyWidth / 3,
5844
+ panes: [
5845
+ {
5846
+ type: locale.IgcDockManagerPaneType.contentPane,
5847
+ contentId: 'content2',
5848
+ header: 'Content 2 Header',
5849
+ size: 240, // PIXELS
5850
+ },
5851
+ ],
5852
+ },
5853
+ {
5854
+ type: locale.IgcDockManagerPaneType.splitPane,
5855
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5856
+ size: (this.bodyWidth * 2) / 3,
5857
+ panes: [
5858
+ {
5859
+ type: locale.IgcDockManagerPaneType.contentPane,
5860
+ contentId: 'content3',
5861
+ header: 'Content 3 Header',
5862
+ size: 240, // PIXELS
5863
+ },
5864
+ ],
5865
+ },
5866
+ Object.assign({ type: locale.IgcDockManagerPaneType.contentPane, contentId: 'content_not_used_2', header: 'NOT USED' }, this.commonProps),
5867
+ ],
5868
+ },
5869
+ {
5870
+ type: locale.IgcDockManagerPaneType.contentPane,
5871
+ contentId: 'content4',
5872
+ header: 'Content 4 Header',
5873
+ size: 290, // PIXELS
5874
+ },
5875
+ {
5876
+ type: locale.IgcDockManagerPaneType.splitPane,
5877
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5878
+ size: 240 + 10,
5879
+ panes: [
5880
+ {
5881
+ type: locale.IgcDockManagerPaneType.splitPane,
5882
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5883
+ size: this.bodyWidth / 3,
5884
+ panes: [
5885
+ {
5886
+ type: locale.IgcDockManagerPaneType.contentPane,
5887
+ contentId: 'content5',
5888
+ header: 'Content 5 Header',
5889
+ size: 240, // PIXELS
5890
+ },
5891
+ ],
5892
+ },
5893
+ {
5894
+ type: locale.IgcDockManagerPaneType.splitPane,
5895
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5896
+ size: (this.bodyWidth * 2) / 3,
5897
+ panes: [
5898
+ {
5899
+ type: locale.IgcDockManagerPaneType.contentPane,
5900
+ contentId: 'content6',
5901
+ header: 'Content 6 Header',
5902
+ size: 240, // PIXELS
5903
+ },
5904
+ ],
5905
+ },
5906
+ Object.assign({ type: locale.IgcDockManagerPaneType.contentPane, contentId: 'content_not_used_3', header: 'NOT USED' }, this.commonProps),
5907
+ ],
5908
+ },
5909
+ {
5910
+ type: locale.IgcDockManagerPaneType.splitPane,
5911
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5912
+ size: 240 + 10,
5913
+ panes: [
5914
+ {
5915
+ type: locale.IgcDockManagerPaneType.splitPane,
5916
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5917
+ size: this.bodyWidth / 2,
5918
+ panes: [
5919
+ {
5920
+ type: locale.IgcDockManagerPaneType.contentPane,
5921
+ contentId: 'content7',
5922
+ header: 'Content 7 Header',
5923
+ size: 240, // PIXELS
5924
+ },
5925
+ ],
5926
+ },
5927
+ {
5928
+ type: locale.IgcDockManagerPaneType.splitPane,
5929
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5930
+ size: this.bodyWidth / 2,
5931
+ panes: [
5932
+ {
5933
+ type: locale.IgcDockManagerPaneType.contentPane,
5934
+ contentId: 'content8',
5935
+ header: 'Content 8 Header',
5936
+ size: 240, // PIXELS
5937
+ },
5938
+ ],
5939
+ },
5940
+ Object.assign({ type: locale.IgcDockManagerPaneType.contentPane, contentId: 'content_not_used_4', header: 'NOT USED' }, this.commonProps),
5941
+ ],
5942
+ },
5943
+ {
5944
+ type: locale.IgcDockManagerPaneType.contentPane,
5945
+ contentId: 'content9',
5946
+ header: 'Content 9 Header',
5947
+ size: 290, // PIXELS
5948
+ },
5949
+ Object.assign({ type: locale.IgcDockManagerPaneType.contentPane, contentId: 'content_not_used_1', header: 'NOT USED' }, this.commonProps),
5950
+ ],
5951
+ },
5952
+ ],
5953
+ },
5954
+ floatingPanes: [],
5955
+ };
5956
+ // UseFizedSize with DCH
5957
+ this.layout6 = {
5958
+ rootPane: {
5959
+ type: locale.IgcDockManagerPaneType.splitPane,
5960
+ orientation: locale.IgcSplitPaneOrientation.vertical,
5961
+ useFixedSize: true,
5962
+ panes: [
5963
+ {
5964
+ type: locale.IgcDockManagerPaneType.splitPane,
5965
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5966
+ useFixedSize: true,
5370
5967
  size: 300,
5371
- allowEmpty: true,
5372
5968
  panes: [
5373
5969
  {
5374
5970
  type: locale.IgcDockManagerPaneType.contentPane,
5375
- header: '1',
5376
- contentId: 'content1'
5971
+ contentId: "content1",
5972
+ header: "Content Pane 1",
5973
+ size: 300
5377
5974
  },
5378
5975
  {
5379
5976
  type: locale.IgcDockManagerPaneType.contentPane,
5380
- header: '2',
5381
- contentId: 'content2'
5977
+ contentId: "content2",
5978
+ header: "Content Pane 2",
5979
+ size: 700
5980
+ },
5981
+ ]
5982
+ },
5983
+ {
5984
+ type: locale.IgcDockManagerPaneType.splitPane,
5985
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5986
+ useFixedSize: true,
5987
+ size: 500,
5988
+ panes: [
5989
+ {
5990
+ type: locale.IgcDockManagerPaneType.documentHost,
5991
+ size: 508,
5992
+ rootPane: {
5993
+ type: locale.IgcDockManagerPaneType.splitPane,
5994
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
5995
+ useFixedSize: true,
5996
+ allowEmpty: true,
5997
+ panes: [
5998
+ {
5999
+ type: locale.IgcDockManagerPaneType.tabGroupPane,
6000
+ size: 300,
6001
+ panes: [
6002
+ {
6003
+ type: locale.IgcDockManagerPaneType.contentPane,
6004
+ header: 'MainWindow.xaml',
6005
+ contentId: 'content7',
6006
+ documentOnly: true,
6007
+ // allowMaximize: false,
6008
+ },
6009
+ {
6010
+ type: locale.IgcDockManagerPaneType.contentPane,
6011
+ header: 'MainWindow.xaml.cs',
6012
+ contentId: 'content9',
6013
+ documentOnly: true,
6014
+ allowFloating: false
6015
+ }
6016
+ ]
6017
+ },
6018
+ {
6019
+ type: locale.IgcDockManagerPaneType.contentPane,
6020
+ header: 'App.xaml',
6021
+ contentId: 'content8',
6022
+ allowMaximize: true,
6023
+ acceptsInnerDock: false,
6024
+ size: 200
6025
+ }
6026
+ ]
6027
+ }
6028
+ },
6029
+ {
6030
+ type: locale.IgcDockManagerPaneType.contentPane,
6031
+ contentId: "content3",
6032
+ header: "Content Pane 3",
6033
+ size: 400
6034
+ },
6035
+ {
6036
+ type: locale.IgcDockManagerPaneType.contentPane,
6037
+ contentId: "content4",
6038
+ header: "Content Pane 4",
6039
+ size: 400
6040
+ }
6041
+ ]
6042
+ },
6043
+ {
6044
+ type: locale.IgcDockManagerPaneType.splitPane,
6045
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
6046
+ // useFixedSize: true,
6047
+ size: 300,
6048
+ panes: [
6049
+ {
6050
+ type: locale.IgcDockManagerPaneType.contentPane,
6051
+ contentId: "content5",
6052
+ header: "Content Pane 5",
6053
+ size: 500
5382
6054
  },
5383
6055
  {
5384
6056
  type: locale.IgcDockManagerPaneType.contentPane,
5385
- header: '3',
5386
- contentId: 'content3'
6057
+ contentId: "content6",
6058
+ header: "Content Pane 6",
6059
+ size: 800
5387
6060
  }
5388
6061
  ]
5389
6062
  }
5390
6063
  ]
5391
- }
6064
+ },
6065
+ floatingPanes: [],
6066
+ };
6067
+ // The layout used in 'useFixedSize' unit tests
6068
+ this.layout7 = {
6069
+ rootPane: {
6070
+ type: locale.IgcDockManagerPaneType.splitPane,
6071
+ orientation: locale.IgcSplitPaneOrientation.vertical,
6072
+ // useFixedSize: true,
6073
+ panes: [
6074
+ {
6075
+ type: locale.IgcDockManagerPaneType.splitPane,
6076
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
6077
+ useFixedSize: true,
6078
+ panes: [
6079
+ {
6080
+ type: locale.IgcDockManagerPaneType.contentPane,
6081
+ contentId: "content1",
6082
+ header: "Content Pane 1",
6083
+ size: 400
6084
+ },
6085
+ {
6086
+ type: locale.IgcDockManagerPaneType.contentPane,
6087
+ contentId: "content2",
6088
+ header: "Content Pane 2",
6089
+ size: 600
6090
+ },
6091
+ ]
6092
+ },
6093
+ {
6094
+ type: locale.IgcDockManagerPaneType.splitPane,
6095
+ orientation: locale.IgcSplitPaneOrientation.horizontal,
6096
+ panes: [
6097
+ {
6098
+ type: locale.IgcDockManagerPaneType.tabGroupPane,
6099
+ size: 400,
6100
+ panes: [
6101
+ {
6102
+ type: locale.IgcDockManagerPaneType.contentPane,
6103
+ contentId: "content3",
6104
+ header: "Content Pane 3"
6105
+ },
6106
+ {
6107
+ type: locale.IgcDockManagerPaneType.contentPane,
6108
+ contentId: "content4",
6109
+ header: "Content Pane 4",
6110
+ }
6111
+ ]
6112
+ },
6113
+ {
6114
+ type: locale.IgcDockManagerPaneType.contentPane,
6115
+ contentId: "content5",
6116
+ header: "Content Pane 5",
6117
+ size: 600
6118
+ }
6119
+ ]
6120
+ },
6121
+ {
6122
+ type: locale.IgcDockManagerPaneType.contentPane,
6123
+ contentId: "content6",
6124
+ header: "Content Pane 6"
6125
+ }
6126
+ ]
6127
+ },
6128
+ floatingPanes: [{
6129
+ type: locale.IgcDockManagerPaneType.splitPane,
6130
+ orientation: locale.IgcSplitPaneOrientation.vertical,
6131
+ floatingHeight: 200,
6132
+ floatingWidth: 300,
6133
+ panes: [{
6134
+ type: locale.IgcDockManagerPaneType.contentPane,
6135
+ contentId: "content7",
6136
+ header: "Content Pane 7"
6137
+ }]
6138
+ }]
5392
6139
  };
5393
- this.layout = this.layout3;
6140
+ this.layout = this.layout6;
5394
6141
  this.logEnabled = false;
5395
- this.id = 100;
5396
- this.foundElem = [];
5397
6142
  this.hiddenPanes = [];
5398
6143
  }
5399
- saveLayout() {
6144
+ // private hideOnCloseCheckbox: HTMLInputElement;
6145
+ /*
6146
+ private hiddenPanesSelect: HTMLSelectElement;
6147
+ private savedLayout: string;
6148
+
6149
+ private saveLayout() {
5400
6150
  this.savedLayout = JSON.stringify(this.dockManager.layout);
5401
6151
  }
5402
- loadLayout() {
6152
+
6153
+ private loadLayout() {
5403
6154
  this.dockManager.layout = JSON.parse(this.savedLayout);
5404
6155
  }
5405
- setActivePane() {
6156
+
6157
+ private setActivePane() {
5406
6158
  // this.dockManager.activePane = this.teamExplorerPane;
5407
6159
  this.dockManager.activePane = this.unpinnedToolboxPane;
5408
6160
  }
5409
- addPane() {
6161
+
6162
+ private id = 100;
6163
+ private newId: string;
6164
+
6165
+ private addPane() {
5410
6166
  this.newId = `content${this.id++}`;
5411
6167
  const newDiv = this.createElement(this.newId, 'input');
5412
6168
  this.dockManager.appendChild(newDiv);
6169
+
5413
6170
  this.layout.floatingPanes[1].panes.push({
5414
- type: locale.IgcDockManagerPaneType.contentPane,
6171
+ type: IgcDockManagerPaneType.contentPane,
5415
6172
  header: 'NewPane',
5416
6173
  contentId: this.newId
5417
6174
  });
5418
- this.dockManager.layout = Object.assign({}, this.layout);
6175
+
6176
+ this.dockManager.layout = { ...this.layout };
5419
6177
  }
5420
- addTab() {
5421
- this.findElement(this.layout.rootPane, locale.IgcDockManagerPaneType.tabGroupPane);
6178
+
6179
+ private addTab() {
6180
+ this.findElement(this.layout.rootPane, IgcDockManagerPaneType.tabGroupPane);
6181
+
5422
6182
  this.newId = `content${this.id++}`;
5423
6183
  const newDiv = this.createElement(this.newId, 'button');
5424
6184
  this.dockManager.appendChild(newDiv);
5425
- const tabGroupPane = this.foundElem[0];
6185
+
6186
+ const tabGroupPane = this.foundElem[0] as IgcTabGroupPane;
5426
6187
  tabGroupPane.panes.push({
5427
- type: locale.IgcDockManagerPaneType.contentPane,
6188
+ type: IgcDockManagerPaneType.contentPane,
5428
6189
  header: 'NewTab',
5429
6190
  contentId: this.newId
5430
6191
  });
5431
- this.dockManager.layout = Object.assign({}, this.layout);
6192
+
6193
+ this.dockManager.layout = { ...this.layout };
5432
6194
  }
5433
- disableContentPane() {
5434
- this.findElement(this.layout.rootPane, locale.IgcDockManagerPaneType.tabGroupPane);
5435
- const tabGroupPane = this.foundElem[0];
6195
+
6196
+ private disableContentPane() {
6197
+ this.findElement(this.layout.rootPane, IgcDockManagerPaneType.tabGroupPane);
6198
+
6199
+ const tabGroupPane = this.foundElem[0] as IgcTabGroupPane;
5436
6200
  tabGroupPane.panes[0].disabled = true;
5437
- this.dockManager.layout = Object.assign({}, this.layout);
6201
+ this.dockManager.layout = { ...this.layout };
5438
6202
  }
5439
- toggleProximityDock() {
6203
+
6204
+ private toggleProximityDock() {
5440
6205
  this.dockManager.proximityDock = !this.dockManager.proximityDock;
5441
6206
  }
5442
- focusPane() {
6207
+
6208
+ private focusPane() {
5443
6209
  this.dockManager.focusPane('content12');
5444
6210
  }
5445
- findElement(pane, type) {
5446
- if (!pane) {
5447
- return;
5448
- }
6211
+
6212
+ private foundElem: IgcDockManagerPane[] = [];
6213
+ private findElement(pane: IgcDockManagerPane, type: IgcDockManagerPaneType) {
6214
+ if (!pane) { return; }
6215
+
5449
6216
  if (pane.type === type) {
5450
6217
  this.foundElem.push(pane);
5451
6218
  }
5452
- if (pane.type === locale.IgcDockManagerPaneType.tabGroupPane || pane.type === locale.IgcDockManagerPaneType.splitPane) {
6219
+
6220
+ if (pane.type === IgcDockManagerPaneType.tabGroupPane || pane.type === IgcDockManagerPaneType.splitPane) {
5453
6221
  for (const c of pane.panes) {
5454
6222
  this.findElement(c, type);
5455
6223
  }
5456
6224
  }
5457
- if (pane.type === locale.IgcDockManagerPaneType.documentHost) {
6225
+
6226
+ if (pane.type === IgcDockManagerPaneType.documentHost) {
5458
6227
  this.findElement(pane.rootPane, type);
5459
6228
  }
5460
6229
  }
5461
- showPane() {
6230
+
6231
+ private showPane() {
5462
6232
  const index = this.hiddenPanesSelect.selectedIndex;
6233
+
5463
6234
  if (index >= 0) {
5464
6235
  this.hiddenPanes[index].hidden = false;
5465
6236
  this.hiddenPanes.splice(index, 1);
5466
6237
  this.hiddenPanes = [...this.hiddenPanes];
5467
- this.dockManager.layout = Object.assign({}, this.dockManager.layout);
6238
+ this.dockManager.layout = { ...this.dockManager.layout };
5468
6239
  }
5469
6240
  }
5470
- showAllPanes() {
6241
+
6242
+ private showAllPanes() {
5471
6243
  if (this.hiddenPanes.length > 0) {
5472
6244
  for (const pane of this.hiddenPanes) {
5473
6245
  pane.hidden = false;
5474
6246
  }
5475
6247
  this.hiddenPanes = [];
5476
- this.dockManager.layout = Object.assign({}, this.dockManager.layout);
6248
+ this.dockManager.layout = { ...this.dockManager.layout };
5477
6249
  }
5478
6250
  }
5479
- toggleInBoundaries() {
6251
+
6252
+ private toggleInBoundaries() {
5480
6253
  this.dockManager.containedInBoundaries = !this.dockManager.containedInBoundaries;
5481
6254
  }
5482
- createElement(content, typeOfElement) {
6255
+
6256
+ // private toggleUseFixedSize() {
6257
+ // this.dockManager.useFixedSize = !this.dockManager.useFixedSize;
6258
+ // }
6259
+
6260
+ private createElement(content: string, typeOfElement: string): HTMLElement {
5483
6261
  const someContent = document.createTextNode(content);
5484
- let elem;
6262
+ let elem: HTMLElement;
5485
6263
  switch (typeOfElement) {
5486
6264
  case ('button'):
5487
6265
  elem = document.createElement('button');
@@ -5491,22 +6269,25 @@ const SampleComponent = class {
5491
6269
  elem = document.createElement('input');
5492
6270
  break;
5493
6271
  }
6272
+
5494
6273
  const divContent = document.createElement('div');
5495
6274
  divContent.appendChild(elem ? elem : someContent);
5496
6275
  divContent.setAttribute('slot', content);
5497
6276
  divContent.setAttribute('style', 'width: 100%; height: 100%;');
6277
+
5498
6278
  return divContent;
5499
6279
  }
6280
+ */
5500
6281
  handlePaneClose(event) {
5501
6282
  this.log(event);
5502
- if (this.hideOnCloseCheckbox.checked) {
5503
- for (const pane of event.detail.panes) {
5504
- pane.hidden = true;
5505
- this.hiddenPanes.splice(0, 0, pane);
5506
- this.hiddenPanes = [...this.hiddenPanes];
5507
- }
5508
- event.preventDefault();
5509
- }
6283
+ // if (this.hideOnCloseCheckbox.checked) {
6284
+ // for (const pane of event.detail.panes) {
6285
+ // pane.hidden = true;
6286
+ // this.hiddenPanes.splice(0, 0, pane);
6287
+ // this.hiddenPanes = [...this.hiddenPanes];
6288
+ // }
6289
+ // event.preventDefault();
6290
+ // }
5510
6291
  // const panes = event.detail.panes;
5511
6292
  // const confirmed = confirm(`Are you sure you want to close panes '${panes.map(p => p.header).join(', ')}'?`);
5512
6293
  // // event.detail.panes = [panes[0]];
@@ -5588,13 +6369,11 @@ const SampleComponent = class {
5588
6369
  }
5589
6370
  }
5590
6371
  render() {
5591
- return (index.h(index.Host, null, index.h("div", null, index.h("button", { onClick: () => console.log(JSON.stringify(this.dockManager.layout, null, 2)) }, "LOG LAYOUT"), index.h("button", { onClick: () => this.saveLayout() }, "Save Layout"), index.h("button", { onClick: () => this.loadLayout() }, "Load Layout"), index.h("button", { onClick: () => this.setActivePane() }, "Set Active Pane"), index.h("button", { onClick: () => this.addPane() }, "Add Floating Pane"), index.h("button", { onClick: () => this.addTab() }, "Add Tab Pane"), index.h("button", { onClick: () => this.disableContentPane() }, "Disable Tab Pane"), index.h("button", { onClick: () => this.focusPane() }, "Focus Pane"), index.h("button", { onClick: () => this.toggleProximityDock() }, "Toggle Proximity Dock"), index.h("input", { id: "hideOnClose", type: "checkbox", style: { marginLeft: '20px' }, ref: el => this.hideOnCloseCheckbox = el }), index.h("label", { htmlFor: "hideOnClose" }, "Hide on close"), index.h("span", { style: { marginLeft: '20px' } }, "Hidden Panes:"), index.h("select", { style: { width: '150px' }, ref: el => this.hiddenPanesSelect = el }, this.hiddenPanes.map(p => {
5592
- return (index.h("option", { value: p.id }, p.header));
5593
- })), index.h("button", { onClick: () => this.showPane() }, "Show Pane"), index.h("button", { onClick: () => this.showAllPanes() }, "Show All Panes"), index.h("button", { onClick: () => this.toggleInBoundaries() }, "Toggle In Boundaries")), index.h("igc-dockmanager", { layout: this.layout, onPaneClose: this.handlePaneClose.bind(this), onPaneScroll: this.handlePaneScroll.bind(this), onPanePinnedToggle: this.handlePinnedToggle.bind(this), onActivePaneChanged: this.handleActivePaneChanged.bind(this), onPaneDragStart: this.handleDragStart.bind(this), onPaneDragOver: this.handleDragOver.bind(this), onPaneDragEnd: this.handleDragEnd.bind(this), onSplitterResizeStart: this.handleSplitterResizeStart.bind(this), onSplitterResizeEnd: this.handleSplitterResizeEnd.bind(this), onFloatingPaneResizeStart: this.handleFloatingPaneResizeStart.bind(this), onFloatingPaneResizeMove: this.handleFloatingPaneResizeMove.bind(this), onFloatingPaneResizeEnd: this.handleFloatingPaneResizeEnd.bind(this), onLayoutChange: this.handleLayoutChange.bind(this),
6372
+ return (index.h(index.Host, null, index.h("igc-dockmanager", { layout: this.layout, onPaneClose: this.handlePaneClose.bind(this), onPaneScroll: this.handlePaneScroll.bind(this), onPanePinnedToggle: this.handlePinnedToggle.bind(this), onActivePaneChanged: this.handleActivePaneChanged.bind(this), onPaneDragStart: this.handleDragStart.bind(this), onPaneDragOver: this.handleDragOver.bind(this), onPaneDragEnd: this.handleDragEnd.bind(this), onSplitterResizeStart: this.handleSplitterResizeStart.bind(this), onSplitterResizeEnd: this.handleSplitterResizeEnd.bind(this), onFloatingPaneResizeStart: this.handleFloatingPaneResizeStart.bind(this), onFloatingPaneResizeMove: this.handleFloatingPaneResizeMove.bind(this), onFloatingPaneResizeEnd: this.handleFloatingPaneResizeEnd.bind(this), onLayoutChange: this.handleLayoutChange.bind(this),
5594
6373
  // resourceStrings={this.getCustomResourceStrings()}
5595
6374
  ref: el => this.dockManager = el,
5596
6375
  // allowFloatingPanesResize={false}
5597
- showHeaderIconOnHover: 'closeOnly' }, index.h("div", { slot: "header1" }, index.h("span", { style: { color: 'red' } }, "Solution Explorer"), index.h("button", null, "H")), index.h("div", { slot: "tabHeader1" }, index.h("span", { style: { color: 'orange' } }, "Solution Explorer"), index.h("button", null, "T")), index.h("div", { slot: "unpinnedHeader1" }, index.h("span", { style: { color: 'blue' } }, "Solution Explorer"), index.h("button", null, "U")), index.h("button", { style: { background: 'pink' }, slot: "tabHeaderCloseButton" }, "Y"), index.h("div", { slot: "content1", style: { width: '100%', height: '100%' } }, "Content 1"), index.h("div", { slot: "content2", style: { width: '100%', height: '100%' } }, index.h("button", null, "Tests")), index.h("div", { slot: "content3", style: { width: '100%', height: '100%' } }, "Content 3"), index.h("div", { slot: "content4" }, "Content 4"), index.h("div", { slot: "content5", style: { width: '100%', height: '100%' } }, "Content 5"), index.h("div", { slot: "content6", style: { width: '100%', height: '100%' } }, "Content 6"), index.h("div", { slot: "content7", style: { width: '100%', height: '100%' } }, "Content 7"), index.h("div", { slot: "content8" }, "Content 8"), index.h("div", { slot: "content9", style: { width: '100%', height: '100%' } }, "Content 9"), index.h("div", { slot: "content10", style: { width: '100%', height: '100%' } }, index.h("button", null, "Test")), index.h("div", { slot: "content11", style: { width: '100%', height: '100%' } }, index.h("input", null)), index.h("div", { slot: "content12", style: { width: '100%', height: '100%' } }, index.h("p", null, "Content 12 "), index.h("p", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ")), index.h("div", { slot: "content13", style: { width: '100%', height: '100%' } }, "Content 13"), index.h("div", { slot: "content14", style: { width: '100%', height: '100%' } }, "Content 14"), index.h("div", { slot: "toolboxHeader" }, index.h("span", null, "[U] Toolbox")), index.h("div", { slot: "teamExplorerHeader" }, index.h("span", null, "[U] Team Explorer")))));
6376
+ showHeaderIconOnHover: 'closeOnly' }, index.h("div", { slot: "header1" }, index.h("span", { style: { color: 'red' } }, "Solution Explorer"), index.h("button", null, "H")), index.h("div", { slot: "tabHeader1" }, index.h("span", { style: { color: 'orange' } }, "Solution Explorer"), index.h("button", null, "T")), index.h("div", { slot: "unpinnedHeader1" }, index.h("span", { style: { color: 'blue' } }, "Solution Explorer"), index.h("button", null, "U")), index.h("div", { slot: "toolboxHeader" }, index.h("span", null, "[U] Toolbox")), index.h("div", { slot: "teamExplorerHeader" }, index.h("span", null, "[U] Team Explorer")), index.h("button", { style: { background: 'pink' }, slot: "tabHeaderCloseButton" }, "Y"), index.h("div", { slot: "content1" }, "Content 1"), index.h("div", { slot: "content2" }, "Content 2"), index.h("div", { slot: "content3" }, "Content 3"), index.h("div", { slot: "content4" }, "Content 4"), index.h("div", { slot: "content5" }, "Content 5"), index.h("div", { slot: "content6" }, "Content 6"), index.h("div", { slot: "content7" }, "Content 7"), index.h("div", { slot: "content8" }, "Content 8"), index.h("div", { slot: "content9" }, "Content 9"), index.h("div", { slot: "content_not_used_1" }), index.h("div", { slot: "content_not_used_2" }), index.h("div", { slot: "content_not_used_3" }), index.h("div", { slot: "content_not_used_4" }))));
5598
6377
  }
5599
6378
  };
5600
6379
  SampleComponent.style = sampleComponentCss;