igniteui-dockmanager 1.14.1 → 1.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,215 @@
1
+ # Ignite UI Dock Manager Change Log
2
+
3
+ All notable changes for each version of this project will be documented in this file.
4
+
5
+ ## 1.13.0
6
+
7
+ ### New features
8
+ - Add `focusPane` method [#58](https://github.com/IgniteUI/igniteui-dockmanager/issues/58), [#59](https://github.com/IgniteUI/igniteui-dockmanager/issues/59)
9
+ - Add `allowInnerDock` and `acceptsInnerDock` properties [#67](https://github.com/IgniteUI/igniteui-dockmanager/issues/67)
10
+
11
+ ### Enhancements
12
+ - Save pane maximized state in layout [#60](https://github.com/IgniteUI/igniteui-dockmanager/issues/60)
13
+
14
+ ### Bug fixes
15
+ - Tab selection order is not preserved [#31](https://github.com/IgniteUI/igniteui-dockmanager/issues/31)
16
+
17
+ ## 1.12.5
18
+
19
+ ### New features
20
+ - Add `paneScroll` event [#51](https://github.com/IgniteUI/igniteui-dockmanager/issues/51)
21
+
22
+ ### Bug fixes
23
+ - ТabGroupPane: Pinning one of several unpinned panes results in all the panes getting pinned [#62](https://github.com/IgniteUI/igniteui-dockmanager/issues/62)
24
+ - Context menu not positioning correctly in RTL mode
25
+ - Active pane is not retained when docking with keyboard
26
+
27
+ ## 1.12.4
28
+
29
+ ### Bug fixes
30
+ - Active pane incorrectly set when more than one Tab Group Pane is within a Floating Pane [#61](https://github.com/IgniteUI/igniteui-dockmanager/issues/61)
31
+
32
+ ## 1.12.3
33
+
34
+ ### Bug fixes
35
+ - Error is thrown when dropping pane in a separate window
36
+
37
+ ## 1.12.2
38
+
39
+ ### Bug fixes
40
+ - Docking indicator left/right arrows positions are reversed in RTL mode [#54](https://github.com/IgniteUI/igniteui-dockmanager/issues/54)
41
+ - Context menu not positioning correctly
42
+ - Missing overloads for `addEventListener` and `removeEventListener`
43
+
44
+ ### Enhancements
45
+ - Add `tabs-more-menu-content` and `tabs-more-menu-item` CSS parts
46
+
47
+ ## 1.12.1
48
+
49
+ ### Enhancements
50
+ - Include pane information in `splitterResizeStart` and `splitterResizeEnd` events
51
+ - `IgcDockManagerComponent` is now exported as class
52
+
53
+ ### Bug fixes
54
+ - Contents in slots with `unpinnedHeaderId` are not updated correctly [#53](https://github.com/IgniteUI/igniteui-dockmanager/issues/53)
55
+
56
+ ## 1.12.0
57
+
58
+ ### Bug fixes
59
+ - Docking not working with allowFloating: false [#40](https://github.com/IgniteUI/igniteui-dockmanager/issues/40)
60
+ - Flyout pane closing while active [#41](https://github.com/IgniteUI/igniteui-dockmanager/issues/41)
61
+ - Focusable elements does not receive focus [#42](https://github.com/IgniteUI/igniteui-dockmanager/issues/42)
62
+ - Navigating with pane navigator does not bring selected floating window on top [#48](https://github.com/IgniteUI/igniteui-dockmanager/issues/48)
63
+ - Event `splitterResizeStart` can't be cancelled
64
+ - Tabs context menu not positioning correctly
65
+
66
+ ## 1.11.3
67
+
68
+ ### New features
69
+ - Add `contextMenuPosition` property
70
+ - Add `selected` option for `tab-header-close-button` CSS part
71
+
72
+ ## 1.11.2
73
+
74
+ ### New features
75
+ - Add `hovered` option for `tab-header-close-button` CSS part
76
+
77
+ ## 1.11.1
78
+
79
+ ### Bug fixes
80
+ - CSS part fixes for `tab-header`
81
+
82
+ ## 1.11.0
83
+
84
+ ### New features
85
+ - Add options for `showHeaderIconOnHover` property for different buttons
86
+ - Add `horizontal` and `vertical` options for `splitter-handle` CSS part
87
+ - Add `header-title` CSS part
88
+ - Add `hover` option for `tab-header-close-button` CSS part in active/inactive states
89
+ - Add `paneHeaderCloseButton` and `tabHeaderCloseButton` slots
90
+
91
+ ## 1.10.0
92
+
93
+ ### New features
94
+ - Add `showHeaderIconOnHover` property
95
+
96
+ ### Bug fixes
97
+ - Active pane is not retained on float/dock
98
+ - Splitter styles are not applied [#36](https://github.com/IgniteUI/igniteui-dockmanager/issues/36)
99
+ - `click` event on customized header buttons is not working [#37](https://github.com/IgniteUI/igniteui-dockmanager/issues/37)
100
+ - Removed erroneous dock indicators while dragging over splitter
101
+
102
+ ## 1.9.0
103
+
104
+ ### Bug fixes
105
+ - Styles not applied [#33](https://github.com/IgniteUI/igniteui-dockmanager/issues/33)
106
+ - Resize in RTL mode [#24](https://github.com/IgniteUI/igniteui-dockmanager/issues/24)
107
+
108
+ ## 1.8.0
109
+
110
+ ### New features
111
+ - Customize dock manager buttons
112
+ - `layoutChange` event which fires when the layout updates [#17](https://github.com/IgniteUI/igniteui-dockmanager/issues/17)
113
+
114
+ ## 1.7.0
115
+
116
+ ### New features
117
+ - Customizable floating pane header
118
+ - `disabled` property per pane [#23](https://github.com/IgniteUI/igniteui-dockmanager/issues/23)
119
+ - `documentOnly` property which allows content pane to be docked only inside a document host
120
+ - `allowEmpty` property for split and tab group panes which allows displaying empty areas [#18](https://github.com/IgniteUI/igniteui-dockmanager/issues/18)
121
+ - `disableKeyboardNavigation` property on the dock manager [#22](https://github.com/IgniteUI/igniteui-dockmanager/issues/22)
122
+
123
+ ### Bug fixes
124
+ - Docking indicators appear over the currently dragged floating pane
125
+
126
+ ## 1.6.0
127
+
128
+ ### New features
129
+ - Customize dock manager panes and tabs [#3](https://github.com/IgniteUI/igniteui-dockmanager/issues/3)
130
+
131
+ ### Bug fixes
132
+ - A floating pane is draggable outside of the page [#14](https://github.com/IgniteUI/igniteui-dockmanager/issues/14)
133
+
134
+ ## 1.5.0
135
+
136
+ ### New features
137
+ - `allowMaximize` property per pane [#10](https://github.com/IgniteUI/igniteui-dockmanager/issues/10)
138
+
139
+ ### Bug fixes
140
+ - Unpinned pane is closing automatically upon clicking on its content [#11](https://github.com/IgniteUI/igniteui-dockmanager/issues/11)
141
+ - Panes selected from the overflow menu are not activated if there is an unpinned pane from the same tab group
142
+
143
+ ## 1.4.1
144
+
145
+ ### Bug fixes
146
+ - Pane with allowPinning=false placed inside tab group can be unpinned [#9](https://github.com/IgniteUI/igniteui-dockmanager/issues/9)
147
+ - Normalize a maximized pane when navigating away from it via the keyboard
148
+
149
+ ## 1.4.0
150
+
151
+ ### New features
152
+ - Reorder tabs without creating floating pane
153
+ - Keyboard navigation
154
+ - Pane navigator
155
+ - Enable/disable floating pane resizing [#4](https://github.com/IgniteUI/igniteui-dockmanager/issues/4)
156
+ - Events for floating pane resizing
157
+
158
+ ### Bug fixes
159
+ - Select pane when activated
160
+ - Flyout unpinned pane when activated
161
+ - Error thrown when hosting external popup inside pane [#5](https://github.com/IgniteUI/igniteui-dockmanager/issues/5)
162
+ - Tab selection is lost with nested Dock Manager components [#6](https://github.com/IgniteUI/igniteui-dockmanager/issues/6)
163
+ - Floating pane containing panes with disabled floating and docking cannot be moved
164
+ - Exception thrown when docking floating pane inside empty dock manager [#7](https://github.com/IgniteUI/igniteui-dockmanager/issues/7)
165
+
166
+ ## 1.3.0
167
+
168
+ ### New features
169
+ - More tabs menu appears when there is not enough space to display all tab headers
170
+ - Hide pane without removing it from the layout using its `hidden` property [#1](https://github.com/IgniteUI/igniteui-dockmanager/issues/1)
171
+ - Header slot properties for tab and unpinned pane - `tabHeaderId` and `unpinnedHeaderId` [#2](https://github.com/IgniteUI/igniteui-dockmanager/issues/2)
172
+
173
+ ## 1.2.0
174
+
175
+ ### New features
176
+ - Active pane
177
+ - Localization support
178
+
179
+ ### Bug fixes
180
+ - Errors thrown when dragging the last document host tab and there is unpinned pane
181
+ - Tabs content disappears after docking a pane with allowFloating=false
182
+ - Exception thrown when quickly switching between docking indicators
183
+
184
+ ## 1.1.0
185
+
186
+ ### New features
187
+ - Maximizing panes
188
+ - Docking preview shadow
189
+ - ARIA support
190
+ - API for external drag/drop support
191
+ - Properties and events for user interactions such as closing, pinning, dragging
192
+ - Support for `ng update` for Angular projects
193
+
194
+ ## 1.0.3
195
+
196
+ ### Enhancements
197
+ - Resize splitter using the keyboard
198
+
199
+ ## 1.0.2
200
+
201
+ ### Bug fixes
202
+ - Pane goes out of view when resized to its minimum size
203
+
204
+ ## 1.0.1
205
+
206
+ ### Enhancements
207
+ - Add active color css variable
208
+ - Add keyboard support for context menu
209
+
210
+ ### Bug fixes
211
+ - Selection is not working on first click when context menu is opened
212
+ - Single tab is not rendered correctly after pinning/unpinning its sibling
213
+
214
+ ## 1.0.0
215
+ Initial release of Ignite UI Dock Manager
@@ -1244,32 +1244,40 @@ class IgcDockManagerService {
1244
1244
  }
1245
1245
  return true;
1246
1246
  }
1247
- pointInBoundaries(clientX, clientY, oldLocation, pane) {
1248
- let newPointX = oldLocation.x;
1249
- let newPointY = oldLocation.y;
1250
- if (this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x >= this.dockManagerRect.x &&
1251
- this.initialFloatingPaneLocation.x + clientX + pane.floatingWidth - this.initialDragClientPoint.x <= this.dockManagerRect.right) {
1252
- newPointX = this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x;
1247
+ pointInBoundaries(clientX, clientY, location, pane) {
1248
+ const minDragPosition = {
1249
+ x: this.dockManagerRect.x,
1250
+ y: this.dockManagerRect.y
1251
+ };
1252
+ const maxDragPosition = {
1253
+ x: this.dockManagerRect.right - pane.floatingWidth,
1254
+ y: this.dockManagerRect.bottom - pane.floatingHeight
1255
+ };
1256
+ if (this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x <= this.dockManagerRect.x) {
1257
+ location.x = minDragPosition.x;
1258
+ }
1259
+ else if (this.initialFloatingPaneLocation.x + clientX + pane.floatingWidth - this.initialDragClientPoint.x >= this.dockManagerRect.right) {
1260
+ location.x = maxDragPosition.x;
1261
+ }
1262
+ if (this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y <= this.dockManagerRect.y) {
1263
+ location.y = minDragPosition.y;
1253
1264
  }
1254
- if (this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y >= this.dockManagerRect.y &&
1255
- this.initialFloatingPaneLocation.y + clientY + pane.floatingHeight - this.initialDragClientPoint.y <= this.dockManagerRect.bottom) {
1256
- newPointY = this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y;
1265
+ else if (this.initialFloatingPaneLocation.y + clientY + pane.floatingHeight - this.initialDragClientPoint.y >= this.dockManagerRect.bottom) {
1266
+ location.y = maxDragPosition.y;
1257
1267
  }
1258
- return { x: newPointX, y: newPointY };
1268
+ return location;
1259
1269
  }
1260
1270
  dragPaneMove(clientX, clientY) {
1261
1271
  const draggedPane = this.dockManager.draggedPane;
1262
1272
  if (draggedPane.type === locale.IgcDockManagerPaneType.splitPane) {
1263
1273
  const oldLocation = draggedPane.floatingLocation ? draggedPane.floatingLocation : { x: 0, y: 0 };
1264
1274
  let newLocation;
1265
- if (!this.dockManager.containedInBoundaries) {
1266
- newLocation = {
1267
- x: this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x,
1268
- y: this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y,
1269
- };
1270
- }
1271
- else {
1272
- newLocation = this.pointInBoundaries(clientX, clientY, oldLocation, draggedPane);
1275
+ newLocation = {
1276
+ x: this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x,
1277
+ y: this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y,
1278
+ };
1279
+ if (this.dockManager.containedInBoundaries) {
1280
+ newLocation = this.pointInBoundaries(clientX, clientY, newLocation, draggedPane);
1273
1281
  }
1274
1282
  const dragOverEvent = this.dockManager.paneDragOver.emit({
1275
1283
  sourcePane: draggedPane,
@@ -915,32 +915,40 @@ export class IgcDockManagerService {
915
915
  }
916
916
  return true;
917
917
  }
918
- pointInBoundaries(clientX, clientY, oldLocation, pane) {
919
- let newPointX = oldLocation.x;
920
- let newPointY = oldLocation.y;
921
- if (this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x >= this.dockManagerRect.x &&
922
- this.initialFloatingPaneLocation.x + clientX + pane.floatingWidth - this.initialDragClientPoint.x <= this.dockManagerRect.right) {
923
- newPointX = this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x;
918
+ pointInBoundaries(clientX, clientY, location, pane) {
919
+ const minDragPosition = {
920
+ x: this.dockManagerRect.x,
921
+ y: this.dockManagerRect.y
922
+ };
923
+ const maxDragPosition = {
924
+ x: this.dockManagerRect.right - pane.floatingWidth,
925
+ y: this.dockManagerRect.bottom - pane.floatingHeight
926
+ };
927
+ if (this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x <= this.dockManagerRect.x) {
928
+ location.x = minDragPosition.x;
929
+ }
930
+ else if (this.initialFloatingPaneLocation.x + clientX + pane.floatingWidth - this.initialDragClientPoint.x >= this.dockManagerRect.right) {
931
+ location.x = maxDragPosition.x;
932
+ }
933
+ if (this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y <= this.dockManagerRect.y) {
934
+ location.y = minDragPosition.y;
924
935
  }
925
- if (this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y >= this.dockManagerRect.y &&
926
- this.initialFloatingPaneLocation.y + clientY + pane.floatingHeight - this.initialDragClientPoint.y <= this.dockManagerRect.bottom) {
927
- newPointY = this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y;
936
+ else if (this.initialFloatingPaneLocation.y + clientY + pane.floatingHeight - this.initialDragClientPoint.y >= this.dockManagerRect.bottom) {
937
+ location.y = maxDragPosition.y;
928
938
  }
929
- return { x: newPointX, y: newPointY };
939
+ return location;
930
940
  }
931
941
  dragPaneMove(clientX, clientY) {
932
942
  const draggedPane = this.dockManager.draggedPane;
933
943
  if (draggedPane.type === IgcDockManagerPaneType.splitPane) {
934
944
  const oldLocation = draggedPane.floatingLocation ? draggedPane.floatingLocation : { x: 0, y: 0 };
935
945
  let newLocation;
936
- if (!this.dockManager.containedInBoundaries) {
937
- newLocation = {
938
- x: this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x,
939
- y: this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y,
940
- };
941
- }
942
- else {
943
- newLocation = this.pointInBoundaries(clientX, clientY, oldLocation, draggedPane);
946
+ newLocation = {
947
+ x: this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x,
948
+ y: this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y,
949
+ };
950
+ if (this.dockManager.containedInBoundaries) {
951
+ newLocation = this.pointInBoundaries(clientX, clientY, newLocation, draggedPane);
944
952
  }
945
953
  const dragOverEvent = this.dockManager.paneDragOver.emit({
946
954
  sourcePane: draggedPane,
@@ -1240,32 +1240,40 @@ class IgcDockManagerService {
1240
1240
  }
1241
1241
  return true;
1242
1242
  }
1243
- pointInBoundaries(clientX, clientY, oldLocation, pane) {
1244
- let newPointX = oldLocation.x;
1245
- let newPointY = oldLocation.y;
1246
- if (this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x >= this.dockManagerRect.x &&
1247
- this.initialFloatingPaneLocation.x + clientX + pane.floatingWidth - this.initialDragClientPoint.x <= this.dockManagerRect.right) {
1248
- newPointX = this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x;
1243
+ pointInBoundaries(clientX, clientY, location, pane) {
1244
+ const minDragPosition = {
1245
+ x: this.dockManagerRect.x,
1246
+ y: this.dockManagerRect.y
1247
+ };
1248
+ const maxDragPosition = {
1249
+ x: this.dockManagerRect.right - pane.floatingWidth,
1250
+ y: this.dockManagerRect.bottom - pane.floatingHeight
1251
+ };
1252
+ if (this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x <= this.dockManagerRect.x) {
1253
+ location.x = minDragPosition.x;
1254
+ }
1255
+ else if (this.initialFloatingPaneLocation.x + clientX + pane.floatingWidth - this.initialDragClientPoint.x >= this.dockManagerRect.right) {
1256
+ location.x = maxDragPosition.x;
1257
+ }
1258
+ if (this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y <= this.dockManagerRect.y) {
1259
+ location.y = minDragPosition.y;
1249
1260
  }
1250
- if (this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y >= this.dockManagerRect.y &&
1251
- this.initialFloatingPaneLocation.y + clientY + pane.floatingHeight - this.initialDragClientPoint.y <= this.dockManagerRect.bottom) {
1252
- newPointY = this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y;
1261
+ else if (this.initialFloatingPaneLocation.y + clientY + pane.floatingHeight - this.initialDragClientPoint.y >= this.dockManagerRect.bottom) {
1262
+ location.y = maxDragPosition.y;
1253
1263
  }
1254
- return { x: newPointX, y: newPointY };
1264
+ return location;
1255
1265
  }
1256
1266
  dragPaneMove(clientX, clientY) {
1257
1267
  const draggedPane = this.dockManager.draggedPane;
1258
1268
  if (draggedPane.type === IgcDockManagerPaneType.splitPane) {
1259
1269
  const oldLocation = draggedPane.floatingLocation ? draggedPane.floatingLocation : { x: 0, y: 0 };
1260
1270
  let newLocation;
1261
- if (!this.dockManager.containedInBoundaries) {
1262
- newLocation = {
1263
- x: this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x,
1264
- y: this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y,
1265
- };
1266
- }
1267
- else {
1268
- newLocation = this.pointInBoundaries(clientX, clientY, oldLocation, draggedPane);
1271
+ newLocation = {
1272
+ x: this.initialFloatingPaneLocation.x + clientX - this.initialDragClientPoint.x,
1273
+ y: this.initialFloatingPaneLocation.y + clientY - this.initialDragClientPoint.y,
1274
+ };
1275
+ if (this.dockManager.containedInBoundaries) {
1276
+ newLocation = this.pointInBoundaries(clientX, clientY, newLocation, draggedPane);
1269
1277
  }
1270
1278
  const dragOverEvent = this.dockManager.paneDragOver.emit({
1271
1279
  sourcePane: draggedPane,