@syncfusion/ej2-querybuilder 26.1.40 → 26.1.42

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 26.1.40
3
+ * version : 26.1.42
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-querybuilder@*",
3
- "_id": "@syncfusion/ej2-querybuilder@26.1.38",
3
+ "_id": "@syncfusion/ej2-querybuilder@26.1.40",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-y2TXi+cToTo+9XkQ/WMfnmOI8EpW3J/Kr/pr+NPNYr8f3fD849jog2zIBQWi0FkDXLDnDQl/sGuNh0VIvJI//g==",
5
+ "_integrity": "sha512-MWEJ9NY5c0iruUvcFgMZn8FuPcADr0RmU3Ff8iYRKYvFZXMqgtoVa8mKgw4vLRxyiJNnbC9ZUY79X99bRbMqAg==",
6
6
  "_location": "/@syncfusion/ej2-querybuilder",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,8 +23,8 @@
23
23
  "/@syncfusion/ej2-react-querybuilder",
24
24
  "/@syncfusion/ej2-vue-querybuilder"
25
25
  ],
26
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-26.1.38.tgz",
27
- "_shasum": "f125e6c4c1da213648fbb5fed3055c673a3e0597",
26
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-26.1.40.tgz",
27
+ "_shasum": "071a867f904970608a6248d61d6dbccfe9c8e630",
28
28
  "_spec": "@syncfusion/ej2-querybuilder@*",
29
29
  "_where": "/jenkins/workspace/elease-automation_release_26.1.1/packages/included",
30
30
  "author": {
@@ -32,11 +32,11 @@
32
32
  },
33
33
  "bundleDependencies": false,
34
34
  "dependencies": {
35
- "@syncfusion/ej2-base": "~26.1.37",
35
+ "@syncfusion/ej2-base": "~26.1.42",
36
36
  "@syncfusion/ej2-buttons": "~26.1.40",
37
- "@syncfusion/ej2-calendars": "~26.1.40",
38
- "@syncfusion/ej2-dropdowns": "~26.1.40",
39
- "@syncfusion/ej2-inputs": "~26.1.40",
37
+ "@syncfusion/ej2-calendars": "~26.1.41",
38
+ "@syncfusion/ej2-dropdowns": "~26.1.42",
39
+ "@syncfusion/ej2-inputs": "~26.1.42",
40
40
  "@syncfusion/ej2-splitbuttons": "~26.1.35"
41
41
  },
42
42
  "deprecated": false,
@@ -66,7 +66,7 @@
66
66
  "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/querybuilder"
67
67
  },
68
68
  "typings": "index.d.ts",
69
- "version": "26.1.40",
69
+ "version": "26.1.42",
70
70
  "sideEffects": false,
71
71
  "homepage": "https://www.syncfusion.com/javascript-ui-controls"
72
72
  }
@@ -1,4 +1,4 @@
1
- import { Component, INotifyPropertyChanged, NotifyPropertyChanges, getComponent, MouseEventArgs, Browser, compile, append, ModuleDeclaration, Draggable, remove } from '@syncfusion/ej2-base';import { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefined, Collection, cldrData } from '@syncfusion/ej2-base';import { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';import { Internationalization, DateFormatOptions, KeyboardEventArgs, getUniqueID, select } from '@syncfusion/ej2-base';import { Button, CheckBox, RadioButton, ChangeEventArgs as ButtonChangeEventArgs, RadioButtonModel } from '@syncfusion/ej2-buttons';import { DropDownList, ChangeEventArgs as DropDownChangeEventArgs, FieldSettingsModel, CheckBoxSelection, DropDownTreeModel, DropDownTree } from '@syncfusion/ej2-dropdowns';import { MultiSelect, MultiSelectChangeEventArgs, PopupEventArgs, MultiSelectModel, DropDownListModel } from '@syncfusion/ej2-dropdowns';import { EmitType, Event, EventHandler, getValue, Animation, BaseEventArgs } from '@syncfusion/ej2-base';import { Query, Predicate, DataManager, Deferred } from '@syncfusion/ej2-data';import { TextBox, NumericTextBox, InputEventArgs, ChangeEventArgs as InputChangeEventArgs } from '@syncfusion/ej2-inputs';import { TextBoxModel, NumericTextBoxModel } from '@syncfusion/ej2-inputs';import { DatePicker, ChangeEventArgs as CalendarChangeEventArgs, DatePickerModel } from '@syncfusion/ej2-calendars';import { DropDownButton, ItemModel, MenuEventArgs } from '@syncfusion/ej2-splitbuttons';import { Tooltip, createSpinner, showSpinner, hideSpinner, TooltipEventArgs } from '@syncfusion/ej2-popups';import { compile as templateCompiler } from '@syncfusion/ej2-base';
1
+ import { Component, INotifyPropertyChanged, NotifyPropertyChanges, getComponent, MouseEventArgs, Browser, compile, append, ModuleDeclaration, Draggable, remove } from '@syncfusion/ej2-base';import { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefined, Collection, cldrData } from '@syncfusion/ej2-base';import { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';import { Internationalization, DateFormatOptions, KeyboardEventArgs, getUniqueID, select } from '@syncfusion/ej2-base';import { Button, CheckBox, RadioButton, ChangeEventArgs as ButtonChangeEventArgs, RadioButtonModel } from '@syncfusion/ej2-buttons';import { DropDownList, ChangeEventArgs as DropDownChangeEventArgs, FieldSettingsModel, CheckBoxSelection, DropDownTreeModel, DropDownTree, DdtFilteringEventArgs } from '@syncfusion/ej2-dropdowns';import { MultiSelect, MultiSelectChangeEventArgs, PopupEventArgs, MultiSelectModel, DropDownListModel } from '@syncfusion/ej2-dropdowns';import { EmitType, Event, EventHandler, getValue, Animation, BaseEventArgs } from '@syncfusion/ej2-base';import { Query, Predicate, DataManager, Deferred } from '@syncfusion/ej2-data';import { TextBox, NumericTextBox, InputEventArgs, ChangeEventArgs as InputChangeEventArgs } from '@syncfusion/ej2-inputs';import { TextBoxModel, NumericTextBoxModel } from '@syncfusion/ej2-inputs';import { DatePicker, ChangeEventArgs as CalendarChangeEventArgs, DatePickerModel } from '@syncfusion/ej2-calendars';import { DropDownButton, ItemModel, MenuEventArgs } from '@syncfusion/ej2-splitbuttons';import { Tooltip, createSpinner, showSpinner, hideSpinner, TooltipEventArgs } from '@syncfusion/ej2-popups';import { compile as templateCompiler } from '@syncfusion/ej2-base';
2
2
  import {TemplateColumn,Validation,FormatObject,ActionEventArgs,ChangeEventArgs,RuleChangeEventArgs,DragEventArgs,DropEventArgs,FieldMode,DisplayMode,SortDirection} from "./query-builder";
3
3
  import {ComponentModel} from '@syncfusion/ej2-base';
4
4
 
@@ -346,6 +346,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
346
346
  private dragElement;
347
347
  private prvtEvtTgrDaD;
348
348
  private isDragEventPrevent;
349
+ private ddTree;
349
350
  /**
350
351
  * Triggers when the component is created.
351
352
  *
@@ -621,6 +622,11 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
621
622
  private appendRuleElem;
622
623
  private addRuleElement;
623
624
  private addRuleSuccessCallBack;
625
+ private dropdownTreeFiltering;
626
+ private changeDataSource;
627
+ private nestedChildFilter;
628
+ private isMatchedNode;
629
+ private dropdownTreeClose;
624
630
  private updateDropdowntreeDS;
625
631
  private updateAddedRule;
626
632
  private changeRuleTemplate;
@@ -1145,7 +1145,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1145
1145
  popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
1146
1146
  change: this.changeField.bind(this), value: !isNullOrUndefined(ddlValue) ? [ddlValue] : null,
1147
1147
  open: this.popupOpen.bind(this, false), treeSettings: { expandOn: 'Click' },
1148
- cssClass: 'e-qb-ddt'
1148
+ cssClass: 'e-qb-ddt', filtering: this.dropdownTreeFiltering.bind(this), close: this.dropdownTreeClose.bind(this)
1149
1149
  };
1150
1150
  if (this.fieldModel) {
1151
1151
  ddlField = __assign({}, ddlField, this.fieldModel);
@@ -1215,6 +1215,72 @@ var QueryBuilder = /** @class */ (function (_super) {
1215
1215
  this.setMultiConnector(ruleElem);
1216
1216
  }
1217
1217
  };
1218
+ QueryBuilder.prototype.dropdownTreeFiltering = function (args) {
1219
+ var _this = this;
1220
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
1221
+ var proxy = this;
1222
+ var ruleElemID = '';
1223
+ var srcElement = args.event.srcElement;
1224
+ var isClearIcon = srcElement.classList.contains('e-clear-icon');
1225
+ var inputElem = isClearIcon ? srcElement.parentElement.querySelector('.e-textbox') : srcElement;
1226
+ ruleElemID = inputElem.id.split('_filterkey')[0];
1227
+ var ruleElem = document.getElementById(ruleElemID);
1228
+ this.ddTree = getComponent(ruleElem.querySelector('input.e-dropdowntree'), 'dropdowntree');
1229
+ var hierarchicalData = extend([], this.columns, [], true);
1230
+ // Cancel the default filtering.
1231
+ args.cancel = true;
1232
+ if (args.text === '') {
1233
+ this.changeDataSource(hierarchicalData);
1234
+ }
1235
+ else {
1236
+ var matchedDataSource = hierarchicalData
1237
+ .map(function (data) { return _this.nestedChildFilter(args.text, data); })
1238
+ .filter(function (filteredChild) { return filteredChild !== null; });
1239
+ this.changeDataSource(matchedDataSource);
1240
+ setTimeout(function () {
1241
+ proxy.ddTree.treeObj.expandAll();
1242
+ }, 100);
1243
+ }
1244
+ };
1245
+ QueryBuilder.prototype.changeDataSource = function (data) {
1246
+ this.ddTree.treeObj.fields = {
1247
+ dataSource: data,
1248
+ value: 'field',
1249
+ text: 'label',
1250
+ child: 'columns',
1251
+ expanded: 'expanded'
1252
+ };
1253
+ this.ddTree.treeObj.refresh();
1254
+ };
1255
+ QueryBuilder.prototype.nestedChildFilter = function (value, node) {
1256
+ var _this = this;
1257
+ var children = node[this.ddTree.fields.child];
1258
+ if (!children) {
1259
+ return this.isMatchedNode(value, node) ? node : null;
1260
+ }
1261
+ var matchedChildren = children
1262
+ .map(function (child) { return _this.nestedChildFilter(value, child); })
1263
+ .filter(function (filteredChild) { return filteredChild !== null; });
1264
+ if (matchedChildren.length) {
1265
+ node[this.ddTree.fields.child] = matchedChildren;
1266
+ return node;
1267
+ }
1268
+ else {
1269
+ node[this.ddTree.fields.child] = children;
1270
+ return this.isMatchedNode(value, node) ? node : null;
1271
+ }
1272
+ };
1273
+ QueryBuilder.prototype.isMatchedNode = function (value, node) {
1274
+ var checkValue = node[this.ddTree.fields.text].toLowerCase();
1275
+ value = value ? value.toLowerCase() : '';
1276
+ return checkValue.indexOf(value) !== -1;
1277
+ };
1278
+ QueryBuilder.prototype.dropdownTreeClose = function () {
1279
+ if (this.ddTree) {
1280
+ this.changeDataSource(this.columns);
1281
+ }
1282
+ this.ddTree = null;
1283
+ };
1218
1284
  QueryBuilder.prototype.updateDropdowntreeDS = function (columns) {
1219
1285
  for (var i = 0; i < columns.length; i++) {
1220
1286
  if (columns[parseInt(i.toString(), 10)].type === 'object') {