@syncfusion/ej2-navigations 27.1.58 → 27.2.3
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/dist/ej2-navigations.min.js +2 -2
- package/dist/ej2-navigations.umd.min.js +2 -2
- package/dist/ej2-navigations.umd.min.js.map +1 -1
- package/dist/es6/ej2-navigations.es2015.js +104 -28
- package/dist/es6/ej2-navigations.es2015.js.map +1 -1
- package/dist/es6/ej2-navigations.es5.js +106 -26
- package/dist/es6/ej2-navigations.es5.js.map +1 -1
- package/dist/global/ej2-navigations.min.js +2 -2
- package/dist/global/ej2-navigations.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +11 -11
- package/src/common/menu-base.js +4 -0
- package/src/tab/tab.d.ts +10 -0
- package/src/tab/tab.js +20 -6
- package/src/toolbar/toolbar.js +3 -3
- package/src/treeview/treeview.d.ts +12 -0
- package/src/treeview/treeview.js +79 -17
- package/styles/fluent2-lite.css +1 -2
- package/styles/fluent2.css +1 -2
- package/styles/sidebar/fluent2.css +1 -2
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version : 27.
|
|
3
|
+
* version : 27.2.3
|
|
4
4
|
* Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
|
|
5
5
|
* Use of this code is subject to the terms of our license.
|
|
6
6
|
* A copy of the current license can be obtained at any time by e-mailing
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-navigations@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-navigations@27.
|
|
3
|
+
"_id": "@syncfusion/ej2-navigations@27.2.2",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-wdKjMJAp1fCj8Lh+EcSicpaZ/dwG50/giQQAcaCTrDPrn0oGT9+/MS3gzDtxNgSOuDDANSCtJ8+2wFacDtAXRA==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-navigations",
|
|
7
7
|
"_phantomChildren": {},
|
|
8
8
|
"_requested": {
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"/@syncfusion/ej2-spreadsheet",
|
|
41
41
|
"/@syncfusion/ej2-vue-navigations"
|
|
42
42
|
],
|
|
43
|
-
"_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-navigations/-/ej2-navigations-27.
|
|
44
|
-
"_shasum": "
|
|
43
|
+
"_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-navigations/-/ej2-navigations-27.2.2.tgz",
|
|
44
|
+
"_shasum": "b90419d23da0d3a8d0300f21f00b07015f3ea1b3",
|
|
45
45
|
"_spec": "@syncfusion/ej2-navigations@*",
|
|
46
46
|
"_where": "/jenkins/workspace/elease-automation_release_27.1.1/packages/included",
|
|
47
47
|
"author": {
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
},
|
|
53
53
|
"bundleDependencies": false,
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@syncfusion/ej2-base": "~27.
|
|
56
|
-
"@syncfusion/ej2-buttons": "~27.
|
|
57
|
-
"@syncfusion/ej2-data": "~27.
|
|
58
|
-
"@syncfusion/ej2-inputs": "~27.
|
|
59
|
-
"@syncfusion/ej2-lists": "~27.
|
|
60
|
-
"@syncfusion/ej2-popups": "~27.
|
|
55
|
+
"@syncfusion/ej2-base": "~27.2.2",
|
|
56
|
+
"@syncfusion/ej2-buttons": "~27.2.2",
|
|
57
|
+
"@syncfusion/ej2-data": "~27.2.2",
|
|
58
|
+
"@syncfusion/ej2-inputs": "~27.2.2",
|
|
59
|
+
"@syncfusion/ej2-lists": "~27.2.3",
|
|
60
|
+
"@syncfusion/ej2-popups": "~27.2.2"
|
|
61
61
|
},
|
|
62
62
|
"deprecated": false,
|
|
63
63
|
"description": "A package of Essential JS 2 navigation components such as Tree-view, Tab, Toolbar, Context-menu, and Accordion which is used to navigate from one page to another",
|
|
@@ -162,6 +162,6 @@
|
|
|
162
162
|
"url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
|
|
163
163
|
},
|
|
164
164
|
"typings": "index.d.ts",
|
|
165
|
-
"version": "27.
|
|
165
|
+
"version": "27.2.3",
|
|
166
166
|
"sideEffects": false
|
|
167
167
|
}
|
package/src/common/menu-base.js
CHANGED
|
@@ -2265,6 +2265,10 @@ var MenuBase = /** @class */ (function (_super) {
|
|
|
2265
2265
|
li = this.createItems(iitems).children[idx];
|
|
2266
2266
|
var ul = this.isMenu ? select('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length];
|
|
2267
2267
|
ul.insertBefore(li, ul.children[idx]);
|
|
2268
|
+
if (i === items.length - 1 && !this.isMenu && ul.style.display === 'block') {
|
|
2269
|
+
this.setPosition(null, ul, parseFloat(ul.style.top), parseFloat(ul.style.left));
|
|
2270
|
+
ul.style.display = 'block';
|
|
2271
|
+
}
|
|
2268
2272
|
}
|
|
2269
2273
|
}
|
|
2270
2274
|
};
|
package/src/tab/tab.d.ts
CHANGED
|
@@ -506,6 +506,16 @@ export declare class Tab extends Component<HTMLElement> implements INotifyProper
|
|
|
506
506
|
* @returns {void}
|
|
507
507
|
*/
|
|
508
508
|
refresh(): void;
|
|
509
|
+
/**
|
|
510
|
+
* Reorganizes and adjusts the Tab headers to fit the available width without re-rendering the entire Tab component.
|
|
511
|
+
*
|
|
512
|
+
* This method is useful for optimizing the layout when:
|
|
513
|
+
* - A hidden tab item becomes visible.
|
|
514
|
+
* - The number of tab items changes dynamically.
|
|
515
|
+
*
|
|
516
|
+
* @returns {void} This method does not return a value.
|
|
517
|
+
*/
|
|
518
|
+
refreshOverflow(): void;
|
|
509
519
|
/**
|
|
510
520
|
* Initialize component
|
|
511
521
|
*
|
package/src/tab/tab.js
CHANGED
|
@@ -274,6 +274,20 @@ var Tab = /** @class */ (function (_super) {
|
|
|
274
274
|
this.renderReactTemplates();
|
|
275
275
|
}
|
|
276
276
|
};
|
|
277
|
+
/**
|
|
278
|
+
* Reorganizes and adjusts the Tab headers to fit the available width without re-rendering the entire Tab component.
|
|
279
|
+
*
|
|
280
|
+
* This method is useful for optimizing the layout when:
|
|
281
|
+
* - A hidden tab item becomes visible.
|
|
282
|
+
* - The number of tab items changes dynamically.
|
|
283
|
+
*
|
|
284
|
+
* @returns {void} This method does not return a value.
|
|
285
|
+
*/
|
|
286
|
+
Tab.prototype.refreshOverflow = function () {
|
|
287
|
+
if (!isNOU(this.tbObj)) {
|
|
288
|
+
this.tbObj.refreshOverflow();
|
|
289
|
+
}
|
|
290
|
+
};
|
|
277
291
|
/**
|
|
278
292
|
* Initialize component
|
|
279
293
|
*
|
|
@@ -319,9 +333,7 @@ var Tab = /** @class */ (function (_super) {
|
|
|
319
333
|
this.initRender = false;
|
|
320
334
|
if (this.isReact && this.portals && this.portals.length > 0) {
|
|
321
335
|
this.renderReactTemplates(function () {
|
|
322
|
-
|
|
323
|
-
_this.tbObj.refreshOverflow();
|
|
324
|
-
}
|
|
336
|
+
_this.refreshOverflow();
|
|
325
337
|
_this.refreshActiveBorder();
|
|
326
338
|
});
|
|
327
339
|
}
|
|
@@ -618,7 +630,7 @@ var Tab = /** @class */ (function (_super) {
|
|
|
618
630
|
else {
|
|
619
631
|
trg.classList.remove(CLS_CLOSE_SHOW);
|
|
620
632
|
}
|
|
621
|
-
this.
|
|
633
|
+
this.refreshOverflow();
|
|
622
634
|
this.refreshActiveTabBorder();
|
|
623
635
|
};
|
|
624
636
|
Tab.prototype.prevCtnAnimation = function (prev, current) {
|
|
@@ -1737,11 +1749,13 @@ var Tab = /** @class */ (function (_super) {
|
|
|
1737
1749
|
else {
|
|
1738
1750
|
_this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = '';
|
|
1739
1751
|
removeClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);
|
|
1752
|
+
_this.droppedIndex = isNOU(_this.droppedIndex) ? _this.getEleIndex(_this.dragItem) : _this.droppedIndex;
|
|
1740
1753
|
_this.selectTab(_this.droppedIndex, null, true);
|
|
1741
1754
|
}
|
|
1742
1755
|
}
|
|
1743
1756
|
});
|
|
1744
1757
|
this.dragItem = null;
|
|
1758
|
+
this.droppedIndex = null;
|
|
1745
1759
|
};
|
|
1746
1760
|
/**
|
|
1747
1761
|
* Enables or disables the specified Tab item. On passing value as `false`, the item will be disabled.
|
|
@@ -2001,8 +2015,8 @@ var Tab = /** @class */ (function (_super) {
|
|
|
2001
2015
|
if (!isNullOrUndefined(item.firstElementChild)) {
|
|
2002
2016
|
item.firstElementChild.setAttribute('aria-hidden', '' + value);
|
|
2003
2017
|
}
|
|
2004
|
-
if (this.overflowMode === 'Popup'
|
|
2005
|
-
this.
|
|
2018
|
+
if (this.overflowMode === 'Popup') {
|
|
2019
|
+
this.refreshOverflow();
|
|
2006
2020
|
}
|
|
2007
2021
|
};
|
|
2008
2022
|
Tab.prototype.selectTab = function (args, event, isInteracted) {
|
package/src/toolbar/toolbar.js
CHANGED
|
@@ -1587,9 +1587,9 @@ var Toolbar = /** @class */ (function (_super) {
|
|
|
1587
1587
|
return;
|
|
1588
1588
|
}
|
|
1589
1589
|
var alignDiv = [];
|
|
1590
|
-
alignDiv.push(this.createElement('div', { className: CLS_TBARLEFT }));
|
|
1591
|
-
alignDiv.push(this.createElement('div', { className: CLS_TBARCENTER }));
|
|
1592
|
-
alignDiv.push(this.createElement('div', { className: CLS_TBARRIGHT }));
|
|
1590
|
+
alignDiv.push(this.createElement('div', { className: CLS_TBARLEFT, attrs: { role: 'group' } }));
|
|
1591
|
+
alignDiv.push(this.createElement('div', { className: CLS_TBARCENTER, attrs: { role: 'group' } }));
|
|
1592
|
+
alignDiv.push(this.createElement('div', { className: CLS_TBARRIGHT, attrs: { role: 'group' } }));
|
|
1593
1593
|
if (pos === 0 && item.align !== 'Left') {
|
|
1594
1594
|
alignDiv.forEach(function (ele) {
|
|
1595
1595
|
itemEle.appendChild(ele);
|
|
@@ -973,6 +973,7 @@ export declare class TreeView extends Component<HTMLElement> implements INotifyP
|
|
|
973
973
|
* @event nodeSelecting
|
|
974
974
|
*/
|
|
975
975
|
nodeSelecting: EmitType<NodeSelectEventArgs>;
|
|
976
|
+
isFilter: boolean;
|
|
976
977
|
constructor(options?: TreeViewModel, element?: string | HTMLElement);
|
|
977
978
|
/**
|
|
978
979
|
* Get component name.
|
|
@@ -1298,6 +1299,7 @@ export declare class TreeView extends Component<HTMLElement> implements INotifyP
|
|
|
1298
1299
|
* Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel
|
|
1299
1300
|
*
|
|
1300
1301
|
* @param {string} node - The unique identifier of the node.
|
|
1302
|
+
* @param {string[]} [nodes=[]] - The list of node IDs to check.
|
|
1301
1303
|
* @returns {void}
|
|
1302
1304
|
* @private
|
|
1303
1305
|
*/
|
|
@@ -1311,6 +1313,16 @@ export declare class TreeView extends Component<HTMLElement> implements INotifyP
|
|
|
1311
1313
|
* @returns {void}
|
|
1312
1314
|
* @private
|
|
1313
1315
|
*/
|
|
1316
|
+
/**
|
|
1317
|
+
* Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)
|
|
1318
|
+
*
|
|
1319
|
+
* @param {Object[]} childItems - The child items to check.
|
|
1320
|
+
* @param {string} node - The node to set the check state for.
|
|
1321
|
+
* @param {Object} [treeData] - The optional tree data.
|
|
1322
|
+
* @param {string[]} [nodes=[]] - The list of node IDs to check.
|
|
1323
|
+
* @returns {void}
|
|
1324
|
+
* @private
|
|
1325
|
+
*/
|
|
1314
1326
|
private setChildCheckState;
|
|
1315
1327
|
private setIndeterminate;
|
|
1316
1328
|
private updatePosition;
|
package/src/treeview/treeview.js
CHANGED
|
@@ -801,7 +801,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
801
801
|
if (this.showCheckBox) {
|
|
802
802
|
var checkboxEle = createCheckBox(this.createElement, true, { cssClass: this.touchClass });
|
|
803
803
|
checkboxEle.classList.add(CHECKBOXWRAP);
|
|
804
|
-
var icon = select('div.' +
|
|
804
|
+
var icon = select('div.' + EXPANDABLE + ', div.' + COLLAPSIBLE, e.item);
|
|
805
805
|
var id = e.item.getAttribute('data-uid');
|
|
806
806
|
e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[isNOU(icon) ? 0 : 1]);
|
|
807
807
|
var checkValue = getValue(e.fields.isChecked, e.curData);
|
|
@@ -1033,7 +1033,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1033
1033
|
}
|
|
1034
1034
|
count = childItems.length;
|
|
1035
1035
|
}
|
|
1036
|
-
if (this.autoCheck && this.showCheckBox) {
|
|
1036
|
+
if (this.autoCheck && this.showCheckBox && !(this.fields.dataSource instanceof DataManager)) {
|
|
1037
1037
|
var selectedChildNodeDetails = this.getSelectedChildNodeDetails(dataUid_1);
|
|
1038
1038
|
matchedChildNodes = selectedChildNodeDetails;
|
|
1039
1039
|
oldChildCount = new DataManager(this.checkActionNodes)
|
|
@@ -1079,14 +1079,29 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1079
1079
|
});
|
|
1080
1080
|
};
|
|
1081
1081
|
TreeView.prototype.ensureChildCheckState = function (element, e, isFromExpandAll) {
|
|
1082
|
+
var _this = this;
|
|
1082
1083
|
if (!isNOU(element)) {
|
|
1083
1084
|
var childElement = select('.' + PARENTITEM, element);
|
|
1084
1085
|
var checkBoxes = void 0;
|
|
1085
1086
|
if (!isNOU(childElement)) {
|
|
1087
|
+
var childCheck = Array.from(childElement.querySelectorAll('li'));
|
|
1086
1088
|
checkBoxes = selectAll('.' + CHECKBOXWRAP, childElement);
|
|
1089
|
+
if (this.isFilter) {
|
|
1090
|
+
checkBoxes = Array.from(checkBoxes).filter(function (checkbox) {
|
|
1091
|
+
var dataUID = checkbox.closest('li').getAttribute('data-uid');
|
|
1092
|
+
return dataUID !== null && _this.checkedNodes.indexOf(dataUID) !== -1;
|
|
1093
|
+
});
|
|
1094
|
+
childCheck = Array.from(childCheck).filter(function (li) {
|
|
1095
|
+
var childIds = li.getAttribute('data-uid');
|
|
1096
|
+
return childIds !== null && _this.checkedNodes.indexOf(childIds) !== -1;
|
|
1097
|
+
});
|
|
1098
|
+
if (checkBoxes.length === 0) {
|
|
1099
|
+
checkBoxes = selectAll('.' + CHECKBOXWRAP, childElement);
|
|
1100
|
+
childCheck = Array.from(childElement.querySelectorAll('li'));
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1087
1103
|
var isChecked = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);
|
|
1088
1104
|
var parentCheck = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(INDETERMINATE);
|
|
1089
|
-
var childCheck = childElement.querySelectorAll('li');
|
|
1090
1105
|
var checkedState = void 0;
|
|
1091
1106
|
for (var index = 0; index < checkBoxes.length; index++) {
|
|
1092
1107
|
var childId = childCheck[parseInt(index.toString(), 10)].getAttribute('data-uid');
|
|
@@ -1149,7 +1164,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1149
1164
|
? nodes[parseInt(len.toString(), 10)].toString()
|
|
1150
1165
|
: null;
|
|
1151
1166
|
if (node !== '' && doCheck && node) {
|
|
1152
|
-
this.setValidCheckedNode(node);
|
|
1167
|
+
this.setValidCheckedNode(node, nodes);
|
|
1153
1168
|
this.dynamicCheckState(node, doCheck);
|
|
1154
1169
|
}
|
|
1155
1170
|
else if (this.checkedNodes.indexOf(node) !== -1 && node !== '' && !doCheck) {
|
|
@@ -2616,11 +2631,20 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2616
2631
|
* @returns {void}
|
|
2617
2632
|
*/
|
|
2618
2633
|
TreeView.prototype.ensureStateChange = function (li, doCheck) {
|
|
2634
|
+
var _this = this;
|
|
2619
2635
|
var childElement = select('.' + PARENTITEM, li);
|
|
2620
2636
|
var parentIndex = li.getAttribute('data-uid');
|
|
2621
2637
|
var mapper = this.fields;
|
|
2622
2638
|
if (this.dataType === 1 && this.autoCheck) {
|
|
2623
2639
|
var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.parentID, 'equal', parentIndex, true));
|
|
2640
|
+
var childMatchesCheckedNodes = resultData.filter(function (item) {
|
|
2641
|
+
return _this.checkedNodes.indexOf(item[mapper.id].toString()) !== -1;
|
|
2642
|
+
}, this);
|
|
2643
|
+
if (this.checkedNodes.indexOf(parentIndex) !== -1 && childMatchesCheckedNodes.length !== resultData.length && this.isFilter) {
|
|
2644
|
+
if (childMatchesCheckedNodes.length > 0) {
|
|
2645
|
+
resultData = childMatchesCheckedNodes;
|
|
2646
|
+
}
|
|
2647
|
+
}
|
|
2624
2648
|
for (var i = 0; i < resultData.length; i++) {
|
|
2625
2649
|
var resultId = resultData[parseInt(i.toString(), 10)][this.fields.id]
|
|
2626
2650
|
? resultData[parseInt(i.toString(), 10)][this.fields.id].toString()
|
|
@@ -2685,6 +2709,13 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2685
2709
|
else {
|
|
2686
2710
|
var childItems = this.getChildNodes(this.treeData, parentIndex);
|
|
2687
2711
|
if (childItems) {
|
|
2712
|
+
var filteredChildItems = childItems.filter(function (item) {
|
|
2713
|
+
var itemValue = String(item[Object.keys(item)[0]]);
|
|
2714
|
+
return _this.checkedNodes.indexOf(itemValue) !== -1;
|
|
2715
|
+
});
|
|
2716
|
+
if (filteredChildItems.length > 0 && childItems.length && this.isFilter) {
|
|
2717
|
+
childItems = filteredChildItems;
|
|
2718
|
+
}
|
|
2688
2719
|
this.childStateChange(childItems, parentIndex, childElement, doCheck);
|
|
2689
2720
|
}
|
|
2690
2721
|
}
|
|
@@ -2878,6 +2909,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2878
2909
|
TreeView.prototype.getFocusedNode = function () {
|
|
2879
2910
|
var selectedItem;
|
|
2880
2911
|
var fNode = select('.' + LISTITEM + '[tabindex="0"]', this.element);
|
|
2912
|
+
if (!isNOU(fNode)) {
|
|
2913
|
+
var ariaChecked = fNode.getAttribute('aria-checked');
|
|
2914
|
+
if (ariaChecked === 'mixed' || ariaChecked === 'false') {
|
|
2915
|
+
this.isFilter = false;
|
|
2916
|
+
}
|
|
2917
|
+
}
|
|
2881
2918
|
if (isNOU(fNode)) {
|
|
2882
2919
|
selectedItem = select('.' + LISTITEM, this.element);
|
|
2883
2920
|
}
|
|
@@ -3750,7 +3787,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3750
3787
|
}
|
|
3751
3788
|
};
|
|
3752
3789
|
TreeView.prototype.expandParent = function (dropLi) {
|
|
3753
|
-
var dropIcon = select('div.' +
|
|
3790
|
+
var dropIcon = select('div.' + EXPANDABLE + ', div.' + COLLAPSIBLE, dropLi);
|
|
3754
3791
|
if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && this.preventExpand !== true) {
|
|
3755
3792
|
this.expandAction(dropLi, dropIcon, null);
|
|
3756
3793
|
}
|
|
@@ -3769,7 +3806,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3769
3806
|
if (isNOU(dropIcon)) {
|
|
3770
3807
|
ListBase.generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption);
|
|
3771
3808
|
}
|
|
3772
|
-
var icon = select('div.' +
|
|
3809
|
+
var icon = select('div.' + EXPANDABLE + ', div.' + COLLAPSIBLE, dropLi);
|
|
3773
3810
|
if (icon) {
|
|
3774
3811
|
icon.classList.add('e-icon-expandable');
|
|
3775
3812
|
}
|
|
@@ -3792,7 +3829,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3792
3829
|
if (isNOU(dropIcon)) {
|
|
3793
3830
|
ListBase.generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption);
|
|
3794
3831
|
}
|
|
3795
|
-
var icon = select('div.' +
|
|
3832
|
+
var icon = select('div.' + EXPANDABLE + ', div.' + COLLAPSIBLE, dropLi);
|
|
3796
3833
|
if (icon) {
|
|
3797
3834
|
removeClass([icon], EXPANDABLE);
|
|
3798
3835
|
}
|
|
@@ -3806,6 +3843,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3806
3843
|
this.addExpand(dropLi);
|
|
3807
3844
|
this.trigger('nodeExpanded', this.getExpandEvent(dropLi, null));
|
|
3808
3845
|
}
|
|
3846
|
+
var collapseIcon = select('div.' + COLLAPSIBLE, dropLi);
|
|
3847
|
+
if (!isNOU(dropUl) && collapseIcon && this.preventExpand) {
|
|
3848
|
+
removeClass([collapseIcon], COLLAPSIBLE);
|
|
3849
|
+
dropLi.setAttribute('aria-expanded', 'false');
|
|
3850
|
+
addClass([collapseIcon], EXPANDABLE);
|
|
3851
|
+
}
|
|
3809
3852
|
return dropUl;
|
|
3810
3853
|
};
|
|
3811
3854
|
TreeView.prototype.updateElement = function (dragParentUl, dragParentLi) {
|
|
@@ -4131,7 +4174,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4131
4174
|
if (!isNullOrUndefined(dropLi)) {
|
|
4132
4175
|
dropIcon1 = select('div.' + ICON, dropLi);
|
|
4133
4176
|
}
|
|
4134
|
-
if (this.dataType === 1 && dropIcon1 && dropIcon1.classList.contains(EXPANDABLE) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
4177
|
+
if (this.dataType === 1 && dropIcon1 && dropIcon1.classList.contains(EXPANDABLE) && this.preventExpand && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
4135
4178
|
this.preventExpand = true;
|
|
4136
4179
|
}
|
|
4137
4180
|
if (this.dataType !== 1) {
|
|
@@ -4152,7 +4195,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4152
4195
|
for (var i = 0; i < li.length; i++) {
|
|
4153
4196
|
dropUl.insertBefore(li[parseInt(i.toString(), 10)], refNode);
|
|
4154
4197
|
}
|
|
4155
|
-
if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
4198
|
+
if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !this.preventExpand && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
4156
4199
|
this.preventExpand = false;
|
|
4157
4200
|
var dropIcon = select('div.' + ICON, dropLi);
|
|
4158
4201
|
if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (isNOU(args) || args.name !== 'nodeExpanding')) {
|
|
@@ -4165,7 +4208,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4165
4208
|
for (var i = 0; i < li.length; i++) {
|
|
4166
4209
|
dropUl.insertBefore(li[parseInt(i.toString(), 10)], refNode);
|
|
4167
4210
|
}
|
|
4168
|
-
if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
4211
|
+
if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !this.preventExpand && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
4169
4212
|
this.preventExpand = false;
|
|
4170
4213
|
var dropIcon = select('div.' + ICON, dropLi);
|
|
4171
4214
|
if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (isNOU(args) || args.name !== 'nodeExpanding')) {
|
|
@@ -4623,6 +4666,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4623
4666
|
};
|
|
4624
4667
|
TreeView.prototype.setCheckedNodes = function (nodes) {
|
|
4625
4668
|
nodes = JSON.parse(JSON.stringify(nodes));
|
|
4669
|
+
if (nodes.length > 1 && typeof this.nodeChecked === 'function' && this.nodeChecked.length > 0) {
|
|
4670
|
+
this.isFilter = true;
|
|
4671
|
+
}
|
|
4626
4672
|
this.uncheckAll(this.checkedNodes);
|
|
4627
4673
|
this.setIndeterminate(nodes);
|
|
4628
4674
|
if (nodes.length > 0) {
|
|
@@ -4633,15 +4679,17 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4633
4679
|
* Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel
|
|
4634
4680
|
*
|
|
4635
4681
|
* @param {string} node - The unique identifier of the node.
|
|
4682
|
+
* @param {string[]} [nodes=[]] - The list of node IDs to check.
|
|
4636
4683
|
* @returns {void}
|
|
4637
4684
|
* @private
|
|
4638
4685
|
*/
|
|
4639
|
-
TreeView.prototype.setValidCheckedNode = function (node) {
|
|
4686
|
+
TreeView.prototype.setValidCheckedNode = function (node, nodes) {
|
|
4687
|
+
if (nodes === void 0) { nodes = []; }
|
|
4640
4688
|
if (this.dataType === 1) {
|
|
4641
4689
|
var mapper = this.fields;
|
|
4642
4690
|
var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', node, true));
|
|
4643
4691
|
if (resultData[0]) {
|
|
4644
|
-
this.setChildCheckState(resultData, node, resultData[0]);
|
|
4692
|
+
this.setChildCheckState(resultData, node, resultData[0], nodes);
|
|
4645
4693
|
if (this.autoCheck) {
|
|
4646
4694
|
var parent_4 = resultData[0][this.fields.parentID] ? resultData[0][this.fields.parentID].toString() : null;
|
|
4647
4695
|
var childNodes = this.getChildNodes(this.treeData, parent_4);
|
|
@@ -4667,7 +4715,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4667
4715
|
}
|
|
4668
4716
|
var childItems = getValue(this.fields.child.toString(), this.treeData[parseInt(a.toString(), 10)]);
|
|
4669
4717
|
if (childItems) {
|
|
4670
|
-
this.setChildCheckState(childItems, node, this.treeData[parseInt(a.toString(), 10)]);
|
|
4718
|
+
this.setChildCheckState(childItems, node, this.treeData[parseInt(a.toString(), 10)], nodes);
|
|
4671
4719
|
}
|
|
4672
4720
|
}
|
|
4673
4721
|
}
|
|
@@ -4681,7 +4729,18 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4681
4729
|
* @returns {void}
|
|
4682
4730
|
* @private
|
|
4683
4731
|
*/
|
|
4684
|
-
|
|
4732
|
+
/**
|
|
4733
|
+
* Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)
|
|
4734
|
+
*
|
|
4735
|
+
* @param {Object[]} childItems - The child items to check.
|
|
4736
|
+
* @param {string} node - The node to set the check state for.
|
|
4737
|
+
* @param {Object} [treeData] - The optional tree data.
|
|
4738
|
+
* @param {string[]} [nodes=[]] - The list of node IDs to check.
|
|
4739
|
+
* @returns {void}
|
|
4740
|
+
* @private
|
|
4741
|
+
*/
|
|
4742
|
+
TreeView.prototype.setChildCheckState = function (childItems, node, treeData, nodes) {
|
|
4743
|
+
if (nodes === void 0) { nodes = []; }
|
|
4685
4744
|
var checkedParent;
|
|
4686
4745
|
var count = 0;
|
|
4687
4746
|
if (this.dataType === 1) {
|
|
@@ -4701,7 +4760,8 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4701
4760
|
this.checkDisabledState(node);
|
|
4702
4761
|
}
|
|
4703
4762
|
var subChildItems = this.getChildNodes(this.treeData, checkNode);
|
|
4704
|
-
|
|
4763
|
+
var isParentNodeCheck = (nodes.length === 1 && nodes[0] === checkNode);
|
|
4764
|
+
if (subChildItems.length === node.length || isParentNodeCheck) {
|
|
4705
4765
|
this.setChildCheckState(subChildItems, node, treeData);
|
|
4706
4766
|
}
|
|
4707
4767
|
}
|
|
@@ -4712,8 +4772,10 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4712
4772
|
}
|
|
4713
4773
|
for (var index = 0; index < childItems.length; index++) {
|
|
4714
4774
|
var checkedChild = childItems[parseInt(index.toString(), 10)][this.fields.id] ? childItems[parseInt(index.toString(), 10)][this.fields.id].toString() : '';
|
|
4775
|
+
var isParentNodeCheck = ([node].length === 1 && nodes.length === 0);
|
|
4715
4776
|
if (treeData && checkedParent && this.autoCheck) {
|
|
4716
|
-
if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1
|
|
4777
|
+
if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1
|
|
4778
|
+
&& (checkedChild === node || isParentNodeCheck)) {
|
|
4717
4779
|
this.checkDisabledState(checkedChild, childItems[index]);
|
|
4718
4780
|
}
|
|
4719
4781
|
}
|
|
@@ -4735,7 +4797,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
4735
4797
|
};
|
|
4736
4798
|
TreeView.prototype.setIndeterminate = function (nodes) {
|
|
4737
4799
|
for (var i = 0; i < nodes.length; i++) {
|
|
4738
|
-
this.setValidCheckedNode(nodes[parseInt(i.toString(), 10)]);
|
|
4800
|
+
this.setValidCheckedNode(nodes[parseInt(i.toString(), 10)], nodes);
|
|
4739
4801
|
}
|
|
4740
4802
|
};
|
|
4741
4803
|
TreeView.prototype.updatePosition = function (id, newData, isRefreshChild, childValue) {
|
package/styles/fluent2-lite.css
CHANGED
package/styles/fluent2.css
CHANGED