@syncfusion/ej2-lists 32.2.3 → 32.2.7
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-lists.min.js +2 -2
- package/dist/ej2-lists.umd.min.js +2 -2
- package/dist/ej2-lists.umd.min.js.map +1 -1
- package/dist/es6/ej2-lists.es2015.js +45 -45
- package/dist/es6/ej2-lists.es2015.js.map +1 -1
- package/dist/es6/ej2-lists.es5.js +45 -45
- package/dist/es6/ej2-lists.es5.js.map +1 -1
- package/dist/global/ej2-lists.min.js +2 -2
- package/dist/global/ej2-lists.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +4 -4
- package/src/common/list-base.d.ts +10 -0
- package/src/common/list-base.js +30 -34
- package/src/list-view/list-view-model.d.ts +13 -0
- package/src/list-view/list-view.d.ts +12 -0
- package/src/list-view/list-view.js +15 -11
- package/styles/list-view/_material3-dark-definition.scss +9 -6
- package/styles/list-view/_material3-definition.scss +9 -6
|
@@ -67,6 +67,7 @@ var ListBase;
|
|
|
67
67
|
showCheckBox: false,
|
|
68
68
|
showIcon: false,
|
|
69
69
|
enableHtmlSanitizer: false,
|
|
70
|
+
disableHtmlEncode: false,
|
|
70
71
|
expandCollapse: false,
|
|
71
72
|
fields: ListBase.defaultMappedFields,
|
|
72
73
|
ariaAttributes: defaultAriaAttributes,
|
|
@@ -261,14 +262,10 @@ var ListBase;
|
|
|
261
262
|
anchorElement = li.querySelector('.' + cssClass.anchorWrap);
|
|
262
263
|
if (Object.prototype.hasOwnProperty.call(fieldData, fields.tooltip)) {
|
|
263
264
|
var tooltipText = fieldData[fields.tooltip];
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
var tooltipTextElement = createElement('span', { innerHTML: tooltipText });
|
|
269
|
-
tooltipText = tooltipTextElement.innerText;
|
|
270
|
-
tooltipTextElement = null;
|
|
271
|
-
}
|
|
265
|
+
tooltipText = getSanitizedText(tooltipText, curOpt);
|
|
266
|
+
var tooltipTextElement = createElement('span', { innerHTML: tooltipText });
|
|
267
|
+
tooltipText = tooltipTextElement.innerText;
|
|
268
|
+
tooltipTextElement = null;
|
|
272
269
|
li.setAttribute('title', tooltipText);
|
|
273
270
|
}
|
|
274
271
|
if (curOpt.itemNavigable && checkboxElement.length) {
|
|
@@ -285,14 +282,10 @@ var ListBase;
|
|
|
285
282
|
anchorElement = li.querySelector('.' + cssClass.anchorWrap);
|
|
286
283
|
if (Object.prototype.hasOwnProperty.call(fieldData, fields.tooltip)) {
|
|
287
284
|
var tooltipText = fieldData[fields.tooltip];
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
var tooltipTextElement = createElement('span', { innerHTML: tooltipText });
|
|
293
|
-
tooltipText = tooltipTextElement.innerText;
|
|
294
|
-
tooltipTextElement = null;
|
|
295
|
-
}
|
|
285
|
+
tooltipText = getSanitizedText(tooltipText, curOpt);
|
|
286
|
+
var tooltipTextElement = createElement('span', { innerHTML: tooltipText });
|
|
287
|
+
tooltipText = tooltipTextElement.innerText;
|
|
288
|
+
tooltipTextElement = null;
|
|
296
289
|
li.setAttribute('title', tooltipText);
|
|
297
290
|
}
|
|
298
291
|
if (Object.prototype.hasOwnProperty.call(fieldData, fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {
|
|
@@ -824,6 +817,7 @@ var ListBase;
|
|
|
824
817
|
fieldData[fields.text] : (fieldData[fields.text] || '');
|
|
825
818
|
value = fieldData[fields.value];
|
|
826
819
|
}
|
|
820
|
+
text = getSanitizedText(text, curOpt);
|
|
827
821
|
var elementID;
|
|
828
822
|
if (!isNullOrUndefined(dataSource) && !isNullOrUndefined(fieldData[fields.id])
|
|
829
823
|
&& fieldData[fields.id] !== '') {
|
|
@@ -840,11 +834,8 @@ var ListBase;
|
|
|
840
834
|
if (dataSource && Object.prototype.hasOwnProperty.call(fieldData, fields.enabled) && fieldData[fields.enabled].toString() === 'false') {
|
|
841
835
|
li.classList.add(cssClass.disabled);
|
|
842
836
|
}
|
|
843
|
-
if (options && options.enableHtmlSanitizer) {
|
|
844
|
-
text = SanitizeHtmlHelper.sanitize(text);
|
|
845
|
-
}
|
|
846
837
|
if (grpLI) {
|
|
847
|
-
li
|
|
838
|
+
li[getDomSetter(curOpt)] = text;
|
|
848
839
|
}
|
|
849
840
|
else {
|
|
850
841
|
li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);
|
|
@@ -857,7 +848,7 @@ var ListBase;
|
|
|
857
848
|
}
|
|
858
849
|
if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&
|
|
859
850
|
fieldData[fields.urlAttributes].href))) {
|
|
860
|
-
li.appendChild(anchorTag(createElement, dataSource, fields, text, innerElements, curOpt.itemNavigable));
|
|
851
|
+
li.appendChild(anchorTag(createElement, dataSource, fields, text, innerElements, curOpt.itemNavigable, curOpt));
|
|
861
852
|
}
|
|
862
853
|
else {
|
|
863
854
|
if (innerElements.length && curOpt.itemNavigable) {
|
|
@@ -908,9 +899,10 @@ var ListBase;
|
|
|
908
899
|
* @param {string} text - The text content of the anchor tag.
|
|
909
900
|
* @param {HTMLElement[]} innerElements - Optional array of inner elements to append to the anchor tag.
|
|
910
901
|
* @param {boolean} isFullNavigation - Indicates whether the anchor tag should be for full navigation.
|
|
902
|
+
* @param {ListBaseOptions} [options] - Optional ListBase options.
|
|
911
903
|
* @returns {HTMLElement} The created anchor tag element.
|
|
912
904
|
*/
|
|
913
|
-
function anchorTag(createElement, dataSource, fields, text, innerElements, isFullNavigation) {
|
|
905
|
+
function anchorTag(createElement, dataSource, fields, text, innerElements, isFullNavigation, options) {
|
|
914
906
|
var fieldData = getFieldValues(dataSource, fields);
|
|
915
907
|
var attr = { href: fieldData[fields.url] };
|
|
916
908
|
if (Object.prototype.hasOwnProperty.call(fieldData, fields.urlAttributes) && fieldData[fields.urlAttributes]) {
|
|
@@ -919,8 +911,11 @@ var ListBase;
|
|
|
919
911
|
fieldData[fields.urlAttributes].href;
|
|
920
912
|
}
|
|
921
913
|
var anchorTag;
|
|
914
|
+
var curOpt = extend({}, defaultListBaseOptions, options);
|
|
915
|
+
var safeText = getSanitizedText(text, curOpt);
|
|
922
916
|
if (!isFullNavigation) {
|
|
923
|
-
anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url
|
|
917
|
+
anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url });
|
|
918
|
+
anchorTag[getDomSetter(curOpt)] = safeText;
|
|
924
919
|
}
|
|
925
920
|
else {
|
|
926
921
|
anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url });
|
|
@@ -928,7 +923,7 @@ var ListBase;
|
|
|
928
923
|
if (innerElements && innerElements.length) {
|
|
929
924
|
append(innerElements, anchorWrapper);
|
|
930
925
|
}
|
|
931
|
-
anchorWrapper.appendChild(document.createTextNode(
|
|
926
|
+
anchorWrapper.appendChild(document.createTextNode(safeText));
|
|
932
927
|
append([anchorWrapper], anchorTag);
|
|
933
928
|
}
|
|
934
929
|
setAttribute(anchorTag, attr);
|
|
@@ -960,9 +955,7 @@ var ListBase;
|
|
|
960
955
|
grpLI = (Object.prototype.hasOwnProperty.call(item, 'isHeader') && item.isHeader)
|
|
961
956
|
? true : false;
|
|
962
957
|
}
|
|
963
|
-
|
|
964
|
-
text = SanitizeHtmlHelper.sanitize(text);
|
|
965
|
-
}
|
|
958
|
+
text = getSanitizedText(text, curOpt);
|
|
966
959
|
var li = createElement('li', {
|
|
967
960
|
className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),
|
|
968
961
|
attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?
|
|
@@ -1012,19 +1005,14 @@ var ListBase;
|
|
|
1012
1005
|
});
|
|
1013
1006
|
if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&
|
|
1014
1007
|
fieldData[fields.urlAttributes].href))) {
|
|
1015
|
-
innerDiv.appendChild(anchorTag(createElement, dataSource, fields, text, null, curOpt.itemNavigable));
|
|
1008
|
+
innerDiv.appendChild(anchorTag(createElement, dataSource, fields, text, null, curOpt.itemNavigable, curOpt));
|
|
1016
1009
|
}
|
|
1017
1010
|
else {
|
|
1018
1011
|
var element = createElement('span', {
|
|
1019
1012
|
className: cssClass.text,
|
|
1020
1013
|
attrs: (ariaAttributes.itemText !== '' ? { role: ariaAttributes.itemText } : {})
|
|
1021
1014
|
});
|
|
1022
|
-
|
|
1023
|
-
element.innerText = text;
|
|
1024
|
-
}
|
|
1025
|
-
else {
|
|
1026
|
-
element.innerHTML = text;
|
|
1027
|
-
}
|
|
1015
|
+
element[getDomSetter(curOpt)] = text;
|
|
1028
1016
|
innerDiv.appendChild(element);
|
|
1029
1017
|
}
|
|
1030
1018
|
li.appendChild(innerDiv);
|
|
@@ -1080,6 +1068,14 @@ var ListBase;
|
|
|
1080
1068
|
return liElement;
|
|
1081
1069
|
}
|
|
1082
1070
|
ListBase.generateIcon = generateIcon;
|
|
1071
|
+
function getDomSetter(options) {
|
|
1072
|
+
return options.disableHtmlEncode ? 'textContent' : 'innerHTML';
|
|
1073
|
+
}
|
|
1074
|
+
ListBase.getDomSetter = getDomSetter;
|
|
1075
|
+
function getSanitizedText(text, options) {
|
|
1076
|
+
return options.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(text) : text;
|
|
1077
|
+
}
|
|
1078
|
+
ListBase.getSanitizedText = getSanitizedText;
|
|
1083
1079
|
})(ListBase || (ListBase = {}));
|
|
1084
1080
|
/**
|
|
1085
1081
|
* Used to get dataSource item from complex data using fields.
|
|
@@ -1423,13 +1419,13 @@ var ListView = /** @__PURE__ @class */ (function (_super) {
|
|
|
1423
1419
|
if (this.headerEle === undefined && this.showHeader) {
|
|
1424
1420
|
this.headerEle = this.createElement('div', { className: classNames.header });
|
|
1425
1421
|
var innerHeaderEle = this.createElement('span', { className: classNames.headerText });
|
|
1426
|
-
|
|
1427
|
-
this.
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
innerHeaderEle.innerHTML = this.headerTitle;
|
|
1422
|
+
var curOpt = this.listBaseOption || {
|
|
1423
|
+
enableHtmlSanitizer: this.enableHtmlSanitizer, disableHtmlEncode: this.disableHtmlEncode
|
|
1424
|
+
};
|
|
1425
|
+
if (curOpt.enableHtmlSanitizer) {
|
|
1426
|
+
this.setProperties({ headerTitle: ListBase.getSanitizedText(this.headerTitle, curOpt) }, true);
|
|
1432
1427
|
}
|
|
1428
|
+
innerHeaderEle[ListBase.getDomSetter(curOpt)] = ListBase.getSanitizedText(this.headerTitle, curOpt);
|
|
1433
1429
|
var textEle = this.createElement('div', { className: classNames.text, innerHTML: innerHeaderEle.outerHTML });
|
|
1434
1430
|
var hedBackButton = this.createElement('div', {
|
|
1435
1431
|
className: classNames.icon + ' ' + classNames.backIcon + ' ' + classNames.backButton,
|
|
@@ -1460,10 +1456,10 @@ var ListView = /** @__PURE__ @class */ (function (_super) {
|
|
|
1460
1456
|
this.headerEle.style.display = '';
|
|
1461
1457
|
var textEle = this.headerEle.querySelector('.' + classNames.headerText);
|
|
1462
1458
|
var hedBackButton = this.headerEle.querySelector('.' + classNames.backIcon);
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
}
|
|
1466
|
-
textEle.
|
|
1459
|
+
var curOpt = this.listBaseOption || {
|
|
1460
|
+
enableHtmlSanitizer: this.enableHtmlSanitizer, disableHtmlEncode: this.disableHtmlEncode
|
|
1461
|
+
};
|
|
1462
|
+
textEle[ListBase.getDomSetter(curOpt)] = ListBase.getSanitizedText(text, curOpt);
|
|
1467
1463
|
if (this.headerTemplate && showBack) {
|
|
1468
1464
|
textEle.parentElement.classList.remove('header');
|
|
1469
1465
|
this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('nested-header');
|
|
@@ -1553,7 +1549,8 @@ var ListView = /** @__PURE__ @class */ (function (_super) {
|
|
|
1553
1549
|
itemCreated: this.renderCheckbox.bind(this),
|
|
1554
1550
|
templateID: "" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY,
|
|
1555
1551
|
groupTemplateID: "" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY,
|
|
1556
|
-
enableHtmlSanitizer: this.enableHtmlSanitizer
|
|
1552
|
+
enableHtmlSanitizer: this.enableHtmlSanitizer,
|
|
1553
|
+
disableHtmlEncode: this.disableHtmlEncode
|
|
1557
1554
|
};
|
|
1558
1555
|
this.initialization();
|
|
1559
1556
|
};
|
|
@@ -3241,6 +3238,9 @@ var ListView = /** @__PURE__ @class */ (function (_super) {
|
|
|
3241
3238
|
__decorate([
|
|
3242
3239
|
Property(true)
|
|
3243
3240
|
], ListView.prototype, "enableHtmlSanitizer", void 0);
|
|
3241
|
+
__decorate([
|
|
3242
|
+
Property(true)
|
|
3243
|
+
], ListView.prototype, "disableHtmlEncode", void 0);
|
|
3244
3244
|
__decorate([
|
|
3245
3245
|
Property('')
|
|
3246
3246
|
], ListView.prototype, "height", void 0);
|