@syncfusion/ej2-base 24.2.7 → 25.1.35
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 +0 -36
- package/bin/syncfusion-license.js +1 -1
- package/dist/ej2-base.min.js +2 -2
- package/dist/ej2-base.umd.min.js +2 -2
- package/dist/ej2-base.umd.min.js.map +1 -1
- package/dist/es6/ej2-base.es2015.js +121 -52
- package/dist/es6/ej2-base.es2015.js.map +1 -1
- package/dist/es6/ej2-base.es5.js +114 -43
- package/dist/es6/ej2-base.es5.js.map +1 -1
- package/dist/global/ej2-base.min.js +2 -2
- package/dist/global/ej2-base.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/e2e/protractor.config.js +58 -1
- package/package.json +59 -8
- package/src/ajax.js +0 -1
- package/src/animation.d.ts +6 -6
- package/src/animation.js +6 -6
- package/src/base.d.ts +2 -1
- package/src/base.js +9 -7
- package/src/component.d.ts +9 -3
- package/src/component.js +33 -2
- package/src/draggable.d.ts +2 -0
- package/src/draggable.js +26 -10
- package/src/event-handler.js +2 -1
- package/src/intl/date-parser.js +1 -0
- package/src/intl/intl-base.js +0 -8
- package/src/intl/number-formatter.d.ts +3 -0
- package/src/intl/number-formatter.js +7 -7
- package/src/intl/number-parser.js +1 -0
- package/src/module-loader.d.ts +12 -0
- package/src/module-loader.js +11 -0
- package/src/notify-property-change.js +3 -2
- package/src/observer.js +2 -0
- package/src/sanitize-helper.js +5 -0
- package/src/template-engine.js +1 -0
- package/src/template.js +3 -2
- package/src/validate-lic.d.ts +1 -1
- package/src/validate-lic.js +7 -5
- package/styles/_bds-dark-definition.scss +15 -0
- package/styles/_bds-definition.scss +15 -0
- package/styles/bootstrap-dark.css +10 -1
- package/styles/bootstrap.css +10 -1
- package/styles/bootstrap4.css +10 -1
- package/styles/bootstrap5-dark.css +10 -1
- package/styles/bootstrap5.css +10 -1
- package/styles/definition/_bds-dark.scss +1178 -0
- package/styles/definition/_bds.scss +1458 -0
- package/styles/fabric-dark.css +10 -1
- package/styles/fabric.css +10 -1
- package/styles/fluent-dark.css +10 -1
- package/styles/fluent.css +10 -1
- package/styles/highcontrast-light.css +10 -1
- package/styles/highcontrast.css +10 -1
- package/styles/material-dark.css +10 -1
- package/styles/material.css +10 -1
- package/styles/material3-dark.css +10 -1
- package/styles/material3.css +10 -1
- package/styles/offline-theme/material-dark.css +10 -1
- package/styles/offline-theme/material.css +10 -1
- package/styles/offline-theme/tailwind-dark.css +10 -1
- package/styles/offline-theme/tailwind.css +10 -1
- package/styles/tailwind-dark.css +10 -1
- package/styles/tailwind.css +10 -1
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -60
- package/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -42
|
@@ -1548,6 +1548,7 @@ class NumberFormat {
|
|
|
1548
1548
|
* @param {number} value ?
|
|
1549
1549
|
* @param {base.GenericFormatOptions} fOptions ?
|
|
1550
1550
|
* @param {CommonOptions} dOptions ?
|
|
1551
|
+
* @param {NumberFormatOptions} [option] ?
|
|
1551
1552
|
* @returns {string} ?
|
|
1552
1553
|
*/
|
|
1553
1554
|
static intNumberFormatter(value, fOptions, dOptions, option) {
|
|
@@ -1599,7 +1600,7 @@ class NumberFormat {
|
|
|
1599
1600
|
fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper$1[4]]);
|
|
1600
1601
|
}
|
|
1601
1602
|
fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper$1[3]]);
|
|
1602
|
-
fValue = curData.format ===
|
|
1603
|
+
fValue = curData.format === '#,###,,;(#,###,,)' ? this.customPivotFormat(parseInt(fValue, 10)) : fValue;
|
|
1603
1604
|
if (curData.useGrouping) {
|
|
1604
1605
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
1605
1606
|
fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper$1[3]] || '.', curData.groupData.secondary);
|
|
@@ -1671,6 +1672,7 @@ class NumberFormat {
|
|
|
1671
1672
|
* @param {number} value ?
|
|
1672
1673
|
* @param {number} min ?
|
|
1673
1674
|
* @param {number} max ?
|
|
1675
|
+
* @param {NumberFormatOptions} [option] ?
|
|
1674
1676
|
* @returns {string} ?
|
|
1675
1677
|
*/
|
|
1676
1678
|
static processFraction(value, min, max, option) {
|
|
@@ -1722,16 +1724,18 @@ class NumberFormat {
|
|
|
1722
1724
|
* Returns custom format for pivot table
|
|
1723
1725
|
*
|
|
1724
1726
|
* @param {number} value ?
|
|
1727
|
+
* @returns {string} ?
|
|
1725
1728
|
*/
|
|
1726
1729
|
static customPivotFormat(value) {
|
|
1727
1730
|
if (value >= 500000) {
|
|
1728
1731
|
value /= 1000000;
|
|
1729
|
-
|
|
1732
|
+
// eslint-disable-next-line
|
|
1733
|
+
const [integer, decimal] = value.toString().split('.');
|
|
1730
1734
|
return decimal && +decimal.substring(0, 1) >= 5
|
|
1731
1735
|
? Math.ceil(value).toString()
|
|
1732
1736
|
: Math.floor(value).toString();
|
|
1733
1737
|
}
|
|
1734
|
-
return
|
|
1738
|
+
return '';
|
|
1735
1739
|
}
|
|
1736
1740
|
}
|
|
1737
1741
|
|
|
@@ -2069,6 +2073,7 @@ class DateParser {
|
|
|
2069
2073
|
// eslint-disable-next-line
|
|
2070
2074
|
matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))
|
|
2071
2075
|
? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;
|
|
2076
|
+
// eslint-disable-next-line
|
|
2072
2077
|
matchString = ((prop !== 'month') && (prop === 'designator') && parseOptions.culture && parseOptions.culture.indexOf('en-') !== -1 && cultureOptions.indexOf(parseOptions.culture) === -1)
|
|
2073
2078
|
? matchString.toLowerCase() : matchString;
|
|
2074
2079
|
// eslint-disable-next-line
|
|
@@ -2146,6 +2151,7 @@ class DateParser {
|
|
|
2146
2151
|
}
|
|
2147
2152
|
|
|
2148
2153
|
const regExp$1 = RegExp;
|
|
2154
|
+
// eslint-disable-next-line
|
|
2149
2155
|
const parseRegex = new regExp$1('^([^0-9]*)' + '(([0-9,]*[0-9]+)(\.[0-9]+)?)' + '([Ee][+-]?[0-9]+)?([^0-9]*)$');
|
|
2150
2156
|
const groupRegex = /,/g;
|
|
2151
2157
|
const keys = ['minusSign', 'infinity'];
|
|
@@ -2444,10 +2450,12 @@ class Observer {
|
|
|
2444
2450
|
* @returns {void} ?
|
|
2445
2451
|
*/
|
|
2446
2452
|
offIntlEvents() {
|
|
2447
|
-
|
|
2453
|
+
// eslint-disable-next-line
|
|
2454
|
+
const eventsArr = this.boundedEvents['notifyExternalChange'];
|
|
2448
2455
|
if (eventsArr) {
|
|
2449
2456
|
for (let i = 0; i < eventsArr.length; i++) {
|
|
2450
|
-
|
|
2457
|
+
// eslint-disable-next-line
|
|
2458
|
+
const curContext = eventsArr[`${i}`].context;
|
|
2451
2459
|
if (curContext && curContext.detectFunction && curContext.randomId && !curContext.isRendered) {
|
|
2452
2460
|
this.off('notifyExternalChange', curContext.detectFunction, curContext.randomId);
|
|
2453
2461
|
i--;
|
|
@@ -3534,7 +3542,6 @@ var IntlBase;
|
|
|
3534
3542
|
const ret = {};
|
|
3535
3543
|
const pattern = matches[1].toUpperCase();
|
|
3536
3544
|
ret.isAccount = (pattern === 'A');
|
|
3537
|
-
// eslint-disable-next-line
|
|
3538
3545
|
ret.type = IntlBase.patternMatcher[pattern];
|
|
3539
3546
|
if (skeleton.length > 1) {
|
|
3540
3547
|
ret.fractionDigits = parseInt(matches[2], 10);
|
|
@@ -3622,7 +3629,6 @@ var IntlBase;
|
|
|
3622
3629
|
const formatSplit = format.split(';');
|
|
3623
3630
|
const data = ['pData', 'nData', 'zeroData'];
|
|
3624
3631
|
for (let i = 0; i < formatSplit.length; i++) {
|
|
3625
|
-
// eslint-disable-next-line
|
|
3626
3632
|
options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);
|
|
3627
3633
|
}
|
|
3628
3634
|
if (isNullOrUndefined(options.nData)) {
|
|
@@ -3682,7 +3688,6 @@ var IntlBase;
|
|
|
3682
3688
|
if (!isNullOrUndefined(numObject)) {
|
|
3683
3689
|
const symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);
|
|
3684
3690
|
if (cOptions.useGrouping) {
|
|
3685
|
-
// eslint-disable-next-line
|
|
3686
3691
|
cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];
|
|
3687
3692
|
cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);
|
|
3688
3693
|
}
|
|
@@ -3707,9 +3712,7 @@ var IntlBase;
|
|
|
3707
3712
|
const part = parts[parseInt(i.toString(), 10)];
|
|
3708
3713
|
const loc = part.indexOf(actual);
|
|
3709
3714
|
if ((loc !== -1) && ((loc < part.indexOf('\'')) || (loc > part.lastIndexOf('\'')))) {
|
|
3710
|
-
// eslint-disable-next-line
|
|
3711
3715
|
options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);
|
|
3712
|
-
// eslint-disable-next-line
|
|
3713
3716
|
options[typeMapper[actual]] = true;
|
|
3714
3717
|
options.type = options.isCurrency ? 'currency' : 'percent';
|
|
3715
3718
|
break;
|
|
@@ -3748,7 +3751,6 @@ var IntlBase;
|
|
|
3748
3751
|
let actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);
|
|
3749
3752
|
if (isExcelFormat) {
|
|
3750
3753
|
actualPattern = actualPattern.replace(patternRegex, (pattern) => {
|
|
3751
|
-
// eslint-disable-next-line
|
|
3752
3754
|
return patternMatch[pattern];
|
|
3753
3755
|
});
|
|
3754
3756
|
if (actualPattern.indexOf('z') !== -1) {
|
|
@@ -3781,10 +3783,8 @@ var IntlBase;
|
|
|
3781
3783
|
* @param {any} option ?
|
|
3782
3784
|
* @returns {any} ?
|
|
3783
3785
|
*/
|
|
3784
|
-
// eslint-disable-next-line
|
|
3785
3786
|
function processSymbol(actual, option) {
|
|
3786
3787
|
if (actual.indexOf(',') !== -1) {
|
|
3787
|
-
// eslint-disable-next-line
|
|
3788
3788
|
let split = actual.split(',');
|
|
3789
3789
|
actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +
|
|
3790
3790
|
split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));
|
|
@@ -4081,7 +4081,6 @@ class Ajax {
|
|
|
4081
4081
|
if (!isNullOrUndefined(this.onUploadProgress)) {
|
|
4082
4082
|
this.httpRequest.upload.onprogress = this.onUploadProgress;
|
|
4083
4083
|
}
|
|
4084
|
-
// eslint-disable-next-line
|
|
4085
4084
|
this.httpRequest.open(this.type, this.url, this.mode);
|
|
4086
4085
|
// Set default headers
|
|
4087
4086
|
if (!isNullOrUndefined(this.data) && this.contentType !== null) {
|
|
@@ -4696,7 +4695,8 @@ class EventHandler {
|
|
|
4696
4695
|
// eslint-disable-next-line
|
|
4697
4696
|
copyData = extend([], copyData, eventData);
|
|
4698
4697
|
for (let i = 0; i < copyData.length; i++) {
|
|
4699
|
-
|
|
4698
|
+
const parseValue = copyData[parseInt(i.toString(), 10)];
|
|
4699
|
+
element.removeEventListener(parseValue.name, parseValue.debounce);
|
|
4700
4700
|
eventData.shift();
|
|
4701
4701
|
}
|
|
4702
4702
|
}
|
|
@@ -5436,12 +5436,13 @@ class Base {
|
|
|
5436
5436
|
destroy() {
|
|
5437
5437
|
// eslint-disable-next-line
|
|
5438
5438
|
this.element.ej2_instances =
|
|
5439
|
-
this.element.ej2_instances ?
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
5439
|
+
this.element.ej2_instances ?
|
|
5440
|
+
this.element.ej2_instances.filter((i) => {
|
|
5441
|
+
if (proxyToRaw) {
|
|
5442
|
+
return proxyToRaw(i) !== proxyToRaw(this);
|
|
5443
|
+
}
|
|
5444
|
+
return i !== this;
|
|
5445
|
+
})
|
|
5445
5446
|
: [];
|
|
5446
5447
|
removeClass([this.element], ['e-' + this.getModuleName()]);
|
|
5447
5448
|
if (this.element.ej2_instances.length === 0) {
|
|
@@ -5503,7 +5504,7 @@ function removeChildInstance(element) {
|
|
|
5503
5504
|
}
|
|
5504
5505
|
}
|
|
5505
5506
|
let proxyToRaw;
|
|
5506
|
-
|
|
5507
|
+
const setProxyToRaw = (toRaw) => { proxyToRaw = toRaw; };
|
|
5507
5508
|
|
|
5508
5509
|
/**
|
|
5509
5510
|
* Returns the Class Object
|
|
@@ -5745,8 +5746,9 @@ function complexArrayDefinedCallback(dFunc, curKey, type, prop) {
|
|
|
5745
5746
|
switch (dFunc) {
|
|
5746
5747
|
case 'push':
|
|
5747
5748
|
for (let i = 0; i < newValue.length; i++) {
|
|
5748
|
-
|
|
5749
|
-
|
|
5749
|
+
const newValueParse = newValue[parseInt(i.toString(), 10)];
|
|
5750
|
+
Array.prototype[`${dFunc}`].apply(prop, [newValueParse]);
|
|
5751
|
+
const model = getArrayModel(keyString + (prop.length - 1), newValueParse, !this.controlParent, dFunc);
|
|
5750
5752
|
this.serverDataBind(model, newValue[parseInt(i.toString(), 10)], false, dFunc);
|
|
5751
5753
|
}
|
|
5752
5754
|
break;
|
|
@@ -6513,16 +6515,16 @@ function setGlobalAnimation(value) {
|
|
|
6513
6515
|
var GlobalAnimationMode;
|
|
6514
6516
|
(function (GlobalAnimationMode) {
|
|
6515
6517
|
/**
|
|
6516
|
-
|
|
6517
|
-
|
|
6518
|
+
* Defines the global animation mode as Default. Animation is enabled or disabled based on the component's animation settings.
|
|
6519
|
+
*/
|
|
6518
6520
|
GlobalAnimationMode["Default"] = "Default";
|
|
6519
6521
|
/**
|
|
6520
|
-
|
|
6521
|
-
|
|
6522
|
+
* Defines the global animation mode as Enable. Enables the animation for all components, regardless of the individual component's animation settings.
|
|
6523
|
+
*/
|
|
6522
6524
|
GlobalAnimationMode["Enable"] = "Enable";
|
|
6523
6525
|
/**
|
|
6524
|
-
|
|
6525
|
-
|
|
6526
|
+
* Defines the global animation mode as Disable. Disables the animation for all components, regardless of the individual component's animation settings.
|
|
6527
|
+
*/
|
|
6526
6528
|
GlobalAnimationMode["Disable"] = "Disable";
|
|
6527
6529
|
})(GlobalAnimationMode || (GlobalAnimationMode = {}));
|
|
6528
6530
|
|
|
@@ -6584,6 +6586,16 @@ class ModuleLoader {
|
|
|
6584
6586
|
}
|
|
6585
6587
|
this.loadedModules = [];
|
|
6586
6588
|
}
|
|
6589
|
+
/**
|
|
6590
|
+
* Returns the array of modules that are not loaded in the component library.
|
|
6591
|
+
*
|
|
6592
|
+
* @param {ModuleDeclaration[]} requiredModules - Array of modules to be required
|
|
6593
|
+
* @returns {ModuleDeclaration[]} ?
|
|
6594
|
+
* @private
|
|
6595
|
+
*/
|
|
6596
|
+
getNonInjectedModules(requiredModules) {
|
|
6597
|
+
return requiredModules.filter((module) => !this.isModuleLoaded(module.member));
|
|
6598
|
+
}
|
|
6587
6599
|
/**
|
|
6588
6600
|
* Removes all unused modules
|
|
6589
6601
|
*
|
|
@@ -6802,7 +6814,7 @@ class ChildProperty {
|
|
|
6802
6814
|
}
|
|
6803
6815
|
}
|
|
6804
6816
|
|
|
6805
|
-
|
|
6817
|
+
const componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];
|
|
6806
6818
|
const bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,
|
|
6807
6819
|
111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,
|
|
6808
6820
|
105, 100, 97, 116, 101, 100];
|
|
@@ -6816,7 +6828,7 @@ class LicenseValidator {
|
|
|
6816
6828
|
constructor(key) {
|
|
6817
6829
|
this.isValidated = false;
|
|
6818
6830
|
this.isLicensed = true;
|
|
6819
|
-
this.version = '
|
|
6831
|
+
this.version = '25';
|
|
6820
6832
|
this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/i;
|
|
6821
6833
|
this.errors = {
|
|
6822
6834
|
noLicense: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
|
|
@@ -6869,11 +6881,13 @@ class LicenseValidator {
|
|
|
6869
6881
|
}
|
|
6870
6882
|
/**
|
|
6871
6883
|
* To validate the provided license key.
|
|
6872
|
-
|
|
6884
|
+
*
|
|
6885
|
+
* @returns {boolean} ?
|
|
6886
|
+
*/
|
|
6873
6887
|
validate() {
|
|
6874
|
-
|
|
6888
|
+
const contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
|
|
6875
6889
|
108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];
|
|
6876
|
-
|
|
6890
|
+
const URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
|
|
6877
6891
|
99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];
|
|
6878
6892
|
if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {
|
|
6879
6893
|
let validateMsg;
|
|
@@ -6907,7 +6921,7 @@ class LicenseValidator {
|
|
|
6907
6921
|
}
|
|
6908
6922
|
}
|
|
6909
6923
|
else {
|
|
6910
|
-
|
|
6924
|
+
const licenseContent = getValue(convertToChar(contentKey), containerObject);
|
|
6911
6925
|
validateURL = getValue(convertToChar(URLKey), containerObject);
|
|
6912
6926
|
if (licenseContent && licenseContent !== '') {
|
|
6913
6927
|
validateMsg = licenseContent;
|
|
@@ -6917,7 +6931,7 @@ class LicenseValidator {
|
|
|
6917
6931
|
}
|
|
6918
6932
|
}
|
|
6919
6933
|
if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {
|
|
6920
|
-
accountURL = (validateURL && validateURL !== '') ? validateURL :
|
|
6934
|
+
accountURL = (validateURL && validateURL !== '') ? validateURL : 'https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjU=&utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information';
|
|
6921
6935
|
const errorDiv = createElement('div', {
|
|
6922
6936
|
innerHTML: `<img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5OV80KSI+CjxwYXRoIGQ9Ik0xMiAyMUMxNi45NzA2IDIxIDIxIDE2Ljk3MDYgMjEgMTJDMjEgNy4wMjk0NCAxNi45NzA2IDMgMTIgM0M3LjAyOTQ0IDMgMyA3LjAyOTQ0IDMgMTJDMyAxNi45NzA2IDcuMDI5NDQgMjEgMTIgMjFaIiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBmaWxsPSIjNjE2MDYzIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS44MTI1IDlDMTIuNDMzOCA5IDEyLjkzNzUgOC40OTYzMiAxMi45Mzc1IDcuODc1QzEyLjkzNzUgNy4yNTM2OCAxMi40MzM4IDYuNzUgMTEuODEyNSA2Ljc1QzExLjE5MTIgNi43NSAxMC42ODc1IDcuMjUzNjggMTAuNjg3NSA3Ljg3NUMxMC42ODc1IDguNDk2MzIgMTEuMTkxMiA5IDExLjgxMjUgOVoiIGZpbGw9IiM3MzczNzMiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTlfNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K' style="top: 6px;
|
|
6923
6937
|
position: absolute;
|
|
@@ -6997,7 +7011,7 @@ class LicenseValidator {
|
|
|
6997
7011
|
const charKey = decodeStr[decodeStr.length - 1];
|
|
6998
7012
|
const decryptedKey = [];
|
|
6999
7013
|
for (let i = 0; i < decodeStr.length; i++) {
|
|
7000
|
-
decryptedKey[
|
|
7014
|
+
decryptedKey[`${i}`] = decodeStr[`${i}`].charCodeAt(0) - charKey.charCodeAt(0);
|
|
7001
7015
|
}
|
|
7002
7016
|
for (let i = 0; i < decryptedKey.length; i++) {
|
|
7003
7017
|
buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);
|
|
@@ -7034,7 +7048,7 @@ let licenseValidator = new LicenseValidator();
|
|
|
7034
7048
|
* Converts the given number to characters.
|
|
7035
7049
|
*
|
|
7036
7050
|
* @param {number} cArr - Specifies the license key as number.
|
|
7037
|
-
* @returns {string}
|
|
7051
|
+
* @returns {string} ?
|
|
7038
7052
|
*/
|
|
7039
7053
|
function convertToChar(cArr) {
|
|
7040
7054
|
let ret = '';
|
|
@@ -7063,7 +7077,7 @@ const getVersion = () => {
|
|
|
7063
7077
|
};
|
|
7064
7078
|
// Method for create overlay over the sample
|
|
7065
7079
|
const createLicenseOverlay = () => {
|
|
7066
|
-
|
|
7080
|
+
const bannerTemplate = `
|
|
7067
7081
|
<div style="
|
|
7068
7082
|
position: fixed;
|
|
7069
7083
|
width: 100%;
|
|
@@ -7257,7 +7271,7 @@ let Component = class Component extends Base {
|
|
|
7257
7271
|
// tslint:disable-next-line:no-function-constructor-with-string-args
|
|
7258
7272
|
onIntlChange.on('notifyExternalChange', this.detectFunction, this, this.randomId);
|
|
7259
7273
|
// Based on the considered control list we have count the instance
|
|
7260
|
-
if (typeof window !==
|
|
7274
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined' && !validateLicense()) {
|
|
7261
7275
|
if (componentList.indexOf(this.getModuleName()) !== -1) {
|
|
7262
7276
|
instancecount = instancecount + 1;
|
|
7263
7277
|
if (instancecount > 5) {
|
|
@@ -7347,6 +7361,8 @@ let Component = class Component extends Base {
|
|
|
7347
7361
|
}
|
|
7348
7362
|
/**
|
|
7349
7363
|
* Adding unload event to persist data when enable persistence true
|
|
7364
|
+
*
|
|
7365
|
+
* @returns {void}
|
|
7350
7366
|
*/
|
|
7351
7367
|
attachUnloadEvent() {
|
|
7352
7368
|
this.handleUnload = this.handleUnload.bind(this);
|
|
@@ -7354,12 +7370,16 @@ let Component = class Component extends Base {
|
|
|
7354
7370
|
}
|
|
7355
7371
|
/**
|
|
7356
7372
|
* Handling unload event to persist data when enable persistence true
|
|
7373
|
+
*
|
|
7374
|
+
* @returns {void}
|
|
7357
7375
|
*/
|
|
7358
7376
|
handleUnload() {
|
|
7359
7377
|
this.setPersistData();
|
|
7360
7378
|
}
|
|
7361
7379
|
/**
|
|
7362
7380
|
* Removing unload event to persist data when enable persistence true
|
|
7381
|
+
*
|
|
7382
|
+
* @returns {void}
|
|
7363
7383
|
*/
|
|
7364
7384
|
detachUnloadEvent() {
|
|
7365
7385
|
window.removeEventListener('unload', this.handleUnload);
|
|
@@ -7394,7 +7414,31 @@ let Component = class Component extends Base {
|
|
|
7394
7414
|
}
|
|
7395
7415
|
this.preRender();
|
|
7396
7416
|
this.injectModules();
|
|
7397
|
-
//
|
|
7417
|
+
// Throw a warning for the required modules to be injected.
|
|
7418
|
+
const ignoredComponents = {
|
|
7419
|
+
schedule: 'all',
|
|
7420
|
+
diagram: 'all',
|
|
7421
|
+
PdfViewer: 'all',
|
|
7422
|
+
grid: ['logger'],
|
|
7423
|
+
richtexteditor: ['link', 'table', 'image', 'audio', 'video', 'formatPainter', 'emojiPicker', 'pasteCleanup', 'htmlEditor', 'toolbar'],
|
|
7424
|
+
treegrid: ['filter'],
|
|
7425
|
+
gantt: ['tooltip'],
|
|
7426
|
+
chart: ['Export', 'Zoom'],
|
|
7427
|
+
accumulationchart: ['Export']
|
|
7428
|
+
};
|
|
7429
|
+
const component = this.getModuleName();
|
|
7430
|
+
if (this.requiredModules && (!ignoredComponents[`${component}`] || ignoredComponents[`${component}`] !== 'all')) {
|
|
7431
|
+
const modulesRequired = this.requiredModules();
|
|
7432
|
+
for (const module of this.moduleLoader.getNonInjectedModules(modulesRequired)) {
|
|
7433
|
+
const moduleName = module.name ? module.name : module.member;
|
|
7434
|
+
if (ignoredComponents[`${component}`] && ignoredComponents[`${component}`].indexOf(module.member) !== -1) {
|
|
7435
|
+
continue;
|
|
7436
|
+
}
|
|
7437
|
+
const componentName = component.charAt(0).toUpperCase() + component.slice(1); // To capitalize the component name
|
|
7438
|
+
console.warn(`[WARNING] :: Module "${moduleName}" is not available in ${componentName} component! You either misspelled the module name or forgot to load it.`);
|
|
7439
|
+
}
|
|
7440
|
+
}
|
|
7441
|
+
// Checked weather cases are valid or not. If control leads to more than five counts
|
|
7398
7442
|
if (!isvalid && !isBannerAdded) {
|
|
7399
7443
|
createLicenseOverlay();
|
|
7400
7444
|
isBannerAdded = true;
|
|
@@ -7805,6 +7849,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7805
7849
|
return this.getScrollableParent(element.parentNode, axis);
|
|
7806
7850
|
}
|
|
7807
7851
|
}
|
|
7852
|
+
/* eslint-disable */
|
|
7808
7853
|
getScrollableValues() {
|
|
7809
7854
|
this.parentScrollX = 0;
|
|
7810
7855
|
this.parentScrollY = 0;
|
|
@@ -7812,6 +7857,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7812
7857
|
const verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');
|
|
7813
7858
|
const horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');
|
|
7814
7859
|
}
|
|
7860
|
+
/* eslint-enable */
|
|
7815
7861
|
initialize(evt, curTarget) {
|
|
7816
7862
|
this.currentStateTarget = evt.target;
|
|
7817
7863
|
if (this.isDragStarted()) {
|
|
@@ -7825,6 +7871,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7825
7871
|
this.dragProcessStarted = false;
|
|
7826
7872
|
if (this.abort) {
|
|
7827
7873
|
/* tslint:disable no-any */
|
|
7874
|
+
// eslint-disable-next-line
|
|
7828
7875
|
let abortSelectors = this.abort;
|
|
7829
7876
|
if (typeof abortSelectors === 'string') {
|
|
7830
7877
|
abortSelectors = [abortSelectors];
|
|
@@ -7895,6 +7942,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7895
7942
|
}
|
|
7896
7943
|
/* istanbul ignore next */
|
|
7897
7944
|
if (this.isReplaceDragEle) {
|
|
7945
|
+
// eslint-disable-next-line
|
|
7898
7946
|
element = this.currentStateCheck(evt.target, element);
|
|
7899
7947
|
}
|
|
7900
7948
|
this.offset = this.calculateParentPosition(element);
|
|
@@ -8047,6 +8095,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8047
8095
|
}
|
|
8048
8096
|
}
|
|
8049
8097
|
if (flag) {
|
|
8098
|
+
// eslint-disable-next-line
|
|
8050
8099
|
eleObj.instance.dragData[this.scope] = this.droppables[this.scope];
|
|
8051
8100
|
eleObj.instance.intOver(evt, eleObj.target);
|
|
8052
8101
|
this.hoverObject = eleObj;
|
|
@@ -8125,7 +8174,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8125
8174
|
}
|
|
8126
8175
|
else {
|
|
8127
8176
|
if (this.dragArea) {
|
|
8128
|
-
|
|
8177
|
+
const isDialogEle = this.helperElement.classList.contains('e-dialog');
|
|
8129
8178
|
this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
|
|
8130
8179
|
draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);
|
|
8131
8180
|
draEleLeft = (left - iLeft) < 0 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :
|
|
@@ -8196,6 +8245,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8196
8245
|
elements = this.getPathElements(evt);
|
|
8197
8246
|
}
|
|
8198
8247
|
/* tslint:disable no-any */
|
|
8248
|
+
// eslint-disable-next-line
|
|
8199
8249
|
let scrollParent = this.getScrollParent(elements, false);
|
|
8200
8250
|
if (this.elementInViewport(this.helperElement)) {
|
|
8201
8251
|
this.getScrollPosition(scrollParent, draEleTop);
|
|
@@ -8218,8 +8268,10 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8218
8268
|
this.pageY = pagey;
|
|
8219
8269
|
}
|
|
8220
8270
|
/* tslint:disable no-any */
|
|
8271
|
+
// eslint-disable-next-line
|
|
8221
8272
|
getScrollParent(node, reverse) {
|
|
8222
8273
|
/* tslint:disable no-any */
|
|
8274
|
+
// eslint-disable-next-line
|
|
8223
8275
|
const nodeEl = reverse ? node.reverse() : node;
|
|
8224
8276
|
let hasScroll;
|
|
8225
8277
|
for (let i = nodeEl.length - 1; i >= 0; i--) {
|
|
@@ -8246,10 +8298,12 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8246
8298
|
}
|
|
8247
8299
|
}
|
|
8248
8300
|
else if (nodeEle && nodeEle !== document.scrollingElement) {
|
|
8249
|
-
|
|
8301
|
+
const docScrollTop = document.scrollingElement.scrollTop;
|
|
8302
|
+
const helperClientHeight = this.helperElement.clientHeight;
|
|
8303
|
+
if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - helperClientHeight + docScrollTop) < draEleTop) {
|
|
8250
8304
|
nodeEle.scrollTop += this.helperElement.clientHeight;
|
|
8251
8305
|
}
|
|
8252
|
-
else if (nodeEle.getBoundingClientRect().top > (draEleTop -
|
|
8306
|
+
else if (nodeEle.getBoundingClientRect().top > (draEleTop - helperClientHeight - docScrollTop)) {
|
|
8253
8307
|
nodeEle.scrollTop -= this.helperElement.clientHeight;
|
|
8254
8308
|
}
|
|
8255
8309
|
}
|
|
@@ -8301,6 +8355,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8301
8355
|
const eleObj = this.checkTargetElement(evt);
|
|
8302
8356
|
if (eleObj.target && eleObj.instance) {
|
|
8303
8357
|
eleObj.instance.dragStopCalled = true;
|
|
8358
|
+
// eslint-disable-next-line
|
|
8304
8359
|
eleObj.instance.dragData[this.scope] = this.droppables[this.scope];
|
|
8305
8360
|
eleObj.instance.intDrop(evt, eleObj.target);
|
|
8306
8361
|
}
|
|
@@ -8308,8 +8363,11 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8308
8363
|
document.body.classList.remove('e-prevent-select');
|
|
8309
8364
|
}
|
|
8310
8365
|
/**
|
|
8366
|
+
* @param {MouseEvent | TouchEvent} evt ?
|
|
8367
|
+
* @returns {void}
|
|
8311
8368
|
* @private
|
|
8312
8369
|
*/
|
|
8370
|
+
// eslint-disable-next-line
|
|
8313
8371
|
intDestroy(evt) {
|
|
8314
8372
|
this.dragProcessStarted = false;
|
|
8315
8373
|
this.toggleEvents();
|
|
@@ -8324,6 +8382,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8324
8382
|
}
|
|
8325
8383
|
}
|
|
8326
8384
|
// triggers when property changed
|
|
8385
|
+
// eslint-disable-next-line
|
|
8327
8386
|
onPropertyChanged(newProp, oldProp) {
|
|
8328
8387
|
//No Code to handle
|
|
8329
8388
|
}
|
|
@@ -8354,6 +8413,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8354
8413
|
eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;
|
|
8355
8414
|
eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;
|
|
8356
8415
|
const keys = ['Top', 'Left', 'Bottom', 'Right'];
|
|
8416
|
+
/* eslint-disable */
|
|
8357
8417
|
const styles = getComputedStyle(ele);
|
|
8358
8418
|
for (let i = 0; i < keys.length; i++) {
|
|
8359
8419
|
const key = keys[parseInt(i.toString(), 10)];
|
|
@@ -8363,6 +8423,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8363
8423
|
this.borderWidth[`${lowerKey}`] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);
|
|
8364
8424
|
this.padding[`${lowerKey}`] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);
|
|
8365
8425
|
}
|
|
8426
|
+
/* eslint-enable */
|
|
8366
8427
|
if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {
|
|
8367
8428
|
top = elementArea.top + document.scrollingElement.scrollTop;
|
|
8368
8429
|
}
|
|
@@ -8380,7 +8441,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8380
8441
|
const intCoord = this.getCoordinates(evt);
|
|
8381
8442
|
let ele;
|
|
8382
8443
|
const prevStyle = this.helperElement.style.pointerEvents || '';
|
|
8383
|
-
|
|
8444
|
+
const isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version, 10) > 12;
|
|
8384
8445
|
if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {
|
|
8385
8446
|
this.helperElement.style.pointerEvents = 'none';
|
|
8386
8447
|
ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);
|
|
@@ -8404,6 +8465,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8404
8465
|
}
|
|
8405
8466
|
getMousePosition(evt, isdragscroll) {
|
|
8406
8467
|
/* tslint:disable no-any */
|
|
8468
|
+
// eslint-disable-next-line
|
|
8407
8469
|
const dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;
|
|
8408
8470
|
const intCoord = this.getCoordinates(evt);
|
|
8409
8471
|
let pageX;
|
|
@@ -8421,10 +8483,11 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8421
8483
|
pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;
|
|
8422
8484
|
}
|
|
8423
8485
|
if (document.scrollingElement && (!isdragscroll && !this.clone)) {
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
8486
|
+
const ele = document.scrollingElement;
|
|
8487
|
+
const isVerticalScroll = ele.scrollHeight > 0 && ele.scrollHeight > ele.clientHeight && ele.scrollTop > 0;
|
|
8488
|
+
const isHorrizontalScroll = ele.scrollWidth > 0 && ele.scrollWidth > ele.clientWidth && ele.scrollLeft > 0;
|
|
8489
|
+
pageX = isHorrizontalScroll ? pageX - ele.scrollLeft : pageX;
|
|
8490
|
+
pageY = isVerticalScroll ? pageY - ele.scrollTop : pageY;
|
|
8428
8491
|
}
|
|
8429
8492
|
return {
|
|
8430
8493
|
left: pageX - (this.margin.left + this.cursorAt.left),
|
|
@@ -9362,7 +9425,7 @@ function compile$1(template, helper, ignorePrefix) {
|
|
|
9362
9425
|
else {
|
|
9363
9426
|
const argName = 'data';
|
|
9364
9427
|
const evalExpResult = evalExp(template, argName, helper, ignorePrefix);
|
|
9365
|
-
|
|
9428
|
+
/* eslint-disable */
|
|
9366
9429
|
const condtion = `var valueRegEx = (/value=\\'([A-Za-z0-9 _]*)((.)([\\w)(!-;?-■\\s]+)['])/g);
|
|
9367
9430
|
var hrefRegex = (/(?:href)([\\s='"./]+)([\\w-./?=&\\\\#"]+)((.)([\\w)(!-;/?-■\\s]+)['])/g);
|
|
9368
9431
|
if(str.match(valueRegEx)){
|
|
@@ -9393,6 +9456,7 @@ function compile$1(template, helper, ignorePrefix) {
|
|
|
9393
9456
|
}
|
|
9394
9457
|
`;
|
|
9395
9458
|
const fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';
|
|
9459
|
+
/* eslint-enable */
|
|
9396
9460
|
const fn = new Function(argName, fnCode);
|
|
9397
9461
|
return fn.bind(helper);
|
|
9398
9462
|
}
|
|
@@ -9539,7 +9603,7 @@ function evalExp(str, nameSpace, helper, ignorePrefix) {
|
|
|
9539
9603
|
* @returns {string} ?
|
|
9540
9604
|
*/
|
|
9541
9605
|
function addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {
|
|
9542
|
-
return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !==
|
|
9606
|
+
return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !== 'true' && str !== 'false') ? nameSpace + '.' + str : str);
|
|
9543
9607
|
}
|
|
9544
9608
|
/**
|
|
9545
9609
|
*
|
|
@@ -9761,6 +9825,7 @@ function getTemplateEngine() {
|
|
|
9761
9825
|
* @returns {Function} ?
|
|
9762
9826
|
* @private
|
|
9763
9827
|
*/
|
|
9828
|
+
// eslint-disable-next-line
|
|
9764
9829
|
function initializeCSPTemplate(template, helper) {
|
|
9765
9830
|
let boundFunc;
|
|
9766
9831
|
template.prototype.CSPTemplate = true;
|
|
@@ -9901,6 +9966,9 @@ class SanitizeHtmlHelper {
|
|
|
9901
9966
|
};
|
|
9902
9967
|
}
|
|
9903
9968
|
static sanitize(value) {
|
|
9969
|
+
if (isNullOrUndefined(value)) {
|
|
9970
|
+
return value;
|
|
9971
|
+
}
|
|
9904
9972
|
const item = this.beforeSanitize();
|
|
9905
9973
|
const output = this.serializeValue(item, value);
|
|
9906
9974
|
return output;
|
|
@@ -9915,6 +9983,7 @@ class SanitizeHtmlHelper {
|
|
|
9915
9983
|
this.removeXssAttrs();
|
|
9916
9984
|
const tempEleValue = this.wrapElement.innerHTML;
|
|
9917
9985
|
this.removeElement();
|
|
9986
|
+
this.wrapElement = null;
|
|
9918
9987
|
return tempEleValue.replace(/&/g, '&');
|
|
9919
9988
|
}
|
|
9920
9989
|
static removeElement() {
|