@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.
@@ -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
- dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdownlist');
804
- this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
805
- validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
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
- for (var i = 0, iLen = dataSource.length; i < iLen; i++) {
1810
- var value = dataSource[i][field];
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
- data[field] = value;
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: this.selectedRule.field, value: this.selectedRule.field },
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;