@syncfusion/ej2-querybuilder 19.4.53 → 19.4.55
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 +9 -0
- package/dist/ej2-querybuilder.umd.min.js +2 -2
- package/dist/ej2-querybuilder.umd.min.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es2015.js +56 -10
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +61 -11
- package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
- package/dist/global/ej2-querybuilder.min.js +2 -2
- package/dist/global/ej2-querybuilder.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +8 -8
- package/src/query-builder/query-builder.d.ts +1 -0
- package/src/query-builder/query-builder.js +61 -11
|
@@ -182,6 +182,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
182
182
|
_this.isFieldChange = false;
|
|
183
183
|
_this.isFieldClose = false;
|
|
184
184
|
_this.isDestroy = false;
|
|
185
|
+
_this.isGetNestedData = false;
|
|
185
186
|
MultiSelect.Inject(CheckBoxSelection);
|
|
186
187
|
return _this;
|
|
187
188
|
}
|
|
@@ -781,6 +782,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
781
782
|
*/
|
|
782
783
|
QueryBuilder.prototype.validateFields = function () {
|
|
783
784
|
var isValid = true;
|
|
785
|
+
var dropDownTreeObj;
|
|
784
786
|
if (this.allowValidation) {
|
|
785
787
|
var excludeOprs = ['isnull', 'isnotnull', 'isempty', 'isnotempty'];
|
|
786
788
|
var i = void 0;
|
|
@@ -800,9 +802,18 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
800
802
|
rule = this.getParentGroup(groupElem);
|
|
801
803
|
index = 0;
|
|
802
804
|
indexElem = tempElem = ruleElemCln[i];
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
805
|
+
if (this.fieldMode === 'DropdownTree') {
|
|
806
|
+
dropDownTreeObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdowntree');
|
|
807
|
+
if (dropDownTreeObj.value && dropDownTreeObj.value.length) {
|
|
808
|
+
this.selectedColumn = this.getColumn(dropDownTreeObj.value[0]);
|
|
809
|
+
validateRule = this.selectedColumn.validation;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdownlist');
|
|
814
|
+
this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
|
|
815
|
+
validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
|
|
816
|
+
}
|
|
806
817
|
fieldElem = tempElem.querySelector('.e-rule-field input.e-control');
|
|
807
818
|
if (validateRule && validateRule.isRequired) {
|
|
808
819
|
while (indexElem && indexElem.previousElementSibling !== null) {
|
|
@@ -840,7 +851,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
840
851
|
}
|
|
841
852
|
}
|
|
842
853
|
}
|
|
843
|
-
else if (dropDownObj.element && isNullOrUndefined(dropDownObj.index))
|
|
854
|
+
else if ((dropDownObj && dropDownObj.element && isNullOrUndefined(dropDownObj.index)) ||
|
|
855
|
+
(dropDownTreeObj && dropDownTreeObj.element && (isNullOrUndefined(dropDownTreeObj.value) ||
|
|
856
|
+
dropDownTreeObj.value.length < 1))) {
|
|
844
857
|
if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {
|
|
845
858
|
this.renderToolTip(fieldElem.parentElement);
|
|
846
859
|
}
|
|
@@ -1323,7 +1336,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1323
1336
|
var fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');
|
|
1324
1337
|
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);
|
|
1325
1338
|
if (this.fieldMode === 'DropdownTree' && fieldElem != null) {
|
|
1326
|
-
var ddtElem = fieldElem.querySelector('.e-control');
|
|
1339
|
+
var ddtElem = fieldElem.querySelector('.e-dropdowntree.e-control');
|
|
1327
1340
|
var ddt = getComponent(ddtElem, 'dropdowntree');
|
|
1328
1341
|
if (column) {
|
|
1329
1342
|
if (column.type === 'object') {
|
|
@@ -1806,17 +1819,42 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1806
1819
|
QueryBuilder.prototype.getDistinctValues = function (dataSource, field) {
|
|
1807
1820
|
var original = {};
|
|
1808
1821
|
var result = [];
|
|
1809
|
-
|
|
1810
|
-
|
|
1822
|
+
var nest = [];
|
|
1823
|
+
var value = "";
|
|
1824
|
+
var isNested = field.indexOf(this.separator);
|
|
1825
|
+
var _loop_2 = function (i, iLen) {
|
|
1826
|
+
if (isNested === 0) {
|
|
1827
|
+
value = dataSource[i][field];
|
|
1828
|
+
}
|
|
1829
|
+
else {
|
|
1830
|
+
nest = field.split(this_2.separator);
|
|
1831
|
+
nest.forEach(function (element) {
|
|
1832
|
+
if (value) {
|
|
1833
|
+
value = value[element];
|
|
1834
|
+
}
|
|
1835
|
+
else {
|
|
1836
|
+
value = dataSource[i][element];
|
|
1837
|
+
}
|
|
1838
|
+
});
|
|
1839
|
+
}
|
|
1811
1840
|
if (Number(dataSource[i][field]) === dataSource[i][field] && dataSource[i][field] % 1 !== 0) {
|
|
1812
1841
|
value = dataSource[i][field].toString();
|
|
1813
1842
|
}
|
|
1814
1843
|
var data = {};
|
|
1815
|
-
if (!(value in original)) {
|
|
1844
|
+
if (!(value in original) && !isNullOrUndefined(value)) {
|
|
1816
1845
|
original[value] = 1;
|
|
1817
|
-
|
|
1846
|
+
if (isNested === 0) {
|
|
1847
|
+
data[field] = value;
|
|
1848
|
+
}
|
|
1849
|
+
else {
|
|
1850
|
+
data[nest[nest.length - 1]] = value;
|
|
1851
|
+
}
|
|
1818
1852
|
result.push(data);
|
|
1819
1853
|
}
|
|
1854
|
+
};
|
|
1855
|
+
var this_2 = this;
|
|
1856
|
+
for (var i = 0, iLen = dataSource.length; i < iLen; i++) {
|
|
1857
|
+
_loop_2(i, iLen);
|
|
1820
1858
|
}
|
|
1821
1859
|
return result;
|
|
1822
1860
|
};
|
|
@@ -1824,6 +1862,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1824
1862
|
var isFetched = false;
|
|
1825
1863
|
var ds;
|
|
1826
1864
|
var isValues = false;
|
|
1865
|
+
this.isGetNestedData = false;
|
|
1827
1866
|
if (this.dataColl[1]) {
|
|
1828
1867
|
if (Object.keys(this.dataColl[1]).indexOf(rule.field) > -1) {
|
|
1829
1868
|
isFetched = true;
|
|
@@ -1834,11 +1873,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1834
1873
|
if (!this.dataColl.length && values.length) {
|
|
1835
1874
|
isValues = true;
|
|
1836
1875
|
}
|
|
1876
|
+
var fieldValue = this.selectedRule.field;
|
|
1877
|
+
var isNested = this.selectedRule.field.indexOf(this.separator);
|
|
1878
|
+
if (isNested !== 0 && this.fieldMode !== "DropdownTree") {
|
|
1879
|
+
var nest = this.selectedRule.field.split(this.separator);
|
|
1880
|
+
fieldValue = nest[nest.length - 1];
|
|
1881
|
+
}
|
|
1837
1882
|
var multiSelectValue;
|
|
1838
1883
|
multiSelectValue = {
|
|
1839
1884
|
dataSource: isValues ? values : (isFetched ? ds : this.dataManager),
|
|
1840
1885
|
query: new Query([rule.field]),
|
|
1841
|
-
fields: { text:
|
|
1886
|
+
fields: { text: fieldValue, value: fieldValue },
|
|
1842
1887
|
placeholder: this.l10n.getConstant('SelectValue'),
|
|
1843
1888
|
value: selectedValue,
|
|
1844
1889
|
mode: 'CheckBox',
|
|
@@ -1866,6 +1911,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1866
1911
|
if (Object.keys(this.dataColl[1]).indexOf(value) > -1) {
|
|
1867
1912
|
isFetched = true;
|
|
1868
1913
|
}
|
|
1914
|
+
var isNest = value.indexOf(this.separator);
|
|
1915
|
+
if (isNest !== 0 && this.isGetNestedData) {
|
|
1916
|
+
isFetched = true;
|
|
1917
|
+
}
|
|
1869
1918
|
}
|
|
1870
1919
|
if (!isFetched) {
|
|
1871
1920
|
args.cancel = true;
|
|
@@ -1894,6 +1943,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1894
1943
|
}
|
|
1895
1944
|
_this.dataColl = extend(_this.dataColl, dummyData, [], true);
|
|
1896
1945
|
multiselectObj.dataSource = _this.getDistinctValues(_this.dataColl, value);
|
|
1946
|
+
_this.isGetNestedData = true;
|
|
1897
1947
|
hideSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
|
|
1898
1948
|
}).catch(function (e) {
|
|
1899
1949
|
deferred.reject(e);
|
|
@@ -3902,7 +3952,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3902
3952
|
break;
|
|
3903
3953
|
}
|
|
3904
3954
|
}
|
|
3905
|
-
else if (field.indexOf(this.separator) > -1) {
|
|
3955
|
+
else if (field && field.indexOf(this.separator) > -1) {
|
|
3906
3956
|
if (columns[i].field === field.split(this.separator)[0]) {
|
|
3907
3957
|
column = columns[i];
|
|
3908
3958
|
break;
|