igniteui-dockmanager 1.17.0-beta.0 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +47 -9
- package/dist/cjs/igc-button-component_21.cjs.entry.js +43 -25
- package/dist/cjs/igc-button-component_21.cjs.entry.js.map +1 -1
- package/dist/cjs/igniteui-dockmanager.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/locale-93b1abd9.js.map +1 -1
- package/dist/collection/components/dockmanager/dockmanager-component.css +12 -12
- package/dist/collection/components/dockmanager/dockmanager-component.js +66 -23
- package/dist/collection/components/dockmanager/dockmanager-component.js.map +1 -1
- package/dist/collection/components/dockmanager/dockmanager.interfaces.js.map +1 -1
- package/dist/collection/components/dockmanager/dockmanager.public-interfaces.js.map +1 -1
- package/dist/collection/components/dockmanager/dockmanager.service.js +3 -1
- package/dist/collection/components/dockmanager/dockmanager.service.js.map +1 -1
- package/dist/collection/components/dockmanager/pane-navigator/pane-navigator-component.js +1 -0
- package/dist/collection/components/dockmanager/pane-navigator/pane-navigator-component.js.map +1 -1
- package/dist/collection/utils/test-utils.js.map +1 -1
- package/dist/esm/igc-button-component_21.entry.js +43 -25
- package/dist/esm/igc-button-component_21.entry.js.map +1 -1
- package/dist/esm/igniteui-dockmanager.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/locale-9d5d3b14.js.map +1 -1
- package/dist/igniteui-dockmanager/igniteui-dockmanager.esm.js +1 -1
- package/dist/igniteui-dockmanager/igniteui-dockmanager.esm.js.map +1 -1
- package/dist/igniteui-dockmanager/p-bb430fa4.entry.js +2 -0
- package/dist/igniteui-dockmanager/p-bb430fa4.entry.js.map +1 -0
- package/dist/igniteui-dockmanager/p-e7fd6176.js.map +1 -1
- package/dist/types/components/dockmanager/dockmanager-component.d.ts +14 -1
- package/dist/types/components/dockmanager/dockmanager.interfaces.d.ts +4 -0
- package/dist/types/components/dockmanager/dockmanager.public-interfaces.d.ts +23 -0
- package/dist/types/components.d.ts +12 -0
- package/dist/types/utils/test-utils.d.ts +4 -0
- package/loader/cdn.js +2 -2
- package/loader/index.cjs.js +2 -2
- package/package.json +1 -1
- package/dist/igniteui-dockmanager/p-a30930a4.entry.js +0 -2
- package/dist/igniteui-dockmanager/p-a30930a4.entry.js.map +0 -1
package/custom-elements.json
CHANGED
|
@@ -525,6 +525,13 @@
|
|
|
525
525
|
"text": "'none' | 'vertical' | 'horizontal' | 'both'"
|
|
526
526
|
}
|
|
527
527
|
},
|
|
528
|
+
{
|
|
529
|
+
"kind": "field",
|
|
530
|
+
"name": "autoScrollConfig",
|
|
531
|
+
"type": {
|
|
532
|
+
"text": "{ edgeThreshold: number, scrollSpeed: number }"
|
|
533
|
+
}
|
|
534
|
+
},
|
|
528
535
|
{
|
|
529
536
|
"kind": "method",
|
|
530
537
|
"name": "focusElement"
|
|
@@ -1460,15 +1467,6 @@
|
|
|
1460
1467
|
},
|
|
1461
1468
|
"privacy": "private"
|
|
1462
1469
|
},
|
|
1463
|
-
{
|
|
1464
|
-
"kind": "field",
|
|
1465
|
-
"name": "autoScrollInterval",
|
|
1466
|
-
"type": {
|
|
1467
|
-
"text": "number"
|
|
1468
|
-
},
|
|
1469
|
-
"privacy": "private",
|
|
1470
|
-
"default": "null"
|
|
1471
|
-
},
|
|
1472
1470
|
{
|
|
1473
1471
|
"kind": "field",
|
|
1474
1472
|
"name": "autoScrollDirection",
|
|
@@ -1515,6 +1513,15 @@
|
|
|
1515
1513
|
"text": "IgcContentPane"
|
|
1516
1514
|
}
|
|
1517
1515
|
},
|
|
1516
|
+
{
|
|
1517
|
+
"kind": "field",
|
|
1518
|
+
"name": "autoScrollInterval",
|
|
1519
|
+
"type": {
|
|
1520
|
+
"text": "number"
|
|
1521
|
+
},
|
|
1522
|
+
"privacy": "private",
|
|
1523
|
+
"default": "null"
|
|
1524
|
+
},
|
|
1518
1525
|
{
|
|
1519
1526
|
"kind": "method",
|
|
1520
1527
|
"name": "flyoutPaneChanged",
|
|
@@ -1761,6 +1768,15 @@
|
|
|
1761
1768
|
},
|
|
1762
1769
|
"default": "null"
|
|
1763
1770
|
},
|
|
1771
|
+
{
|
|
1772
|
+
"kind": "field",
|
|
1773
|
+
"name": "autoScrollConfig",
|
|
1774
|
+
"type": {
|
|
1775
|
+
"text": "{ edgeThreshold: number, scrollSpeed: number }"
|
|
1776
|
+
},
|
|
1777
|
+
"default": "{ edgeThreshold: 20, scrollSpeed: 25 }",
|
|
1778
|
+
"description": "Configuration for edge auto-scrolling behavior during drag operations.\r\n\r\n- `edgeThreshold`: Distance in pixels from the container's edge that triggers scrolling.\r\n- `scrollSpeed`: Number of pixels to scroll per interval (affects scroll rate)."
|
|
1779
|
+
},
|
|
1764
1780
|
{
|
|
1765
1781
|
"kind": "method",
|
|
1766
1782
|
"name": "activePaneChange",
|
|
@@ -3309,6 +3325,10 @@
|
|
|
3309
3325
|
"type": {
|
|
3310
3326
|
"text": "IgcContentPane"
|
|
3311
3327
|
}
|
|
3328
|
+
},
|
|
3329
|
+
{
|
|
3330
|
+
"name": "auto-scroll-config",
|
|
3331
|
+
"fieldName": "autoScrollConfig"
|
|
3312
3332
|
}
|
|
3313
3333
|
],
|
|
3314
3334
|
"tagName": "igc-dockmanager",
|
|
@@ -3689,6 +3709,24 @@
|
|
|
3689
3709
|
},
|
|
3690
3710
|
"description": "Determines whether the end user can dock the dragged pane directly in the parent split pane by dragging it over a splitter.\r\nIf enabled, a docking indicator will be shown over the splitter's drag handler. Defaults to false."
|
|
3691
3711
|
},
|
|
3712
|
+
{
|
|
3713
|
+
"kind": "field",
|
|
3714
|
+
"name": "allowRootDock",
|
|
3715
|
+
"type": {
|
|
3716
|
+
"text": "boolean"
|
|
3717
|
+
},
|
|
3718
|
+
"description": "Determines whether docking into the root-level pane is allowed.\r\n\r\nWhen set to true (default), panes can be docked directly into the root container. \r\nThis is done by creating a new root pane and repositioning the existing root pane as a sibling to the newly docked content pane.",
|
|
3719
|
+
"default": "true"
|
|
3720
|
+
},
|
|
3721
|
+
{
|
|
3722
|
+
"kind": "field",
|
|
3723
|
+
"name": "autoScrollConfig",
|
|
3724
|
+
"type": {
|
|
3725
|
+
"text": "{ edgeThreshold: number, scrollSpeed: number }"
|
|
3726
|
+
},
|
|
3727
|
+
"description": "Configuration for edge auto-scrolling behavior during drag operations.\r\n\r\n- `edgeThreshold`: Distance in pixels from the container's edge that triggers scrolling.\r\n- `scrollSpeed`: Number of pixels to scroll per interval (affects scroll rate).",
|
|
3728
|
+
"default": "{ edgeThreshold: 10, scrollSpeed: 25 }"
|
|
3729
|
+
},
|
|
3692
3730
|
{
|
|
3693
3731
|
"kind": "method",
|
|
3694
3732
|
"name": "dropPane",
|
|
@@ -764,7 +764,9 @@ class IgcDockManagerService {
|
|
|
764
764
|
else if (parent.useFixedSize === true && (((_b = this.draggedPaneParent) === null || _b === void 0 ? void 0 : _b.useFixedSize) !== true || ((_c = this.draggedPaneParent) === null || _c === void 0 ? void 0 : _c.orientation) !== parent.orientation)) {
|
|
765
765
|
const floatingPane = this.dockManager.draggedPane;
|
|
766
766
|
const floatingPaneSizeInPixels = parent.orientation === locale.IgcSplitPaneOrientation.vertical ? floatingPane === null || floatingPane === void 0 ? void 0 : floatingPane.floatingHeight : floatingPane === null || floatingPane === void 0 ? void 0 : floatingPane.floatingWidth;
|
|
767
|
-
|
|
767
|
+
if (floatingPaneSizeInPixels) {
|
|
768
|
+
this.dockManager.draggedPane.size = floatingPaneSizeInPixels;
|
|
769
|
+
}
|
|
768
770
|
}
|
|
769
771
|
parent.panes.splice(index + 1, 0, this.dockManager.draggedPane);
|
|
770
772
|
}
|
|
@@ -2167,7 +2169,7 @@ class IgcDockManagerKeyboardService {
|
|
|
2167
2169
|
}
|
|
2168
2170
|
}
|
|
2169
2171
|
|
|
2170
|
-
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)}";
|
|
2172
|
+
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, var(--sb-size, 12px));width:var(--igc-sb-size, var(--sb-size, 12px))}::-webkit-scrollbar-track{background:var(--igc-sb-track-bg-color, var(--sb-track-bg-color, #e5e7e9))}::-webkit-scrollbar-track:hover,::-webkit-scrollbar-track:active{background:var(--igc-sb-track-bg-color-hover, var(--sb-track-bg-color-hover, #e5e7e9))}::-webkit-scrollbar-corner{background:var(--igc-sb-corner-bg, var(--sb-corner-bg, #e5e7e9));border:var(--igc-sb-corner-border-size, var(--sb-corner-border-size, 0)) solid var(--igc-sb-corner-border-color, var(--sb-corner-border-color, transparent))}::-webkit-scrollbar-track-piece{border:var(--igc-sb-track-border-size, var(--sb-track-border-size, 0)) solid var(--igc-sb-track-border-color, var(--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, var(--sb-thumb-min-height, 32px));border-radius:var(--igc-sb-thumb-border-radius, var(--sb-thumb-border-radius, 0));border:var(--igc-sb-thumb-border-size, var(--sb-thumb-border-size, 0)) solid var(--igc-sb-thumb-border-color, var(--sb-thumb-border-color, transparent));background-clip:content-box;background-color:var(--igc-sb-thumb-bg-color, var(--sb-thumb-bg-color, #d1d1d1))}::-webkit-scrollbar-thumb:hover{background-color:var(--igc-sb-thumb-bg-color-hover, var(--sb-thumb-bg-color-hover, #afafaf))}";
|
|
2171
2173
|
|
|
2172
2174
|
var ActionReason;
|
|
2173
2175
|
(function (ActionReason) {
|
|
@@ -2211,7 +2213,6 @@ const IgcDockManager = class {
|
|
|
2211
2213
|
this.proximityDockThreshold = 50;
|
|
2212
2214
|
this.proximityOuterDockThreshold = 25;
|
|
2213
2215
|
this.anyPaneIgnoringResizeConstraints = false;
|
|
2214
|
-
this.autoScrollInterval = null;
|
|
2215
2216
|
this.autoScrollDirection = { x: 0, y: 0 };
|
|
2216
2217
|
this.templatableComponents = [
|
|
2217
2218
|
{
|
|
@@ -2351,6 +2352,7 @@ const IgcDockManager = class {
|
|
|
2351
2352
|
};
|
|
2352
2353
|
this.dropTargetPaneInfo = undefined;
|
|
2353
2354
|
this.flyoutPane = undefined;
|
|
2355
|
+
this.autoScrollInterval = null;
|
|
2354
2356
|
this.floatingPaneZIndicesMap = new Map();
|
|
2355
2357
|
this.contextMenuMeta = undefined;
|
|
2356
2358
|
this.dropShadowRect = undefined;
|
|
@@ -2379,6 +2381,10 @@ const IgcDockManager = class {
|
|
|
2379
2381
|
this.draggedPane = undefined;
|
|
2380
2382
|
this.dropPosition = undefined;
|
|
2381
2383
|
this.activePane = null;
|
|
2384
|
+
this.autoScrollConfig = {
|
|
2385
|
+
edgeThreshold: 20,
|
|
2386
|
+
scrollSpeed: 25
|
|
2387
|
+
};
|
|
2382
2388
|
}
|
|
2383
2389
|
flyoutPaneChanged(newValue) {
|
|
2384
2390
|
if (newValue) {
|
|
@@ -2963,7 +2969,8 @@ const IgcDockManager = class {
|
|
|
2963
2969
|
this.paneDragMoved(event.detail.clientX, event.detail.clientY, event);
|
|
2964
2970
|
}
|
|
2965
2971
|
paneDragMoved(clientX, clientY, event) {
|
|
2966
|
-
|
|
2972
|
+
var _a;
|
|
2973
|
+
((_a = this.layout) === null || _a === void 0 ? void 0 : _a.rootPane.useFixedSize) && this.handleAutoScroll(clientX, clientY);
|
|
2967
2974
|
this.handleDropPositionChange(clientX, clientY, event === null || event === void 0 ? void 0 : event.target);
|
|
2968
2975
|
const x = event === null || event === void 0 ? void 0 : event.detail.clientX;
|
|
2969
2976
|
const y = event === null || event === void 0 ? void 0 : event.detail.clientY;
|
|
@@ -2994,46 +3001,47 @@ const IgcDockManager = class {
|
|
|
2994
3001
|
}
|
|
2995
3002
|
}
|
|
2996
3003
|
handleAutoScroll(clientX, clientY) {
|
|
2997
|
-
const SCROLL_ZONE =
|
|
2998
|
-
const SCROLL_SPEED =
|
|
3004
|
+
const SCROLL_ZONE = this.autoScrollConfig.edgeThreshold; // px from edge to start scrolling
|
|
3005
|
+
const SCROLL_SPEED = this.autoScrollConfig.scrollSpeed; // px per interval
|
|
2999
3006
|
const rootSplitPane = this.dockedPanesContainer.children[0];
|
|
3000
3007
|
if (!rootSplitPane)
|
|
3001
3008
|
return;
|
|
3002
3009
|
const rect = rootSplitPane.getBoundingClientRect();
|
|
3003
|
-
let
|
|
3010
|
+
let newX = 0, newY = 0; // Use newX, newY to distinguish from this.autoScrollDirection
|
|
3004
3011
|
if (clientX - rect.left < SCROLL_ZONE) {
|
|
3005
|
-
|
|
3012
|
+
newX = -SCROLL_SPEED;
|
|
3006
3013
|
}
|
|
3007
3014
|
else if (rect.right - clientX < SCROLL_ZONE) {
|
|
3008
|
-
|
|
3015
|
+
newX = SCROLL_SPEED;
|
|
3009
3016
|
}
|
|
3010
3017
|
if (clientY - rect.top < SCROLL_ZONE) {
|
|
3011
|
-
|
|
3018
|
+
newY = -SCROLL_SPEED;
|
|
3012
3019
|
}
|
|
3013
3020
|
else if (rect.bottom - clientY < SCROLL_ZONE) {
|
|
3014
|
-
|
|
3015
|
-
}
|
|
3016
|
-
//
|
|
3017
|
-
|
|
3018
|
-
|
|
3021
|
+
newY = SCROLL_SPEED;
|
|
3022
|
+
}
|
|
3023
|
+
// Condition to start or change scrolling direction
|
|
3024
|
+
// Start/Change if:
|
|
3025
|
+
// 1. The calculated new direction is different from the current active direction, OR
|
|
3026
|
+
// 2. We've just entered a scroll zone (newX/newY is not 0) AND there's no active interval.
|
|
3027
|
+
if ((newX !== this.autoScrollDirection.x || newY !== this.autoScrollDirection.y) ||
|
|
3028
|
+
((newX !== 0 || newY !== 0) && !this.autoScrollInterval)) {
|
|
3029
|
+
this.autoScrollDirection = { x: newX, y: newY }; // Update the stored direction
|
|
3030
|
+
// Always clear the existing interval if there is one, before setting a new one
|
|
3019
3031
|
if (this.autoScrollInterval) {
|
|
3020
3032
|
clearInterval(this.autoScrollInterval);
|
|
3021
3033
|
this.autoScrollInterval = null;
|
|
3022
3034
|
}
|
|
3023
|
-
|
|
3035
|
+
// If we are currently in a scroll zone (newX or newY is not 0), start a new interval
|
|
3036
|
+
if (newX !== 0 || newY !== 0) {
|
|
3024
3037
|
this.autoScrollInterval = window.setInterval(() => {
|
|
3025
|
-
if (x !== 0)
|
|
3026
|
-
rootSplitPane.scrollLeft += x;
|
|
3027
|
-
if (y !== 0)
|
|
3028
|
-
rootSplitPane.scrollTop += y;
|
|
3038
|
+
if (this.autoScrollDirection.x !== 0)
|
|
3039
|
+
rootSplitPane.scrollLeft += this.autoScrollDirection.x;
|
|
3040
|
+
if (this.autoScrollDirection.y !== 0)
|
|
3041
|
+
rootSplitPane.scrollTop += this.autoScrollDirection.y;
|
|
3029
3042
|
}, 30);
|
|
3030
3043
|
}
|
|
3031
3044
|
}
|
|
3032
|
-
// Stop scrolling if not near any edge
|
|
3033
|
-
if (x === 0 && y === 0 && this.autoScrollInterval) {
|
|
3034
|
-
clearInterval(this.autoScrollInterval);
|
|
3035
|
-
this.autoScrollInterval = null;
|
|
3036
|
-
}
|
|
3037
3045
|
}
|
|
3038
3046
|
getInnerDropTargetParentRect() {
|
|
3039
3047
|
if (this.dropTargetPaneInfo && this.service.proximityDockPosition) {
|
|
@@ -3361,6 +3369,15 @@ const IgcDockManager = class {
|
|
|
3361
3369
|
this.dropTargetPaneInfo = null;
|
|
3362
3370
|
}
|
|
3363
3371
|
}
|
|
3372
|
+
else if (this.dropTargetPaneInfo && this.dropTargetPaneInfo.pane === dropPane) {
|
|
3373
|
+
// If the drop target pane is the same as the previous one, update the targetRect and visibleTargetRect
|
|
3374
|
+
const paneRect = paneElement.getBoundingClientRect();
|
|
3375
|
+
this.paneVisibleRect = new DOMRect(paneRect.x, paneRect.y, paneRect.width, paneRect.height);
|
|
3376
|
+
this.paneVisibleRect = this.reduceRectBasedOnSplitters(this.paneVisibleRect, paneElement);
|
|
3377
|
+
this.paneVisibleRect = this.reduceRectBasedOnDockManagerBorders(this.paneVisibleRect);
|
|
3378
|
+
this.dropTargetPaneInfo.targetRect = paneRect;
|
|
3379
|
+
this.dropTargetPaneInfo.visibleTargetRect = this.paneVisibleRect;
|
|
3380
|
+
}
|
|
3364
3381
|
}
|
|
3365
3382
|
else {
|
|
3366
3383
|
this.dropTargetPaneInfo = null;
|
|
@@ -4675,6 +4692,7 @@ const IgcPaneNavigatorComponent = class {
|
|
|
4675
4692
|
this.navigateToIndex(newValue, 'previous');
|
|
4676
4693
|
}
|
|
4677
4694
|
connectedCallback() {
|
|
4695
|
+
this.activePanes = this.activePanes.filter(pane => !(pane.contentId === 'placeholder' && pane.size === 0));
|
|
4678
4696
|
this.allItems = [...this.activePanes, ...this.activeDocuments];
|
|
4679
4697
|
}
|
|
4680
4698
|
componentDidLoad() {
|