@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) {
|