@syncfusion/ej2-layouts 20.4.40 → 20.4.48
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 +12 -0
- package/README.md +1 -1
- package/dist/ej2-layouts.min.js +2 -2
- package/dist/ej2-layouts.umd.min.js +2 -2
- package/dist/ej2-layouts.umd.min.js.map +1 -1
- package/dist/es6/ej2-layouts.es2015.js +361 -291
- package/dist/es6/ej2-layouts.es2015.js.map +1 -1
- package/dist/es6/ej2-layouts.es5.js +380 -302
- package/dist/es6/ej2-layouts.es5.js.map +1 -1
- package/dist/global/ej2-layouts.min.js +2 -2
- package/dist/global/ej2-layouts.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +6 -6
- package/src/dashboard-layout/dashboard-layout.d.ts +1 -0
- package/src/dashboard-layout/dashboard-layout.js +173 -127
- package/src/splitter/splitter.d.ts +5 -2
- package/src/splitter/splitter.js +207 -175
@@ -1106,17 +1106,20 @@ let Splitter = class Splitter extends Component {
|
|
1106
1106
|
}
|
1107
1107
|
e.target.classList.add(SPLIT_BAR_HOVER);
|
1108
1108
|
}
|
1109
|
+
this.splitterDetails(e);
|
1109
1110
|
const icon = e.target;
|
1110
|
-
if (icon.classList.contains(ARROW_LEFT) || icon.classList.contains(
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1111
|
+
if (icon.classList.contains(ARROW_LEFT) || icon.classList.contains(ARROW_RIGHT) ||
|
1112
|
+
icon.classList.contains(ARROW_DOWN) || icon.classList.contains(ARROW_UP)) {
|
1113
|
+
if (!this.nextPane.classList.contains(PANE_HIDDEN) && !this.previousPane.classList.contains(PANE_HIDDEN)) {
|
1114
|
+
this.collapseAction(e);
|
1115
|
+
}
|
1116
|
+
else {
|
1117
|
+
this.expandAction(e);
|
1118
|
+
}
|
1119
|
+
this.updateSplitterSize();
|
1115
1120
|
}
|
1116
|
-
this.updateSplitterSize();
|
1117
1121
|
}
|
1118
1122
|
expandAction(e) {
|
1119
|
-
this.splitterDetails(e);
|
1120
1123
|
const eventArgs = this.beforeAction(e);
|
1121
1124
|
if (this.expandFlag) {
|
1122
1125
|
this.trigger('beforeExpand', eventArgs, (beforeExpandArgs) => {
|
@@ -1131,6 +1134,10 @@ let Splitter = class Splitter extends Component {
|
|
1131
1134
|
this.expandPane(e);
|
1132
1135
|
}
|
1133
1136
|
}
|
1137
|
+
getIcon(e) {
|
1138
|
+
const targetClass = e.target.className.split(' ').filter((className) => className !== NAVIGATE_ARROW && className !== HIDE_ICON);
|
1139
|
+
return targetClass[0];
|
1140
|
+
}
|
1134
1141
|
expandPane(e) {
|
1135
1142
|
this.removeStaticPanes();
|
1136
1143
|
const collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;
|
@@ -1139,46 +1146,41 @@ let Splitter = class Splitter extends Component {
|
|
1139
1146
|
!this.nextPane.classList.contains(EXPAND_PANE) && this.nextPane.nextElementSibling.classList.contains(PANE) &&
|
1140
1147
|
!this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) && !(collapseCount === this.allPanes.length - 2));
|
1141
1148
|
const collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
+
const icon = this.getIcon(e);
|
1150
|
+
const isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;
|
1151
|
+
const collapsePane = isLeftOrUp ? this.nextPane : this.previousPane;
|
1152
|
+
const expandPane = isLeftOrUp ? this.previousPane : this.nextPane;
|
1153
|
+
const expandPaneIndex = isLeftOrUp ? this.nextPaneIndex : this.prevPaneIndex;
|
1154
|
+
removeClass([collapsePane], collapseClass);
|
1155
|
+
collapsePane.setAttribute('aria-hidden', 'false');
|
1156
|
+
// cCount is calculated after removing the COLLAPSE_PANE
|
1157
|
+
const cCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;
|
1158
|
+
if (cCount > 0) {
|
1159
|
+
if (!expandPane.classList.contains(COLLAPSE_PANE)) {
|
1160
|
+
addClass([expandPane], EXPAND_PANE);
|
1161
|
+
expandPane.setAttribute('aria-expanded', 'true');
|
1162
|
+
}
|
1163
|
+
}
|
1164
|
+
else if (cCount === 0) {
|
1165
|
+
for (let i = 0; i < this.allPanes.length; i++) {
|
1166
|
+
if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {
|
1167
|
+
removeClass([this.allPanes[i]], EXPAND_PANE);
|
1168
|
+
this.allPanes[i].setAttribute('aria-expanded', 'false');
|
1169
|
+
}
|
1149
1170
|
}
|
1150
1171
|
}
|
1151
|
-
|
1152
|
-
|
1153
|
-
removeClass([this.nextPane], EXPAND_PANE);
|
1154
|
-
if (this.expandFlag) {
|
1155
|
-
this.updatePaneSettings(this.prevPaneIndex, false);
|
1156
|
-
}
|
1172
|
+
if (this.expandFlag) {
|
1173
|
+
this.updatePaneSettings(expandPaneIndex, false);
|
1157
1174
|
}
|
1158
|
-
this.updateIconsOnExpand(e);
|
1159
|
-
this.
|
1160
|
-
this.nextPane.setAttribute('aria-expanded', 'false');
|
1161
|
-
this.updateFlexGrow(this.checkStaticPanes());
|
1175
|
+
this.updateIconsOnExpand(e, icon);
|
1176
|
+
this.updateFlexGrow();
|
1162
1177
|
if (flexStatus) {
|
1163
1178
|
this.previousPane.classList.remove(EXPAND_PANE);
|
1179
|
+
this.previousPane.setAttribute('aria-expanded', 'false');
|
1164
1180
|
this.previousPane.style.flexGrow = '';
|
1165
1181
|
}
|
1166
1182
|
}
|
1167
|
-
|
1168
|
-
let staticPane = true;
|
1169
|
-
for (let i = 0; i < this.allPanes.length; i++) {
|
1170
|
-
if (!this.allPanes[i].classList.contains(COLLAPSE_PANE) && staticPane) {
|
1171
|
-
if (this.allPanes[i].classList.contains(STATIC_PANE)) {
|
1172
|
-
staticPane = true;
|
1173
|
-
}
|
1174
|
-
else {
|
1175
|
-
staticPane = false;
|
1176
|
-
}
|
1177
|
-
}
|
1178
|
-
}
|
1179
|
-
return staticPane;
|
1180
|
-
}
|
1181
|
-
updateFlexGrow(status) {
|
1183
|
+
updateFlexGrow() {
|
1182
1184
|
let collapseCount = 0;
|
1183
1185
|
for (let j = 0; j < this.element.children.length; j++) {
|
1184
1186
|
if (this.element.children[j].classList.contains(COLLAPSE_PANE)) {
|
@@ -1189,9 +1191,6 @@ let Splitter = class Splitter extends Component {
|
|
1189
1191
|
const panes = this.allPanes;
|
1190
1192
|
for (let i = 0; i < panes.length; i++) {
|
1191
1193
|
panes[i].style.flexGrow = '';
|
1192
|
-
if (status && !this.nextPane.classList.contains(COLLAPSE_PANE)) {
|
1193
|
-
this.nextPane.style.flexGrow = '1';
|
1194
|
-
}
|
1195
1194
|
if (visiblePane && this.allPanes[i].classList.contains(COLLAPSE_PANE) && this.paneSettings[i].size &&
|
1196
1195
|
i !== this.allPanes.length - 1) {
|
1197
1196
|
panes[i].style.flexGrow = '';
|
@@ -1210,75 +1209,65 @@ let Splitter = class Splitter extends Component {
|
|
1210
1209
|
showTargetBarIcon(targetBar, targetArrow) {
|
1211
1210
|
removeClass([select('.' + targetArrow, targetBar)], HIDE_ICON);
|
1212
1211
|
}
|
1213
|
-
updateIconsOnCollapse(e) {
|
1212
|
+
updateIconsOnCollapse(e, targetIcon) {
|
1214
1213
|
this.splitterProperty();
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1218
|
-
|
1219
|
-
|
1220
|
-
this.
|
1221
|
-
|
1222
|
-
|
1223
|
-
|
1224
|
-
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1214
|
+
const removeIcon = this.arrow;
|
1215
|
+
const otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;
|
1216
|
+
const otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ? this.currentBarIndex - 1
|
1217
|
+
: this.currentBarIndex + 1;
|
1218
|
+
if (!e.target.classList.contains(HIDE_ICON)) {
|
1219
|
+
if (this.splitInstance.prevPaneCollapsed || this.splitInstance.nextPaneCollapsed) {
|
1220
|
+
if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {
|
1221
|
+
this.resizableModel(this.currentBarIndex, false);
|
1222
|
+
this.hideTargetBarIcon(this.currentSeparator, targetIcon);
|
1223
|
+
if (!isNullOrUndefined(otherBar)) {
|
1224
|
+
const otherPrevPaneIndex = otherBarIndex;
|
1225
|
+
const otherNextPaneIndex = otherBarIndex + 1;
|
1226
|
+
const collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);
|
1227
|
+
if (this.paneSettings[otherPrevPaneIndex].collapsible &&
|
1228
|
+
this.paneSettings[otherNextPaneIndex].collapsible) {
|
1229
|
+
if (collapsecount === 1) {
|
1230
|
+
this.hideTargetBarIcon(otherBar, removeIcon);
|
1231
|
+
this.resizableModel(otherBarIndex, false);
|
1232
|
+
}
|
1233
|
+
else if (collapsecount === 2) {
|
1234
|
+
this.hideBarIcons(otherBar);
|
1235
|
+
this.resizableModel(otherBarIndex, false);
|
1236
|
+
}
|
1237
|
+
if (!this.paneSettings[otherPrevPaneIndex].collapsible ||
|
1238
|
+
!this.paneSettings[otherNextPaneIndex].collapsible) {
|
1239
|
+
this.hideTargetBarIcon(otherBar, targetIcon);
|
1240
|
+
}
|
1241
|
+
}
|
1242
|
+
}
|
1228
1243
|
}
|
1229
|
-
else
|
1230
|
-
this.
|
1244
|
+
else {
|
1245
|
+
this.showTargetBarIcon(this.currentSeparator, removeIcon);
|
1246
|
+
this.hideTargetBarIcon(this.currentSeparator, targetIcon);
|
1247
|
+
this.resizableModel(this.currentBarIndex, false);
|
1231
1248
|
}
|
1232
1249
|
}
|
1233
|
-
if (!isNullOrUndefined(this.prevBar)) {
|
1234
|
-
this.resizableModel(this.currentBarIndex - 1, false);
|
1235
|
-
this.hideTargetBarIcon(this.prevBar, this.arrow);
|
1236
|
-
}
|
1237
|
-
if (!this.paneSettings[this.prevPaneIndex].collapsible) {
|
1238
|
-
this.hideTargetBarIcon(this.currentSeparator, this.rightArrow);
|
1239
|
-
}
|
1240
1250
|
}
|
1241
|
-
else
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
if (!this.splitInstance.nextPaneNextEle.classList.contains(COLLAPSE_PANE) &&
|
1246
|
-
this.paneSettings[this.currentBarIndex + 1].resizable) {
|
1247
|
-
this.resizableModel(this.currentBarIndex + 1, true);
|
1248
|
-
}
|
1249
|
-
if (!this.paneSettings[this.currentBarIndex].collapsible) {
|
1250
|
-
addClass([e.target], HIDE_ICON);
|
1251
|
-
}
|
1252
|
-
if (this.previousPane && this.prevPaneIndex === 0 && (this.paneSettings[this.prevPaneIndex].collapsible)) {
|
1253
|
-
this.showTargetBarIcon(this.currentSeparator, this.leftArrow);
|
1254
|
-
}
|
1255
|
-
if (this.nextPane && this.nextPaneIndex === this.allPanes.length - 1 && (this.paneSettings[this.nextPaneIndex].collapsible)) {
|
1256
|
-
this.showTargetBarIcon(this.getPrevBar(this.nextPaneIndex), this.rightArrow);
|
1257
|
-
}
|
1258
|
-
if (!(this.previousPane.classList.contains(COLLAPSE_PANE)) && this.paneSettings[this.nextPaneIndex].collapsible) {
|
1259
|
-
this.showTargetBarIcon(this.currentSeparator, this.rightArrow);
|
1251
|
+
else {
|
1252
|
+
this.resizableModel(this.currentBarIndex, false);
|
1253
|
+
if (!isNullOrUndefined(otherBar)) {
|
1254
|
+
this.resizableModel(otherBarIndex, false);
|
1260
1255
|
}
|
1261
|
-
if (!
|
1262
|
-
if (
|
1263
|
-
this.
|
1264
|
-
(!this.nextPane.nextElementSibling.classList.contains(COLLAPSE_PANE) &&
|
1265
|
-
this.paneSettings[this.nextPaneIndex].collapsible)) {
|
1266
|
-
this.showTargetBarIcon(this.nextBar, this.leftArrow);
|
1267
|
-
}
|
1268
|
-
else if (!this.paneSettings[this.splitInstance.nextPaneIndex + 1].collapsible &&
|
1269
|
-
this.paneSettings[this.currentBarIndex]) {
|
1270
|
-
this.hideTargetBarIcon(this.nextBar, this.arrow);
|
1256
|
+
if (!this.paneSettings[this.prevPaneIndex].collapsible || !this.paneSettings[this.nextPaneIndex].collapsible) {
|
1257
|
+
if (!isNullOrUndefined(otherBar)) {
|
1258
|
+
this.hideTargetBarIcon(otherBar, targetIcon);
|
1271
1259
|
}
|
1260
|
+
this.hideTargetBarIcon(this.currentSeparator, removeIcon);
|
1272
1261
|
}
|
1273
|
-
|
1274
|
-
!
|
1275
|
-
|
1276
|
-
|
1262
|
+
else {
|
1263
|
+
if (!isNullOrUndefined(otherBar)) {
|
1264
|
+
this.hideTargetBarIcon(otherBar, removeIcon);
|
1265
|
+
}
|
1266
|
+
this.showTargetBarIcon(this.currentSeparator, removeIcon);
|
1277
1267
|
}
|
1278
1268
|
}
|
1279
1269
|
}
|
1280
1270
|
collapseAction(e) {
|
1281
|
-
this.splitterDetails(e);
|
1282
1271
|
const eventArgs = this.beforeAction(e);
|
1283
1272
|
if (this.collapseFlag) {
|
1284
1273
|
this.collapsePane(e);
|
@@ -1304,26 +1293,43 @@ let Splitter = class Splitter extends Component {
|
|
1304
1293
|
!(collapseCount === this.allPanes.length - 2)) || (this.nextPane.classList.contains(COLLAPSE_PANE) &&
|
1305
1294
|
!this.previousPane.classList.contains(STATIC_PANE) && this.nextPane.classList.contains(STATIC_PANE));
|
1306
1295
|
const collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1296
|
+
const icon = this.getIcon(e);
|
1297
|
+
const isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;
|
1298
|
+
const collapsePane = isLeftOrUp ? this.previousPane : this.nextPane;
|
1299
|
+
const expandPane = isLeftOrUp ? this.nextPane : this.previousPane;
|
1300
|
+
const collapsePaneIndex = isLeftOrUp ? this.prevPaneIndex : this.nextPaneIndex;
|
1301
|
+
removeClass([collapsePane], EXPAND_PANE);
|
1302
|
+
collapsePane.setAttribute('aria-expanded', 'false');
|
1303
|
+
addClass([collapsePane], collapseClass);
|
1304
|
+
collapsePane.setAttribute('aria-hidden', 'true');
|
1305
|
+
const isFlexPane = collapsePane.style.flexBasis === '';
|
1306
|
+
if (isFlexPane) {
|
1307
|
+
addClass([expandPane], EXPAND_PANE);
|
1308
|
+
expandPane.setAttribute('aria-expanded', 'true');
|
1313
1309
|
}
|
1314
1310
|
else {
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1311
|
+
let isFlexPaneHidden = true;
|
1312
|
+
for (let i = 0; i < this.allPanes.length; i++) {
|
1313
|
+
if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {
|
1314
|
+
if (this.allPanes[i].style.flexBasis === '' && !this.allPanes[i].classList.contains(COLLAPSE_PANE)
|
1315
|
+
&& !this.allPanes[i].classList.contains(EXPAND_PANE)) {
|
1316
|
+
addClass([this.allPanes[i]], EXPAND_PANE);
|
1317
|
+
this.allPanes[i].setAttribute('aria-expanded', 'true');
|
1318
|
+
isFlexPaneHidden = false;
|
1319
|
+
break;
|
1320
|
+
}
|
1321
|
+
}
|
1322
|
+
}
|
1323
|
+
if (isFlexPaneHidden) {
|
1324
|
+
addClass([expandPane], EXPAND_PANE);
|
1325
|
+
expandPane.setAttribute('aria-expanded', 'true');
|
1326
|
+
}
|
1327
|
+
}
|
1328
|
+
if (!this.collapseFlag) {
|
1329
|
+
this.updatePaneSettings(collapsePaneIndex, true);
|
1330
|
+
}
|
1331
|
+
this.updateIconsOnCollapse(e, icon);
|
1332
|
+
this.updateFlexGrow();
|
1327
1333
|
if (flexStatus) {
|
1328
1334
|
this.nextPane.classList.remove(EXPAND_PANE);
|
1329
1335
|
this.nextPane.style.flexGrow = '';
|
@@ -1367,71 +1373,95 @@ let Splitter = class Splitter extends Component {
|
|
1367
1373
|
prevPanePreEle: this.previousPane.previousElementSibling
|
1368
1374
|
};
|
1369
1375
|
}
|
1370
|
-
|
1376
|
+
showCurrentBarIcons() {
|
1371
1377
|
removeClass([select('.' + this.arrow, this.currentSeparator)], HIDE_ICON);
|
1372
1378
|
}
|
1373
|
-
|
1379
|
+
hideBarIcons(bar) {
|
1380
|
+
addClass([select('.' + this.arrow, bar)], HIDE_ICON);
|
1381
|
+
}
|
1382
|
+
getCollapseCount(prevPaneIndex, nextPaneIndex) {
|
1383
|
+
let collapsecount = 0;
|
1384
|
+
if (this.allPanes[prevPaneIndex].classList.contains(COLLAPSE_PANE)) {
|
1385
|
+
collapsecount = collapsecount + 1;
|
1386
|
+
}
|
1387
|
+
if (this.allPanes[nextPaneIndex].classList.contains(COLLAPSE_PANE)) {
|
1388
|
+
collapsecount = collapsecount + 1;
|
1389
|
+
}
|
1390
|
+
return collapsecount;
|
1391
|
+
}
|
1392
|
+
checkResizableProp(prevPaneIndex, nextPaneIndex) {
|
1393
|
+
if (this.paneSettings[prevPaneIndex].resizable && this.paneSettings[nextPaneIndex].resizable) {
|
1394
|
+
return true;
|
1395
|
+
}
|
1396
|
+
else {
|
1397
|
+
return false;
|
1398
|
+
}
|
1399
|
+
}
|
1400
|
+
updateIconsOnExpand(e, targetIcon) {
|
1374
1401
|
this.splitterProperty();
|
1375
|
-
|
1376
|
-
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1402
|
+
const showIcon = this.arrow;
|
1403
|
+
const otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;
|
1404
|
+
const otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ?
|
1405
|
+
this.currentBarIndex - 1 : this.currentBarIndex + 1;
|
1406
|
+
if (!e.target.classList.contains(HIDE_ICON)) {
|
1407
|
+
// prevPane ! collapsed && nextPane ! collapsed
|
1408
|
+
if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {
|
1409
|
+
if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {
|
1410
|
+
this.showCurrentBarIcons();
|
1411
|
+
if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {
|
1412
|
+
this.resizableModel(this.currentBarIndex, true);
|
1413
|
+
}
|
1414
|
+
else {
|
1415
|
+
this.resizableModel(this.currentBarIndex, false);
|
1416
|
+
}
|
1417
|
+
if (!isNullOrUndefined(otherBar)) {
|
1418
|
+
const otherPrevPaneIndex = otherBarIndex;
|
1419
|
+
const otherNextPaneIndex = otherBarIndex + 1;
|
1420
|
+
const collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);
|
1421
|
+
if (this.paneSettings[otherPrevPaneIndex].collapsible &&
|
1422
|
+
this.paneSettings[otherNextPaneIndex].collapsible) {
|
1423
|
+
if (collapsecount === 0) {
|
1424
|
+
this.showTargetBarIcon(otherBar, targetIcon);
|
1425
|
+
this.showTargetBarIcon(otherBar, showIcon);
|
1426
|
+
if (this.checkResizableProp(otherPrevPaneIndex, otherNextPaneIndex)) {
|
1427
|
+
this.resizableModel(otherBarIndex, true);
|
1428
|
+
}
|
1429
|
+
}
|
1430
|
+
else if (collapsecount === 1) {
|
1431
|
+
this.hideBarIcons(otherBar);
|
1432
|
+
// If condition Edge case in flexible cases
|
1433
|
+
if (this.allPanes[otherPrevPaneIndex].classList.contains(EXPAND_PANE) ||
|
1434
|
+
this.allPanes[otherNextPaneIndex].classList.contains(EXPAND_PANE)) {
|
1435
|
+
this.showTargetBarIcon(otherBar, showIcon);
|
1436
|
+
}
|
1437
|
+
else {
|
1438
|
+
// Common case
|
1439
|
+
this.showTargetBarIcon(otherBar, targetIcon);
|
1440
|
+
}
|
1441
|
+
this.resizableModel(otherBarIndex, false);
|
1442
|
+
}
|
1443
|
+
}
|
1399
1444
|
}
|
1400
1445
|
}
|
1401
|
-
else
|
1402
|
-
|
1403
|
-
this.
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1412
|
-
if (!this.paneSettings[this.currentBarIndex + 1].collapsible) {
|
1413
|
-
this.hideTargetBarIcon(this.currentSeparator, this.rightArrow);
|
1446
|
+
else {
|
1447
|
+
this.hideTargetBarIcon(this.currentSeparator, targetIcon);
|
1448
|
+
this.showTargetBarIcon(this.currentSeparator, showIcon);
|
1449
|
+
if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {
|
1450
|
+
if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {
|
1451
|
+
this.resizableModel(this.currentBarIndex, true);
|
1452
|
+
}
|
1453
|
+
}
|
1454
|
+
else {
|
1455
|
+
this.resizableModel(this.currentBarIndex, false);
|
1456
|
+
}
|
1414
1457
|
}
|
1415
1458
|
}
|
1416
1459
|
}
|
1417
|
-
else
|
1418
|
-
this.
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
}
|
1423
|
-
if (!isNullOrUndefined(this.nextBar)) {
|
1424
|
-
this.hideTargetBarIcon(this.nextBar, this.arrow);
|
1425
|
-
}
|
1426
|
-
if (this.nextPane && this.nextPaneIndex === this.allPanes.length - 1 && (!this.paneSettings[this.nextPaneIndex].collapsible &&
|
1427
|
-
this.splitInstance.nextPaneCollapsed)) {
|
1428
|
-
this.hideTargetBarIcon(this.currentSeparator, this.arrow);
|
1429
|
-
}
|
1430
|
-
if (!(this.nextPaneIndex === this.allPanes.length - 1) && this.nextPane.nextElementSibling &&
|
1431
|
-
this.nextPane.classList.contains(COLLAPSE_PANE) &&
|
1432
|
-
!this.nextPane.nextElementSibling.classList.contains(COLLAPSE_PANE)
|
1433
|
-
&& this.paneSettings[this.nextPaneIndex].collapsible) {
|
1434
|
-
this.showTargetBarIcon(this.nextBar, this.rightArrow);
|
1460
|
+
else {
|
1461
|
+
if (!this.paneSettings[this.prevPaneIndex].collapsible && !this.paneSettings[this.nextPaneIndex].collapsible) {
|
1462
|
+
if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {
|
1463
|
+
this.resizableModel(this.currentBarIndex, true);
|
1464
|
+
}
|
1435
1465
|
}
|
1436
1466
|
}
|
1437
1467
|
}
|
@@ -1751,7 +1781,7 @@ let Splitter = class Splitter extends Component {
|
|
1751
1781
|
}
|
1752
1782
|
const allFlexiblePanes = flexPaneCount === this.allPanes.length;
|
1753
1783
|
// Two flexible Pane Case.
|
1754
|
-
if (this.previousPane.style.flexBasis === '' && this.nextPane.style.flexBasis
|
1784
|
+
if (this.previousPane.style.flexBasis === '' && this.nextPane.style.flexBasis === '' && !allFlexiblePanes) {
|
1755
1785
|
const middlePaneIndex = this.allPanes.length % this.allBars.length;
|
1756
1786
|
if (this.prevPaneIndex === middlePaneIndex) {
|
1757
1787
|
this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;
|
@@ -2404,6 +2434,7 @@ let DashboardLayout = class DashboardLayout extends Component {
|
|
2404
2434
|
// to maintain sizeY in mobile device
|
2405
2435
|
this.panelsSizeY = 0;
|
2406
2436
|
this.resizeHeight = false;
|
2437
|
+
this.eventVar = false;
|
2407
2438
|
setValue('mergePersistData', this.mergePersistPanelData, this);
|
2408
2439
|
}
|
2409
2440
|
/**
|
@@ -4269,56 +4300,78 @@ let DashboardLayout = class DashboardLayout extends Component {
|
|
4269
4300
|
abort: abortArray,
|
4270
4301
|
dragStart: this.onDraggingStart.bind(this),
|
4271
4302
|
dragStop: (args) => {
|
4272
|
-
|
4273
|
-
if (
|
4274
|
-
|
4275
|
-
this.setHolderPosition(args);
|
4276
|
-
this.setPanelPosition(this.mainElement, model.row, model.col);
|
4277
|
-
this.updatePanelLayout(this.mainElement, model);
|
4278
|
-
}
|
4279
|
-
else {
|
4280
|
-
this.setPanelPosition(this.mainElement, model.row, model.col);
|
4281
|
-
}
|
4282
|
-
this.mainElement = null;
|
4283
|
-
const item = this.getPanelBase(args);
|
4284
|
-
if (this.shadowEle) {
|
4285
|
-
detach(this.shadowEle);
|
4303
|
+
this.trigger('dragStop', args);
|
4304
|
+
if (isNullOrUndefined(args.cancel)) {
|
4305
|
+
args.cancel = false;
|
4286
4306
|
}
|
4287
|
-
|
4288
|
-
|
4289
|
-
|
4290
|
-
|
4291
|
-
|
4292
|
-
|
4293
|
-
|
4294
|
-
|
4295
|
-
|
4296
|
-
|
4297
|
-
|
4298
|
-
this.
|
4299
|
-
|
4300
|
-
this.
|
4307
|
+
if (!(args.cancel)) {
|
4308
|
+
const model = this.getCellInstance(this.mainElement.id);
|
4309
|
+
if (this.allowPushing &&
|
4310
|
+
this.collisions(model.row, model.col, model.sizeX, model.sizeY, this.mainElement).length > 0) {
|
4311
|
+
this.setHolderPosition(args);
|
4312
|
+
this.setPanelPosition(this.mainElement, model.row, model.col);
|
4313
|
+
this.updatePanelLayout(this.mainElement, model);
|
4314
|
+
}
|
4315
|
+
else {
|
4316
|
+
this.setPanelPosition(this.mainElement, model.row, model.col);
|
4317
|
+
}
|
4318
|
+
this.mainElement = null;
|
4319
|
+
const item = this.getPanelBase(args);
|
4320
|
+
if (this.shadowEle) {
|
4321
|
+
detach(this.shadowEle);
|
4322
|
+
}
|
4323
|
+
removeClass([this.element], [preventSelect]);
|
4324
|
+
removeClass([args.element], [dragging]);
|
4325
|
+
this.shadowEle = null;
|
4326
|
+
args.element.classList.remove('e-dragging');
|
4327
|
+
const row = this.getRowColumnDragValues(args)[0];
|
4328
|
+
const col = this.getRowColumnDragValues(args)[1];
|
4329
|
+
const panelModel = this.getCellInstance(args.element.id);
|
4330
|
+
if (this.allowPushing &&
|
4331
|
+
this.collisions(row, col, panelModel.sizeX, panelModel.sizeY, document.getElementById(item.id)).length === 0) {
|
4332
|
+
this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });
|
4333
|
+
this.oldRowCol[args.element.id].row = row;
|
4334
|
+
this.oldRowCol[args.element.id].col = col;
|
4335
|
+
this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);
|
4336
|
+
this.sortedPanel();
|
4337
|
+
}
|
4338
|
+
else {
|
4339
|
+
this.panelPropertyChange(this.getCellInstance(args.element.id), {
|
4340
|
+
row: this.oldRowCol[args.element.id].row,
|
4341
|
+
col: this.oldRowCol[args.element.id].col
|
4342
|
+
});
|
4343
|
+
args.element.setAttribute('data-col', this.getCellInstance(args.element.id).col.toString());
|
4344
|
+
args.element.setAttribute('data-row', this.getCellInstance(args.element.id).row.toString());
|
4345
|
+
this.sortedPanel();
|
4346
|
+
}
|
4347
|
+
const panelInstance = this.getCellInstance(args.element.id);
|
4348
|
+
this.setPanelPosition(args.element, panelInstance.row, panelInstance.col);
|
4349
|
+
this.updatePanels();
|
4350
|
+
this.updateCloneArrayObject();
|
4351
|
+
this.checkForChanges(true);
|
4352
|
+
this.dragStopEventArgs = { event: args.event, element: args.element };
|
4353
|
+
this.trigger('dragStop', args);
|
4354
|
+
this.resizeEvents();
|
4355
|
+
this.rows = this.maxRow(true);
|
4356
|
+
this.setHeightWidth();
|
4357
|
+
this.updateDragArea();
|
4301
4358
|
}
|
4302
4359
|
else {
|
4303
|
-
this.
|
4304
|
-
|
4305
|
-
|
4306
|
-
|
4307
|
-
|
4308
|
-
|
4309
|
-
|
4360
|
+
let currentPanel = this.getCellInstance(this.mainElement.id);
|
4361
|
+
for (i = 0; i < this.panels.length; i++) {
|
4362
|
+
if (this.panels[i].id === currentPanel.id) {
|
4363
|
+
args.element.setAttribute('data-col', this.panelsInitialModel[i].col.toString());
|
4364
|
+
args.element.setAttribute('data-row', this.panelsInitialModel[i].row.toString());
|
4365
|
+
currentPanel.col = this.panelsInitialModel[i].col;
|
4366
|
+
currentPanel.row = this.panelsInitialModel[i].row;
|
4367
|
+
this.setPanelPosition(this.mainElement, this.panelsInitialModel[i].row, this.panelsInitialModel[i].col);
|
4368
|
+
this.updatePanelLayout(this.mainElement, currentPanel);
|
4369
|
+
}
|
4370
|
+
}
|
4371
|
+
if (this.shadowEle) {
|
4372
|
+
detach(this.shadowEle);
|
4373
|
+
}
|
4310
4374
|
}
|
4311
|
-
const panelInstance = this.getCellInstance(args.element.id);
|
4312
|
-
this.setPanelPosition(args.element, panelInstance.row, panelInstance.col);
|
4313
|
-
this.updatePanels();
|
4314
|
-
this.updateCloneArrayObject();
|
4315
|
-
this.checkForChanges(true);
|
4316
|
-
this.dragStopEventArgs = { event: args.event, element: args.element };
|
4317
|
-
this.trigger('dragStop', args);
|
4318
|
-
this.resizeEvents();
|
4319
|
-
this.rows = this.maxRow(true);
|
4320
|
-
this.setHeightWidth();
|
4321
|
-
this.updateDragArea();
|
4322
4375
|
},
|
4323
4376
|
drag: (args) => {
|
4324
4377
|
this.draggedEventArgs = {
|
@@ -4356,28 +4409,38 @@ let DashboardLayout = class DashboardLayout extends Component {
|
|
4356
4409
|
onDraggingStart(args) {
|
4357
4410
|
const dragArgs = args;
|
4358
4411
|
this.trigger('dragStart', dragArgs, (dragArgs) => {
|
4412
|
+
if (isNullOrUndefined(args.cancel)) {
|
4413
|
+
args.cancel = false;
|
4414
|
+
}
|
4359
4415
|
});
|
4360
|
-
this.
|
4361
|
-
|
4362
|
-
|
4363
|
-
|
4364
|
-
|
4365
|
-
|
4366
|
-
|
4367
|
-
|
4368
|
-
|
4369
|
-
|
4370
|
-
|
4371
|
-
|
4372
|
-
|
4373
|
-
|
4374
|
-
|
4375
|
-
|
4376
|
-
|
4377
|
-
|
4378
|
-
|
4379
|
-
|
4380
|
-
|
4416
|
+
this.eventVar = args.cancel;
|
4417
|
+
if (!(args.cancel)) {
|
4418
|
+
this.panelsInitialModel = this.cloneModels(this.panels);
|
4419
|
+
this.mainElement = args.element;
|
4420
|
+
this.cloneObject = JSON.parse(JSON.stringify(this.cloneObject));
|
4421
|
+
const eleRowValue = this.startRow = parseInt(args.element.getAttribute('data-row'), 10);
|
4422
|
+
this.startCol = parseInt(args.element.getAttribute('data-col'), 10);
|
4423
|
+
const eleSizeY = parseInt(args.element.getAttribute('data-sizeY'), 10);
|
4424
|
+
this.updateRowsHeight(eleRowValue, eleSizeY, eleSizeY);
|
4425
|
+
this.updateDragArea();
|
4426
|
+
this.shadowEle = document.createElement('div');
|
4427
|
+
this.shadowEle.classList.add('e-holder');
|
4428
|
+
this.shadowEle.classList.add('e-holder-transition');
|
4429
|
+
setStyleAttribute(this.shadowEle, { 'position': 'absolute' });
|
4430
|
+
addClass([this.element], [preventSelect]);
|
4431
|
+
addClass([args.element], [dragging]);
|
4432
|
+
this.element.appendChild(this.shadowEle);
|
4433
|
+
this.renderReactTemplates();
|
4434
|
+
this.shadowEle = document.querySelector('.e-holder');
|
4435
|
+
this.shadowEle.style.height = (this.getCellInstance(args.element.id).sizeY * this.cellSize[1]) + 'px';
|
4436
|
+
this.shadowEle.style.width = (this.getCellInstance(args.element.id).sizeX * this.cellSize[0]) + 'px';
|
4437
|
+
const panelInstance = this.getCellInstance(args.element.id);
|
4438
|
+
this.setPanelPosition(this.shadowEle, panelInstance.row, panelInstance.col);
|
4439
|
+
}
|
4440
|
+
else {
|
4441
|
+
removeClass([this.element], [preventSelect]);
|
4442
|
+
removeClass([args.element], [dragging]);
|
4443
|
+
}
|
4381
4444
|
}
|
4382
4445
|
// eslint-disable-next-line
|
4383
4446
|
cloneModels(source, target) {
|
@@ -4400,60 +4463,67 @@ let DashboardLayout = class DashboardLayout extends Component {
|
|
4400
4463
|
let endCol;
|
4401
4464
|
let endRow;
|
4402
4465
|
let dragCol;
|
4403
|
-
|
4404
|
-
|
4405
|
-
|
4406
|
-
|
4407
|
-
|
4408
|
-
|
4409
|
-
const panelModel = this.getCellInstance(args.element.id);
|
4410
|
-
this.updateRowsHeight(panelModel.row, panelModel.sizeY, 1);
|
4411
|
-
this.updateDragArea();
|
4412
|
-
if (this.allowPushing) {
|
4413
|
-
this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);
|
4466
|
+
if (!this.eventVar) {
|
4467
|
+
const col = dragCol = this.getRowColumnDragValues(args)[1];
|
4468
|
+
const row = this.getRowColumnDragValues(args)[0];
|
4469
|
+
if (col < 0 || row < 0) {
|
4470
|
+
return;
|
4471
|
+
}
|
4414
4472
|
this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });
|
4415
|
-
|
4416
|
-
|
4417
|
-
this.
|
4418
|
-
this.
|
4419
|
-
|
4420
|
-
this.
|
4421
|
-
|
4422
|
-
|
4423
|
-
}
|
4424
|
-
|
4425
|
-
|
4426
|
-
|
4427
|
-
|
4428
|
-
|
4429
|
-
|
4430
|
-
|
4431
|
-
|
4432
|
-
|
4473
|
+
const panelModel = this.getCellInstance(args.element.id);
|
4474
|
+
this.updateRowsHeight(panelModel.row, panelModel.sizeY, 1);
|
4475
|
+
this.updateDragArea();
|
4476
|
+
if (this.allowPushing) {
|
4477
|
+
this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);
|
4478
|
+
this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });
|
4479
|
+
endCol = this.oldRowCol[(args.element.id)].col;
|
4480
|
+
endRow = this.oldRowCol[(args.element.id)].row;
|
4481
|
+
this.oldRowCol[(args.element.id)] = { row: row, col: col };
|
4482
|
+
this.updateOldRowColumn();
|
4483
|
+
if (this.startCol !== endCol || this.startRow !== endRow) {
|
4484
|
+
this.setHolderPosition(args);
|
4485
|
+
if (this.startCol !== endCol) {
|
4486
|
+
this.startRow = endRow;
|
4487
|
+
}
|
4488
|
+
if (this.startRow !== endRow) {
|
4489
|
+
this.startCol = endCol;
|
4490
|
+
}
|
4491
|
+
if (this.allowPushing) {
|
4492
|
+
this.mainElement = args.element;
|
4493
|
+
const model = panelModel;
|
4494
|
+
this.checkCollision = this.collisions(model.row, model.col, model.sizeX, model.sizeY, args.element);
|
4495
|
+
if (panelModel.col >= this.checkColumnValue) {
|
4496
|
+
this.checkCollision = [];
|
4497
|
+
}
|
4498
|
+
this.updatePanelLayout(args.element, panelModel);
|
4499
|
+
this.moveItemsUpwards();
|
4433
4500
|
}
|
4434
|
-
this.updatePanelLayout(args.element, panelModel);
|
4435
|
-
this.moveItemsUpwards();
|
4436
4501
|
}
|
4437
4502
|
}
|
4503
|
+
if (this.allowPushing !== false) {
|
4504
|
+
this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });
|
4505
|
+
}
|
4506
|
+
if (this.oldRowCol[args.element.id].row !== row || this.oldRowCol[args.element.id].col !== col) {
|
4507
|
+
this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });
|
4508
|
+
this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);
|
4509
|
+
}
|
4510
|
+
if (this.startCol !== dragCol) {
|
4511
|
+
this.startCol = endCol;
|
4512
|
+
this.moveItemsUpwards();
|
4513
|
+
}
|
4514
|
+
if (!this.allowPushing) {
|
4515
|
+
this.setHolderPosition(args);
|
4516
|
+
}
|
4517
|
+
this.removeResizeClasses(this.panelCollection);
|
4518
|
+
this.setClasses(this.panelCollection);
|
4519
|
+
if (this.allowPushing === false) {
|
4520
|
+
return;
|
4521
|
+
}
|
4438
4522
|
}
|
4439
|
-
|
4440
|
-
this.
|
4441
|
-
|
4442
|
-
|
4443
|
-
this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });
|
4444
|
-
this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);
|
4445
|
-
}
|
4446
|
-
if (this.startCol !== dragCol) {
|
4447
|
-
this.startCol = endCol;
|
4448
|
-
this.moveItemsUpwards();
|
4449
|
-
}
|
4450
|
-
if (!this.allowPushing) {
|
4451
|
-
this.setHolderPosition(args);
|
4452
|
-
}
|
4453
|
-
this.removeResizeClasses(this.panelCollection);
|
4454
|
-
this.setClasses(this.panelCollection);
|
4455
|
-
if (this.allowPushing === false) {
|
4456
|
-
return;
|
4523
|
+
else {
|
4524
|
+
this.dragobj.intDestroy(args.event);
|
4525
|
+
removeClass([this.element], [preventSelect]);
|
4526
|
+
removeClass([args.element], [dragging]);
|
4457
4527
|
}
|
4458
4528
|
}
|
4459
4529
|
getPanelBase(args) {
|