@syncfusion/ej2-base 21.2.3 → 22.1.34

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.
Files changed (59) hide show
  1. package/.eslintrc.json +1 -0
  2. package/CHANGELOG.md +24 -0
  3. package/bin/syncfusion-license.js +1 -1
  4. package/dist/ej2-base.min.js +2 -2
  5. package/dist/ej2-base.umd.min.js +2 -2
  6. package/dist/ej2-base.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-base.es2015.js +205 -58
  8. package/dist/es6/ej2-base.es2015.js.map +1 -1
  9. package/dist/es6/ej2-base.es5.js +186 -36
  10. package/dist/es6/ej2-base.es5.js.map +1 -1
  11. package/dist/global/ej2-base.min.js +2 -2
  12. package/dist/global/ej2-base.min.js.map +1 -1
  13. package/dist/global/index.d.ts +1 -1
  14. package/package.json +94 -7
  15. package/src/browser.js +1 -1
  16. package/src/draggable.js +3 -0
  17. package/src/fetch.d.ts +114 -0
  18. package/src/fetch.js +116 -0
  19. package/src/index.d.ts +1 -0
  20. package/src/index.js +1 -0
  21. package/src/intl/number-formatter.js +12 -5
  22. package/src/intl/parser-base.js +16 -16
  23. package/src/template-engine.d.ts +12 -3
  24. package/src/template-engine.js +21 -1
  25. package/src/template.d.ts +2 -2
  26. package/src/template.js +14 -9
  27. package/src/validate-lic.js +3 -3
  28. package/styles/_highcontrast-definition.scss +1 -1
  29. package/styles/_highcontrast-light-definition.scss +1 -1
  30. package/styles/_material3-dark-definition.scss +15 -0
  31. package/styles/_material3-definition.scss +16 -0
  32. package/styles/animation/_all.scss +64 -5
  33. package/styles/bootstrap-dark.css +59 -2
  34. package/styles/bootstrap.css +59 -2
  35. package/styles/bootstrap4.css +59 -2
  36. package/styles/bootstrap5-dark.css +59 -2
  37. package/styles/bootstrap5.css +59 -2
  38. package/styles/common/_core.scss +24 -4
  39. package/styles/definition/_material.scss +0 -3
  40. package/styles/definition/_material3-dark.scss +701 -0
  41. package/styles/definition/_material3.scss +782 -0
  42. package/styles/fabric-dark.css +59 -2
  43. package/styles/fabric.css +59 -2
  44. package/styles/fluent-dark.css +59 -2
  45. package/styles/fluent.css +59 -2
  46. package/styles/highcontrast-light.css +60 -3
  47. package/styles/highcontrast.css +60 -3
  48. package/styles/material-dark.css +59 -2
  49. package/styles/material.css +59 -2
  50. package/styles/material3-dark.css +2020 -0
  51. package/styles/material3-dark.scss +3 -0
  52. package/styles/material3.css +2076 -0
  53. package/styles/material3.scss +3 -0
  54. package/styles/offline-theme/material-dark.css +59 -2
  55. package/styles/offline-theme/material.css +59 -2
  56. package/styles/offline-theme/tailwind-dark.css +59 -2
  57. package/styles/offline-theme/tailwind.css +59 -2
  58. package/styles/tailwind-dark.css +59 -2
  59. package/styles/tailwind.css +59 -2
@@ -718,28 +718,28 @@ var blazorCurrencyData = {
718
718
  'XAF': 'FCFA',
719
719
  'GHS': 'GH₵',
720
720
  'XDR': 'XDR',
721
- 'AED': 'د.إ.‏',
722
- 'BHD': 'د.ب.‏',
723
- 'DZD': 'د.ج.‏',
724
- 'EGP': 'ج.م.‏',
721
+ 'AED': 'د.إ.',
722
+ 'BHD': 'د.ب.',
723
+ 'DZD': 'د.ج.',
724
+ 'EGP': 'ج.م.',
725
725
  'ILS': '₪',
726
- 'IQD': 'د.ع.‏',
727
- 'JOD': 'د.ا.‏',
726
+ 'IQD': 'د.ع.',
727
+ 'JOD': 'د.ا.',
728
728
  'KMF': 'CF',
729
- 'KWD': 'د.ك.‏',
730
- 'LBP': 'ل.ل.‏',
731
- 'LYD': 'د.ل.‏',
732
- 'MAD': 'د.م.‏',
729
+ 'KWD': 'د.ك.',
730
+ 'LBP': 'ل.ل.',
731
+ 'LYD': 'د.ل.',
732
+ 'MAD': 'د.م.',
733
733
  'MRU': 'أ.م.',
734
- 'OMR': 'ر.ع.‏',
735
- 'QAR': 'ر.ق.‏',
736
- 'SAR': 'ر.س.‏',
734
+ 'OMR': 'ر.ع.',
735
+ 'QAR': 'ر.ق.',
736
+ 'SAR': 'ر.س.',
737
737
  'SDG': 'ج.س.',
738
738
  'SOS': 'S',
739
739
  'SSP': '£',
740
- 'SYP': 'ل.س.‏',
741
- 'TND': 'د.ت.‏',
742
- 'YER': 'ر.ي.‏',
740
+ 'SYP': 'ل.س.',
741
+ 'TND': 'د.ت.',
742
+ 'YER': 'ر.ي.',
743
743
  'CLP': '$',
744
744
  'INR': '₹',
745
745
  'TZS': 'TSh',
@@ -1490,7 +1490,7 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1490
1490
  else if (!isFinite(value)) {
1491
1491
  return symbols[mapper$1[0]];
1492
1492
  }
1493
- return _this.intNumberFormatter(value, cOptions, dOptions);
1493
+ return _this.intNumberFormatter(value, cOptions, dOptions, option);
1494
1494
  };
1495
1495
  };
1496
1496
  /**
@@ -1574,7 +1574,7 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1574
1574
  * @param {CommonOptions} dOptions ?
1575
1575
  * @returns {string} ?
1576
1576
  */
1577
- NumberFormat.intNumberFormatter = function (value, fOptions, dOptions) {
1577
+ NumberFormat.intNumberFormatter = function (value, fOptions, dOptions, option) {
1578
1578
  var curData;
1579
1579
  if (isUndefined(fOptions.nData.type)) {
1580
1580
  return undefined;
@@ -1598,7 +1598,7 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1598
1598
  fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);
1599
1599
  }
1600
1600
  else {
1601
- fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits);
1601
+ fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits, option);
1602
1602
  if (curData.minimumIntegerDigits) {
1603
1603
  fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);
1604
1604
  }
@@ -1633,6 +1633,9 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1633
1633
  return curData.nlead;
1634
1634
  }
1635
1635
  else {
1636
+ if (fValue === '0' && option && option.format === '0') {
1637
+ return fValue + curData.nend;
1638
+ }
1636
1639
  return curData.nlead + fValue + curData.nend;
1637
1640
  }
1638
1641
  }
@@ -1694,7 +1697,7 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1694
1697
  * @param {number} max ?
1695
1698
  * @returns {string} ?
1696
1699
  */
1697
- NumberFormat.processFraction = function (value, min, max) {
1700
+ NumberFormat.processFraction = function (value, min, max, option) {
1698
1701
  var temp = (value + '').split('.')[1];
1699
1702
  var length = temp ? temp.length : 0;
1700
1703
  if (min && length < min) {
@@ -1714,7 +1717,11 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1714
1717
  else if (!isNullOrUndefined(max) && (length > max || max === 0)) {
1715
1718
  return value.toFixed(max);
1716
1719
  }
1717
- return value + '';
1720
+ var str = value + '';
1721
+ if (str[0] === '0' && option && option.format === '###.00') {
1722
+ str = str.slice(1);
1723
+ }
1724
+ return str;
1718
1725
  };
1719
1726
  /**
1720
1727
  * Returns integer processed numeric string
@@ -4179,6 +4186,121 @@ var Ajax = /** @__PURE__ @class */ (function () {
4179
4186
  return Ajax;
4180
4187
  }());
4181
4188
 
4189
+ /**
4190
+ * The Fetch class provides a way to make asynchronous network requests, typically to retrieve resources from a server.
4191
+ * ```typescript
4192
+ * var fetchApi = new Fetch('index.html', 'GET');
4193
+ * fetchApi.send()
4194
+ * .then((value) => {
4195
+ * console.log(value);
4196
+ * }).catch((error) => {
4197
+ * console.log(error);
4198
+ * });
4199
+ * ```
4200
+ */
4201
+ var Fetch = /** @__PURE__ @class */ (function () {
4202
+ /**
4203
+ * Constructor for Fetch class.
4204
+ *
4205
+ * @param {string|Object} options - Specifies the URL or Request object with URL to which the request is to be sent.
4206
+ * @param {string} type - Specifies which request method is to be used, such as GET, POST, etc.
4207
+ * @param {string} contentType - Specifies the content type of the request, which is used to indicate the original media type of the resource.
4208
+ */
4209
+ function Fetch(options, type, contentType) {
4210
+ /**
4211
+ * Specifies which request method is to be used, such as GET, POST, etc.
4212
+ *
4213
+ * @default GET
4214
+ */
4215
+ this.type = 'GET';
4216
+ /**
4217
+ * A boolean value indicating whether to reject the promise or not.
4218
+ *
4219
+ * @private
4220
+ * @default true
4221
+ */
4222
+ this.emitError = true;
4223
+ if (typeof options === 'string') {
4224
+ this.url = options;
4225
+ this.type = !isNullOrUndefined(type) ? type.toUpperCase() : this.type;
4226
+ this.contentType = contentType;
4227
+ }
4228
+ else if (isObject(options) && Object.keys(options).length > 0) {
4229
+ merge(this, options);
4230
+ }
4231
+ this.contentType = !isNullOrUndefined(this.contentType) ? this.contentType : 'application/json; charset=utf-8';
4232
+ }
4233
+ /**
4234
+ * Send the request to server.
4235
+ *
4236
+ * @param {string|Object} data - Specifies the data that needs to be added to the request.
4237
+ * @returns {Promise<Response>} - Returns the response to a request.
4238
+ */
4239
+ Fetch.prototype.send = function (data) {
4240
+ var _this = this;
4241
+ var contentTypes = {
4242
+ 'application/json': 'json',
4243
+ 'multipart/form-data': 'formData',
4244
+ 'application/octet-stream': 'blob',
4245
+ 'application/x-www-form-urlencoded': 'formData'
4246
+ };
4247
+ try {
4248
+ if (isNullOrUndefined(this.fetchRequest) && this.type === 'GET') {
4249
+ this.fetchRequest = new Request(this.url, { method: this.type });
4250
+ }
4251
+ else if (isNullOrUndefined(this.fetchRequest)) {
4252
+ this.data = !isNullOrUndefined(data) ? data : this.data;
4253
+ this.fetchRequest = new Request(this.url, {
4254
+ method: this.type,
4255
+ headers: { 'Content-Type': this.contentType },
4256
+ body: this.data
4257
+ });
4258
+ }
4259
+ var eventArgs = { cancel: false, fetchRequest: this.fetchRequest };
4260
+ this.triggerEvent(this['beforeSend'], eventArgs);
4261
+ if (eventArgs.cancel) {
4262
+ return null;
4263
+ }
4264
+ this.fetchResponse = fetch(this.fetchRequest);
4265
+ return this.fetchResponse.then(function (response) {
4266
+ _this.triggerEvent(_this['onLoad'], response);
4267
+ if (!response.ok) {
4268
+ throw new Error(response.statusText);
4269
+ }
4270
+ var responseType = 'text';
4271
+ for (var _i = 0, _a = Object.keys(contentTypes); _i < _a.length; _i++) {
4272
+ var key = _a[_i];
4273
+ if (response.headers.get('Content-Type').indexOf(key) !== -1) {
4274
+ responseType = contentTypes[key];
4275
+ }
4276
+ }
4277
+ return response[responseType]();
4278
+ // eslint-disable-next-line
4279
+ }).then(function (data) {
4280
+ _this.triggerEvent(_this['onSuccess'], data, _this);
4281
+ return data;
4282
+ // eslint-disable-next-line
4283
+ }).catch(function (error) {
4284
+ var returnVal = {};
4285
+ if (_this.emitError) {
4286
+ _this.triggerEvent(_this['onFailure'], error);
4287
+ returnVal = Promise.reject(error);
4288
+ }
4289
+ return returnVal;
4290
+ });
4291
+ }
4292
+ catch (error) {
4293
+ return error;
4294
+ }
4295
+ };
4296
+ Fetch.prototype.triggerEvent = function (callback, data, instance) {
4297
+ if (!isNullOrUndefined(callback) && typeof callback === 'function') {
4298
+ callback(data, instance);
4299
+ }
4300
+ };
4301
+ return Fetch;
4302
+ }());
4303
+
4182
4304
  var REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;
4183
4305
  var REGX_IE = /msie|trident/i;
4184
4306
  var REGX_IE11 = /Trident\/7\./;
@@ -4312,7 +4434,7 @@ var Browser = /** @__PURE__ @class */ (function () {
4312
4434
  */
4313
4435
  Browser.getValue = function (key, regX) {
4314
4436
  var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};
4315
- if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {
4437
+ if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true && !REGX_BROWSER.CHROME.test(navigator.userAgent)) {
4316
4438
  browserDetails['isIos'] = true;
4317
4439
  browserDetails['isDevice'] = true;
4318
4440
  browserDetails['isTouch'] = true;
@@ -6822,8 +6944,8 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6822
6944
  function LicenseValidator(key) {
6823
6945
  this.isValidated = false;
6824
6946
  this.isLicensed = true;
6825
- this.version = '21';
6826
- this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats/i;
6947
+ this.version = '22';
6948
+ this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/i;
6827
6949
  this.errors = {
6828
6950
  noLicense: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
6829
6951
  ' To remove the license validation message permanently, a valid license key must be included.</span>',
@@ -6924,7 +7046,7 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6924
7046
  }
6925
7047
  }
6926
7048
  if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {
6927
- accountURL = (validateURL && validateURL !== '') ? validateURL : "https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjE=";
7049
+ accountURL = (validateURL && validateURL !== '') ? validateURL : "https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjI=";
6928
7050
  var errorDiv = createElement('div', {
6929
7051
  innerHTML: "<img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5OV80KSI+CjxwYXRoIGQ9Ik0xMiAyMUMxNi45NzA2IDIxIDIxIDE2Ljk3MDYgMjEgMTJDMjEgNy4wMjk0NCAxNi45NzA2IDMgMTIgM0M3LjAyOTQ0IDMgMyA3LjAyOTQ0IDMgMTJDMyAxNi45NzA2IDcuMDI5NDQgMjEgMTIgMjFaIiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBmaWxsPSIjNjE2MDYzIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS44MTI1IDlDMTIuNDMzOCA5IDEyLjkzNzUgOC40OTYzMiAxMi45Mzc1IDcuODc1QzEyLjkzNzUgNy4yNTM2OCAxMi40MzM4IDYuNzUgMTEuODEyNSA2Ljc1QzExLjE5MTIgNi43NSAxMC42ODc1IDcuMjUzNjggMTAuNjg3NSA3Ljg3NUMxMC42ODc1IDguNDk2MzIgMTEuMTkxMiA5IDExLjgxMjUgOVoiIGZpbGw9IiM3MzczNzMiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTlfNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K' style=\"top: 6px;\n position: absolute;\n left: 16px;\n width: 24px;\n height: 24px;\"/>" + validateMsg + ' ' + '<a style="text-decoration: none;color: #0D6EFD;font-weight: 500;" href=' + accountURL + '>Claim your free account</a>'
6930
7052
  });
@@ -7962,6 +8084,9 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7962
8084
  var dTop = this.position.top - this.diffY;
7963
8085
  var styles = getComputedStyle(helperElement);
7964
8086
  if (this.dragArea) {
8087
+ if (this.enableAutoScroll) {
8088
+ this.setDragArea();
8089
+ }
7965
8090
  if (this.pageX !== pagex || this.skipDistanceCheck) {
7966
8091
  var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)
7967
8092
  + parseFloat(styles.marginRight));
@@ -9300,20 +9425,25 @@ var WINDOWFUNC = /\window\./gm;
9300
9425
  /**
9301
9426
  * Compile the template string into template function.
9302
9427
  *
9303
- * @param {string} template - The template string which is going to convert.
9428
+ * @param {string | Function} template - The template string which is going to convert.
9304
9429
  * @param {Object} helper - Helper functions as an object.
9305
9430
  * @param {boolean} ignorePrefix ?
9306
9431
  * @returns {string} ?
9307
9432
  * @private
9308
9433
  */
9309
9434
  function compile$1(template, helper, ignorePrefix) {
9310
- var argName = 'data';
9311
- var evalExpResult = evalExp(template, argName, helper, ignorePrefix);
9312
- // eslint-disable-next-line
9313
- var condtion = "var valueRegEx = (/value=\\'([A-Za-z0-9 _]*)((.)([\\w)(!-;?-\u25A0\\s]+)['])/g);\n var hrefRegex = (/(?:href)([\\s='\"./]+)([\\w-./?=&\\\\#\"]+)((.)([\\w)(!-;/?-\u25A0\\s]+)['])/g);\n if(str.match(valueRegEx)){\n var check = str.match(valueRegEx);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n str = str.replace(str, str1);\n }\n else if (str.match(/(?:href='')/) === null) {\n if(str.match(hrefRegex)) {\n var check = str.match(hrefRegex);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\n if (check1) {\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n }\n str = str.replace(str, str1);\n }\n }\n ";
9314
- var fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';
9315
- var fn = new Function(argName, fnCode);
9316
- return fn.bind(helper);
9435
+ if (typeof template === 'function') {
9436
+ return template;
9437
+ }
9438
+ else {
9439
+ var argName = 'data';
9440
+ var evalExpResult = evalExp(template, argName, helper, ignorePrefix);
9441
+ // eslint-disable-next-line
9442
+ var condtion = "var valueRegEx = (/value=\\'([A-Za-z0-9 _]*)((.)([\\w)(!-;?-\u25A0\\s]+)['])/g);\n var hrefRegex = (/(?:href)([\\s='\"./]+)([\\w-./?=&\\\\#\"]+)((.)([\\w)(!-;/?-\u25A0\\s]+)['])/g);\n if(str.match(valueRegEx)){\n var check = str.match(valueRegEx);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n str = str.replace(str, str1);\n }\n else if (str.match(/(?:href='')/) === null) {\n if(str.match(hrefRegex)) {\n var check = str.match(hrefRegex);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\n if (check1) {\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n }\n str = str.replace(str, str1);\n }\n }\n ";
9443
+ var fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';
9444
+ var fn = new Function(argName, fnCode);
9445
+ return fn.bind(helper);
9446
+ }
9317
9447
  }
9318
9448
  /** function used to evaluate the function expression
9319
9449
  *
@@ -9440,7 +9570,7 @@ function evalExp(str, nameSpace, helper, ignorePrefix) {
9440
9570
  * @returns {string} ?
9441
9571
  */
9442
9572
  function addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {
9443
- return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix) ? nameSpace + '.' + str : str);
9573
+ return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !== "true" && str !== "false") ? nameSpace + '.' + str : str);
9444
9574
  }
9445
9575
  /**
9446
9576
  *
@@ -9527,7 +9657,7 @@ function getRandomId() {
9527
9657
  /**
9528
9658
  * Compile the template string into template function.
9529
9659
  *
9530
- * @param {string} templateString - The template string which is going to convert.
9660
+ * @param {string | Function} templateString - The template string which is going to convert.
9531
9661
  * @param {Object} helper - Helper functions as an object.
9532
9662
  * @param {boolean} ignorePrefix ?
9533
9663
  * @returns {NodeList} ?
@@ -9655,6 +9785,26 @@ function setTemplateEngine(classObj) {
9655
9785
  function getTemplateEngine() {
9656
9786
  return engineObj.compile;
9657
9787
  }
9788
+ /**
9789
+ * Set the current template function to support Content Security Policy.
9790
+ *
9791
+ * @param {Function} template - The template function that is going to render.
9792
+ * @param {any} helper - The data utilized by the template from the helper.
9793
+ * @returns {Function} ?
9794
+ * @private
9795
+ */
9796
+ function initializeCSPTemplate(template, helper) {
9797
+ var boundFunc;
9798
+ template.prototype.CSPTemplate = true;
9799
+ if (!isNullOrUndefined(helper)) {
9800
+ boundFunc = template.bind(helper);
9801
+ boundFunc.prototype = Object.create(template.prototype);
9802
+ }
9803
+ else {
9804
+ boundFunc = template;
9805
+ }
9806
+ return boundFunc;
9807
+ }
9658
9808
  //Default Engine Class
9659
9809
  var Engine = /** @__PURE__ @class */ (function () {
9660
9810
  function Engine() {
@@ -9860,5 +10010,5 @@ var SanitizeHtmlHelper = /** @__PURE__ @class */ (function () {
9860
10010
  * Base modules
9861
10011
  */
9862
10012
 
9863
- export { blazorCultureFormats, IntlBase, Ajax, Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation, Base, getComponent, removeChildInstance, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event$1 as Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, HijriParser, blazorTemplates, getRandomId, compile$$1 as compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper, componentList, registerLicense, validateLicense, getVersion, createLicenseOverlay };
10013
+ export { blazorCultureFormats, IntlBase, Ajax, Fetch, Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation, Base, getComponent, removeChildInstance, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event$1 as Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, HijriParser, blazorTemplates, getRandomId, compile$$1 as compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, initializeCSPTemplate, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper, componentList, registerLicense, validateLicense, getVersion, createLicenseOverlay };
9864
10014
  //# sourceMappingURL=ej2-base.es5.js.map