@syncfusion/ej2-querybuilder 30.1.41 → 30.2.4
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/aceconfig.js +17 -0
- package/dist/ej2-querybuilder.min.js +2 -2
- 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 +575 -431
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +619 -470
- 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 +7 -7
- package/src/query-builder/query-builder-model.d.ts +4 -4
- package/src/query-builder/query-builder.d.ts +9 -0
- package/src/query-builder/query-builder.js +618 -468
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Property, ChildProperty, Collection,
|
|
1
|
+
import { Property, ChildProperty, Collection, removeClass, isNullOrUndefined, Animation, extend, closest, addClass, select, append, getComponent, detach, rippleEffect, getInstance, getValue, getNumericObject, Browser, classList, Internationalization, getUniqueID, L10n, Draggable, remove, compile, EventHandler, cldrData, Event, Complex, NotifyPropertyChanges, Component } from '@syncfusion/ej2-base';
|
|
2
2
|
import { Button, CheckBox, RadioButton } from '@syncfusion/ej2-buttons';
|
|
3
3
|
import { MultiSelect, CheckBoxSelection, DropDownList, DropDownTree } from '@syncfusion/ej2-dropdowns';
|
|
4
4
|
import { Query, DataManager, Deferred, Predicate } from '@syncfusion/ej2-data';
|
|
@@ -220,37 +220,71 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
220
220
|
QueryBuilder.prototype.reset = function () {
|
|
221
221
|
this.isImportRules = false;
|
|
222
222
|
var bodyElem = this.element.querySelector('.e-group-body');
|
|
223
|
-
var
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
223
|
+
var inputElements = this.element.querySelectorAll('input.e-control');
|
|
224
|
+
var batchSize = 20;
|
|
225
|
+
var currentIndex = 0;
|
|
226
|
+
var processBatch = function () {
|
|
227
|
+
var endIndex = Math.min(currentIndex + batchSize, inputElements.length);
|
|
228
|
+
for (var i = currentIndex; i < endIndex; i++) {
|
|
229
|
+
var element = inputElements[i];
|
|
230
|
+
try {
|
|
231
|
+
if (element.className.indexOf('e-tooltip') > -1) {
|
|
232
|
+
var tooltip = getComponent(element, 'tooltip');
|
|
233
|
+
if (tooltip) {
|
|
234
|
+
tooltip.destroy();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else if (element.parentElement && element.parentElement.className.indexOf('e-tooltip') > -1) {
|
|
238
|
+
var tooltip = getComponent(element.parentElement, 'tooltip');
|
|
239
|
+
if (tooltip) {
|
|
240
|
+
tooltip.destroy();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (e) {
|
|
245
|
+
console.warn('Error destroying tooltip:', e);
|
|
246
|
+
}
|
|
227
247
|
}
|
|
228
|
-
|
|
229
|
-
|
|
248
|
+
currentIndex = endIndex;
|
|
249
|
+
if (currentIndex < inputElements.length) {
|
|
250
|
+
requestAnimationFrame(processBatch);
|
|
230
251
|
}
|
|
252
|
+
};
|
|
253
|
+
if (inputElements.length > 0) {
|
|
254
|
+
processBatch();
|
|
231
255
|
}
|
|
232
256
|
if (bodyElem) {
|
|
233
|
-
bodyElem.
|
|
257
|
+
bodyElem.textContent = '';
|
|
234
258
|
}
|
|
235
259
|
else {
|
|
260
|
+
var fragment = document.createDocumentFragment();
|
|
236
261
|
var grpContainer = this.createElement('div', { attrs: { class: 'e-group-container' } });
|
|
237
262
|
var grpHeader = this.createElement('div', { attrs: { class: 'e-group-header' } });
|
|
238
263
|
var grpBody = this.createElement('div', { attrs: { class: 'e-group-body' } });
|
|
239
|
-
grpContainer.appendChild(grpHeader)
|
|
240
|
-
|
|
264
|
+
grpContainer.appendChild(grpHeader);
|
|
265
|
+
grpContainer.appendChild(grpBody);
|
|
266
|
+
fragment.appendChild(grpContainer);
|
|
267
|
+
this.element.appendChild(fragment);
|
|
241
268
|
bodyElem = this.element.querySelector('.e-group-body');
|
|
242
269
|
}
|
|
243
270
|
if (this.headerTemplate && this.isRoot) {
|
|
244
|
-
this.element.
|
|
271
|
+
this.element.textContent = '';
|
|
245
272
|
this.isRoot = false;
|
|
246
273
|
}
|
|
247
274
|
if (this.enableNotCondition) {
|
|
248
|
-
|
|
275
|
+
var toggleElements = this.element.querySelectorAll('.e-qb-toggle');
|
|
276
|
+
for (var i = 0; i < toggleElements.length; i++) {
|
|
277
|
+
removeClass([toggleElements[i]], 'e-active-toggle');
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
if (bodyElem) {
|
|
281
|
+
bodyElem.appendChild(this.createElement('div', { attrs: { class: 'e-rule-list' } }));
|
|
249
282
|
}
|
|
250
|
-
bodyElem.appendChild(this.createElement('div', { attrs: { class: 'e-rule-list' } }));
|
|
251
283
|
this.levelColl[this.element.id + '_group0'] = [0];
|
|
252
284
|
this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);
|
|
253
|
-
|
|
285
|
+
if (bodyElem && bodyElem.parentElement) {
|
|
286
|
+
this.disableRuleCondition(bodyElem.parentElement);
|
|
287
|
+
}
|
|
254
288
|
};
|
|
255
289
|
QueryBuilder.prototype.getWrapper = function () {
|
|
256
290
|
return this.element;
|
|
@@ -273,100 +307,131 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
273
307
|
return '';
|
|
274
308
|
};
|
|
275
309
|
QueryBuilder.prototype.initialize = function () {
|
|
310
|
+
var _this = this;
|
|
276
311
|
if (this.dataColl.length) {
|
|
277
|
-
var
|
|
312
|
+
var columnKeys_1 = Object.keys(this.dataColl[0]);
|
|
278
313
|
var cols = [];
|
|
279
|
-
var
|
|
280
|
-
var
|
|
281
|
-
var
|
|
282
|
-
var
|
|
283
|
-
var
|
|
284
|
-
var
|
|
314
|
+
var categories_1 = [];
|
|
315
|
+
var type_1;
|
|
316
|
+
var groupBy_1 = false;
|
|
317
|
+
var isDate_1 = false;
|
|
318
|
+
var value_1;
|
|
319
|
+
var validateObj_1 = { isRequired: true, min: 0, max: Number.MAX_VALUE };
|
|
285
320
|
if (this.columns.length) {
|
|
286
321
|
this.columnSort();
|
|
287
322
|
var columns = this.columns;
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
if (!
|
|
291
|
-
if (
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
if (
|
|
295
|
-
|
|
323
|
+
columns.forEach(function (column) {
|
|
324
|
+
_this.updateCustomOperator(column, 'initial');
|
|
325
|
+
if (!column.type) {
|
|
326
|
+
if (columnKeys_1.indexOf(column.field) > -1) {
|
|
327
|
+
value_1 = _this.dataColl[0][column.field];
|
|
328
|
+
type_1 = typeof value_1;
|
|
329
|
+
if (type_1 === 'string') {
|
|
330
|
+
isDate_1 = !isNaN(Date.parse(value_1));
|
|
296
331
|
}
|
|
297
|
-
else if (
|
|
298
|
-
|
|
299
|
-
|
|
332
|
+
else if (type_1 === 'object') {
|
|
333
|
+
isDate_1 = value_1 instanceof Date && !isNaN(value_1.getTime());
|
|
334
|
+
type_1 = 'string';
|
|
300
335
|
}
|
|
301
|
-
|
|
302
|
-
|
|
336
|
+
column.type = type_1;
|
|
337
|
+
isDate_1 = false;
|
|
303
338
|
}
|
|
304
|
-
|
|
339
|
+
type_1 = 'string';
|
|
305
340
|
}
|
|
306
|
-
if (!
|
|
307
|
-
|
|
341
|
+
if (!column.validation) {
|
|
342
|
+
column.validation = validateObj_1;
|
|
308
343
|
}
|
|
309
|
-
if (
|
|
310
|
-
|
|
344
|
+
if (column.category) {
|
|
345
|
+
groupBy_1 = true;
|
|
311
346
|
}
|
|
312
347
|
else {
|
|
313
|
-
|
|
348
|
+
column.category = _this.l10n.getConstant('OtherFields');
|
|
314
349
|
}
|
|
315
|
-
if (
|
|
316
|
-
|
|
350
|
+
if (categories_1.indexOf(column.category) < 0) {
|
|
351
|
+
categories_1.push(column.category);
|
|
317
352
|
}
|
|
318
|
-
if (!
|
|
319
|
-
(
|
|
320
|
-
|
|
353
|
+
if (!column.operators ||
|
|
354
|
+
(_this.isLocale && _this.isCustomOprCols.indexOf(column.field) === -1)) {
|
|
355
|
+
column.operators = _this.customOperators[column.type + 'Operator'];
|
|
321
356
|
}
|
|
322
|
-
}
|
|
323
|
-
if (
|
|
357
|
+
});
|
|
358
|
+
if (groupBy_1 && (categories_1.length > 1 || categories_1[0] !== this.l10n.getConstant('OtherFields'))) {
|
|
324
359
|
this.fields = { text: 'label', value: 'field', groupBy: 'category' };
|
|
325
360
|
}
|
|
326
361
|
this.updateSubFieldsFromColumns(this.columns);
|
|
327
362
|
}
|
|
328
363
|
else {
|
|
329
|
-
for (var i = 0, len =
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
if (
|
|
333
|
-
|
|
334
|
-
}
|
|
335
|
-
else if (
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
}
|
|
339
|
-
cols[i] = {
|
|
340
|
-
'
|
|
341
|
-
|
|
364
|
+
for (var i = 0, len = columnKeys_1.length; i < len; i++) {
|
|
365
|
+
value_1 = this.dataColl[0][columnKeys_1[i]];
|
|
366
|
+
type_1 = typeof value_1;
|
|
367
|
+
if (type_1 === 'string') {
|
|
368
|
+
isDate_1 = !isNaN(Date.parse(value_1));
|
|
369
|
+
}
|
|
370
|
+
else if (type_1 === 'object' && !Object.keys(value_1).length) {
|
|
371
|
+
isDate_1 = value_1 instanceof Date && !isNaN(value_1.getTime());
|
|
372
|
+
type_1 = 'string';
|
|
373
|
+
}
|
|
374
|
+
cols[i] = {
|
|
375
|
+
'field': columnKeys_1[i], 'label': columnKeys_1[i], 'type': isDate_1 ? 'date' : type_1,
|
|
376
|
+
'validation': validateObj_1
|
|
377
|
+
};
|
|
378
|
+
isDate_1 = false;
|
|
342
379
|
cols[i].operators = this.customOperators[cols[i].type + 'Operator'];
|
|
343
|
-
if (
|
|
344
|
-
this.updateSubFields(
|
|
380
|
+
if (type_1 === 'object') {
|
|
381
|
+
this.updateSubFields(value_1, cols[i]);
|
|
345
382
|
}
|
|
346
383
|
}
|
|
347
384
|
this.columns = cols;
|
|
348
385
|
}
|
|
349
386
|
}
|
|
350
387
|
else if (this.columns && this.columns.length) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
388
|
+
if (this.sortDirection !== 'Default') {
|
|
389
|
+
this.columnSort();
|
|
390
|
+
}
|
|
391
|
+
this.processColumnsInBatches();
|
|
392
|
+
if (this.columns.length > 50) {
|
|
393
|
+
setTimeout(function () {
|
|
394
|
+
_this.updateSubFieldsFromColumns(_this.columns);
|
|
395
|
+
}, 0);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
this.updateSubFieldsFromColumns(this.columns);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
this.trigger('dataBound', { type: 'dataBound' });
|
|
402
|
+
};
|
|
403
|
+
QueryBuilder.prototype.processColumnsInBatches = function () {
|
|
404
|
+
var _this = this;
|
|
405
|
+
var columns = this.columns;
|
|
406
|
+
var batchSize = 10;
|
|
407
|
+
var processedCount = 0;
|
|
408
|
+
var processBatch = function () {
|
|
409
|
+
var endIdx = Math.min(processedCount + batchSize, columns.length);
|
|
410
|
+
for (var i = processedCount; i < endIdx; i++) {
|
|
411
|
+
if (columns[i].category && columns[i].category !== _this.l10n.getConstant('OtherFields')) {
|
|
412
|
+
_this.fields = { text: 'label', value: 'field', groupBy: 'category' };
|
|
355
413
|
}
|
|
356
414
|
else {
|
|
357
|
-
columns[i].category =
|
|
415
|
+
columns[i].category = _this.l10n.getConstant('OtherFields');
|
|
358
416
|
}
|
|
359
|
-
|
|
417
|
+
_this.updateCustomOperator(columns[i], 'initial');
|
|
360
418
|
if (!columns[i].operators ||
|
|
361
|
-
(
|
|
362
|
-
columns[i].operators =
|
|
419
|
+
(_this.isLocale && _this.isCustomOprCols.indexOf(columns[i].field) === -1)) {
|
|
420
|
+
columns[i].operators = _this.customOperators[columns[i].type + 'Operator'];
|
|
363
421
|
}
|
|
364
422
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
423
|
+
processedCount = endIdx;
|
|
424
|
+
if (processedCount < columns.length) {
|
|
425
|
+
requestAnimationFrame(processBatch);
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
processBatch();
|
|
368
429
|
};
|
|
369
430
|
QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {
|
|
431
|
+
if (col.length > 50) {
|
|
432
|
+
this.updateSubFieldsLarge(col, field);
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
370
435
|
for (var i = 0; i < col.length; i++) {
|
|
371
436
|
if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {
|
|
372
437
|
col[i].field = field ? field + this.separator + col[i].field : col[i].field;
|
|
@@ -383,6 +448,39 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
383
448
|
}
|
|
384
449
|
}
|
|
385
450
|
};
|
|
451
|
+
QueryBuilder.prototype.updateSubFieldsLarge = function (col, field) {
|
|
452
|
+
var _this = this;
|
|
453
|
+
var i = 0;
|
|
454
|
+
var colLength = col.length;
|
|
455
|
+
var processNextBatch = function () {
|
|
456
|
+
var endIdx = Math.min(i + 10, colLength);
|
|
457
|
+
for (; i < endIdx; i++) {
|
|
458
|
+
if (_this.separator !== '' && col[i].field.indexOf(_this.separator) < 0) {
|
|
459
|
+
col[i].field = field ? field + _this.separator + col[i].field : col[i].field;
|
|
460
|
+
}
|
|
461
|
+
if (col[i].operators) {
|
|
462
|
+
_this.updateCustomOperator(col[i]);
|
|
463
|
+
}
|
|
464
|
+
else if (col[i].type && col[i].type !== 'object') {
|
|
465
|
+
col[i].operators = _this.customOperators[col[i].type + 'Operator'];
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
if (i < colLength) {
|
|
469
|
+
requestAnimationFrame(processNextBatch);
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
setTimeout(function () {
|
|
473
|
+
for (var j = 0; j < colLength; j++) {
|
|
474
|
+
if (col[j].columns) {
|
|
475
|
+
col[j].type = 'object';
|
|
476
|
+
_this.updateSubFieldsFromColumns(col[j].columns, col[j].field);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}, 0);
|
|
480
|
+
}
|
|
481
|
+
};
|
|
482
|
+
processNextBatch();
|
|
483
|
+
};
|
|
386
484
|
QueryBuilder.prototype.updateSubFields = function (value, col, data) {
|
|
387
485
|
var sampCol;
|
|
388
486
|
col.columns = [];
|
|
@@ -552,8 +650,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
552
650
|
}
|
|
553
651
|
args = { groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase() };
|
|
554
652
|
if (this.enableNotCondition) {
|
|
555
|
-
args = {
|
|
556
|
-
'
|
|
653
|
+
args = {
|
|
654
|
+
groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase(),
|
|
655
|
+
'not': ariaChecked
|
|
656
|
+
};
|
|
557
657
|
}
|
|
558
658
|
}
|
|
559
659
|
if (!this.isImportRules) {
|
|
@@ -651,7 +751,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
651
751
|
QueryBuilder.prototype.appendRuleElem = function (target, column, type, parentId, action, rule) {
|
|
652
752
|
var ruleElem;
|
|
653
753
|
var elem;
|
|
654
|
-
var ruleListElem = target.querySelector('.e-rule-list');
|
|
754
|
+
var ruleListElem = target && target.querySelector('.e-rule-list');
|
|
655
755
|
var args;
|
|
656
756
|
if (type === 'change') {
|
|
657
757
|
ruleElem = select('#' + parentId, target);
|
|
@@ -778,23 +878,35 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
778
878
|
}
|
|
779
879
|
};
|
|
780
880
|
QueryBuilder.prototype.addRuleSuccessCallBack = function (args, trgt, rule, col, act, pId, isRlTmp) {
|
|
781
|
-
var
|
|
881
|
+
var _this = this;
|
|
882
|
+
var isVertical = this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical';
|
|
883
|
+
var height = isVertical ? '250px' : '200px';
|
|
782
884
|
var ruleID;
|
|
783
885
|
var column = (rule && rule.field) ? this.getColumn(rule.field) : col ? col : this.columns[0];
|
|
784
886
|
var operators;
|
|
785
|
-
var dropDownList;
|
|
786
887
|
var ruleElem;
|
|
787
888
|
var newRule = { 'label': '', 'field': '', 'type': '', 'operator': '' };
|
|
788
889
|
if (!args.cancel) {
|
|
890
|
+
var fragment = document.createDocumentFragment();
|
|
789
891
|
if (column && column.ruleTemplate && rule.field) {
|
|
790
892
|
this.selectedColumn = column;
|
|
791
893
|
operators = this.selectedColumn.operators;
|
|
792
|
-
newRule = {
|
|
894
|
+
newRule = {
|
|
895
|
+
'label': column.label,
|
|
896
|
+
'field': column.field,
|
|
897
|
+
'type': column.type,
|
|
898
|
+
'operator': operators[0].value
|
|
899
|
+
};
|
|
793
900
|
var passedRule = Object.keys(rule).length ? rule : newRule;
|
|
794
901
|
ruleElem = this.appendRuleElem(trgt, column, act, pId, 'field', passedRule);
|
|
795
|
-
var
|
|
796
|
-
|
|
797
|
-
|
|
902
|
+
var actionArgs = {
|
|
903
|
+
requestType: 'template-initialize',
|
|
904
|
+
ruleID: ruleElem.id,
|
|
905
|
+
action: 'insert-rule',
|
|
906
|
+
fields: this.fields,
|
|
907
|
+
rule: passedRule
|
|
908
|
+
};
|
|
909
|
+
this.trigger('actionBegin', actionArgs);
|
|
798
910
|
}
|
|
799
911
|
else {
|
|
800
912
|
ruleElem = this.appendRuleElem(trgt, column, act, pId, 'field');
|
|
@@ -809,139 +921,30 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
809
921
|
addClass([element], 'e-round');
|
|
810
922
|
addClass([element], 'e-icon-btn');
|
|
811
923
|
element.setAttribute('title', this.l10n.getConstant('DeleteRule'));
|
|
812
|
-
var spanElement = this.createElement('span', {
|
|
813
|
-
|
|
924
|
+
var spanElement = this.createElement('span', {
|
|
925
|
+
attrs: { class: 'e-btn-icon e-icons e-delete-icon' }
|
|
926
|
+
});
|
|
927
|
+
element.appendChild(spanElement);
|
|
814
928
|
}
|
|
815
929
|
if (!this.showButtons.ruleDelete) {
|
|
816
930
|
element.classList.add('e-button-hide');
|
|
817
931
|
}
|
|
818
932
|
}
|
|
819
|
-
|
|
820
|
-
ruleElem.className = 'e-rule-container e-vertical-mode';
|
|
821
|
-
}
|
|
822
|
-
else {
|
|
823
|
-
ruleElem.className = 'e-rule-container e-horizontal-mode';
|
|
824
|
-
}
|
|
933
|
+
ruleElem.className = 'e-rule-container ' + (isVertical ? 'e-vertical-mode' : 'e-horizontal-mode');
|
|
825
934
|
var previousRuleElem = ruleElem.previousElementSibling;
|
|
826
|
-
|
|
827
|
-
var prevRule = void 0;
|
|
828
|
-
var ruleContainer = void 0;
|
|
829
|
-
if (previousRuleElem && previousRuleElem.classList.contains('e-group-container')) {
|
|
830
|
-
ruleContainer = previousRuleElem.querySelectorAll('.e-rule-container');
|
|
831
|
-
previousRuleElem = ruleContainer[ruleContainer.length - 1];
|
|
832
|
-
}
|
|
833
|
-
if (previousRuleElem && previousRuleElem.classList.contains('e-rule-container')) {
|
|
834
|
-
prevRule = this.getRule(previousRuleElem);
|
|
835
|
-
}
|
|
836
|
-
if (this.headerTemplate && previousRuleElem && prevRule) {
|
|
837
|
-
this.headerTemplateFn(previousRuleElem, false, prevRule.condition, prevRule, previousRuleElem.id);
|
|
838
|
-
}
|
|
839
|
-
else if (isNullOrUndefined(previousRuleElem) && ruleElem.id !== this.element.id + '_group0_rule0') {
|
|
840
|
-
var group = ruleElem.closest('.e-group-container');
|
|
841
|
-
if (group && group.previousElementSibling) {
|
|
842
|
-
var prevElem = group.previousElementSibling;
|
|
843
|
-
var prevRuleContainer = prevElem.querySelectorAll('.e-rule-container');
|
|
844
|
-
if (prevElem.classList.contains('e-group-container')) {
|
|
845
|
-
prevElem = prevRuleContainer[prevRuleContainer.length - 1];
|
|
846
|
-
}
|
|
847
|
-
if (prevElem.classList.contains('e-rule-container')) {
|
|
848
|
-
var prevRule_1 = this.getRule(prevElem);
|
|
849
|
-
this.headerTemplateFn(prevElem, false, prevRule_1.condition, prevRule_1, prevElem.id, true);
|
|
850
|
-
}
|
|
851
|
-
}
|
|
852
|
-
else {
|
|
853
|
-
this.headerTemplateFn(ruleElem, false, rule.condition, rule, ruleElem.id, true);
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
else {
|
|
858
|
-
if (previousRuleElem && previousRuleElem.className.indexOf('e-rule-container') > -1) {
|
|
859
|
-
if (ruleElem.className.indexOf('e-joined-rule') < 0) {
|
|
860
|
-
ruleElem.className += ' e-joined-rule';
|
|
861
|
-
}
|
|
862
|
-
if (previousRuleElem.className.indexOf('e-prev-joined-rule') < 0) {
|
|
863
|
-
previousRuleElem.className += ' e-prev-joined-rule';
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
}
|
|
867
|
-
if (previousRuleElem && previousRuleElem.className.indexOf('e-group-container') > -1 &&
|
|
868
|
-
ruleElem.className.indexOf('e-separate-rule') < 0) {
|
|
869
|
-
ruleElem.className += ' e-separate-rule';
|
|
870
|
-
}
|
|
935
|
+
this.processAdjacentElements(ruleElem, previousRuleElem, rule);
|
|
871
936
|
if (!this.isImportRules) {
|
|
872
937
|
this.updateAddedRule(trgt, rule, newRule, isRlTmp, pId, this.enableSeparateConnector ? true : null);
|
|
873
938
|
}
|
|
939
|
+
var ruleCount = this.rule.rules.length;
|
|
874
940
|
if (!column || (column && !column.ruleTemplate) || !rule.field) {
|
|
875
|
-
if (
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
ddlValue = this.GetRootColumnName(rule.field);
|
|
880
|
-
}
|
|
881
|
-
else if (this.autoSelectField) {
|
|
882
|
-
ddlValue = this.GetRootColumnName(rule.field);
|
|
883
|
-
}
|
|
884
|
-
else {
|
|
885
|
-
ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;
|
|
886
|
-
}
|
|
887
|
-
ddlField = {
|
|
888
|
-
dataSource: this.columns,
|
|
889
|
-
fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),
|
|
890
|
-
popupHeight: ((this.columns.length > 5) ? height : 'auto'), close: this.fieldClose.bind(this, ruleElem.id + '_filterkey'),
|
|
891
|
-
change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this, true), cssClass: 'qb-dropdownlist'
|
|
892
|
-
};
|
|
893
|
-
if (this.fieldModel) {
|
|
894
|
-
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
895
|
-
}
|
|
896
|
-
dropDownList = new DropDownList(ddlField);
|
|
897
|
-
dropDownList.appendTo('#' + ruleElem.id + '_filterkey');
|
|
898
|
-
var ddlVal = void 0;
|
|
899
|
-
if (this.separator && rule.field) {
|
|
900
|
-
ddlVal = this.GetRootColumnName(rule.field);
|
|
901
|
-
}
|
|
902
|
-
else {
|
|
903
|
-
ddlVal = this.isImportRules ? this.GetRootColumnName(rule.field) :
|
|
904
|
-
dropDownList.value;
|
|
905
|
-
}
|
|
906
|
-
this.selectedColumn = dropDownList.getDataByValue(ddlVal);
|
|
907
|
-
if (Object.keys(rule).length) {
|
|
908
|
-
this.changeRule(rule, {
|
|
909
|
-
element: dropDownList.element, itemData: this.selectedColumn
|
|
910
|
-
});
|
|
911
|
-
}
|
|
941
|
+
if (ruleCount > 20) {
|
|
942
|
+
setTimeout(function () {
|
|
943
|
+
_this.applyFieldComponent(ruleElem, rule, height);
|
|
944
|
+
}, 0);
|
|
912
945
|
}
|
|
913
946
|
else {
|
|
914
|
-
|
|
915
|
-
var ddlValue = this.isImportRules ? rule.field : rule.field;
|
|
916
|
-
this.dummyDropdownTreeDs = extend([], this.columns, [], true);
|
|
917
|
-
this.updateDropdowntreeDS(this.dummyDropdownTreeDs);
|
|
918
|
-
ddlField = {
|
|
919
|
-
fields: { dataSource: this.dummyDropdownTreeDs,
|
|
920
|
-
value: 'field', text: 'label', child: 'columns', expanded: 'expanded', selectable: 'selectable' },
|
|
921
|
-
placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,
|
|
922
|
-
popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
|
|
923
|
-
change: this.changeField.bind(this), value: !isNullOrUndefined(ddlValue) ? [ddlValue] : null,
|
|
924
|
-
open: this.popupOpen.bind(this, false), treeSettings: { expandOn: 'Click' },
|
|
925
|
-
cssClass: 'e-qb-ddt', filtering: this.dropdownTreeFiltering.bind(this), close: this.dropdownTreeClose.bind(this)
|
|
926
|
-
};
|
|
927
|
-
if (this.fieldModel) {
|
|
928
|
-
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
929
|
-
}
|
|
930
|
-
var dropdowntree = new DropDownTree(ddlField);
|
|
931
|
-
dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
|
|
932
|
-
if (!isNullOrUndefined(dropdowntree.value)) {
|
|
933
|
-
var value = this.getLabelFromColumn(dropdowntree.value[0]);
|
|
934
|
-
dropdowntree.element.value = value;
|
|
935
|
-
}
|
|
936
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
937
|
-
var ddlVal = !isNullOrUndefined(rule.field) ?
|
|
938
|
-
this.GetRootColumnName(rule.field) : dropdowntree.value;
|
|
939
|
-
this.selectedColumn = this.getColumn(ddlVal);
|
|
940
|
-
if (Object.keys(rule).length) {
|
|
941
|
-
this.changeRule(rule, {
|
|
942
|
-
element: dropdowntree.element, itemData: this.selectedColumn
|
|
943
|
-
});
|
|
944
|
-
}
|
|
947
|
+
this.applyFieldComponent(ruleElem, rule, height);
|
|
945
948
|
}
|
|
946
949
|
}
|
|
947
950
|
ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
@@ -950,46 +953,204 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
950
953
|
this.ruleLock(lockRuleTarget);
|
|
951
954
|
}
|
|
952
955
|
if (!this.isImportRules && !this.prvtEvtTgrDaD) {
|
|
953
|
-
this.trigger('change', {
|
|
956
|
+
this.trigger('change', {
|
|
957
|
+
groupID: trgt.id.replace(this.element.id + '_', ''),
|
|
958
|
+
ruleID: ruleID,
|
|
959
|
+
type: 'insertRule'
|
|
960
|
+
});
|
|
954
961
|
}
|
|
955
962
|
}
|
|
956
963
|
if (this.enableSeparateConnector && isNullOrUndefined(rule.condition) && ruleID) {
|
|
957
964
|
rule = this.getRule(ruleID);
|
|
958
965
|
}
|
|
959
966
|
if (this.enableSeparateConnector) {
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
+
this.processConnectorElements(ruleElem);
|
|
968
|
+
}
|
|
969
|
+
};
|
|
970
|
+
QueryBuilder.prototype.processAdjacentElements = function (ruleElem, previousRuleElem, rule) {
|
|
971
|
+
if (this.enableSeparateConnector) {
|
|
972
|
+
if (previousRuleElem && previousRuleElem.classList.contains('e-group-container')) {
|
|
973
|
+
var ruleContainer = previousRuleElem.querySelectorAll('.e-rule-container');
|
|
974
|
+
previousRuleElem = ruleContainer[ruleContainer.length - 1];
|
|
975
|
+
}
|
|
976
|
+
if (previousRuleElem && previousRuleElem.classList.contains('e-rule-container')) {
|
|
977
|
+
var prevRule = this.getRule(previousRuleElem);
|
|
978
|
+
if (this.headerTemplate) {
|
|
979
|
+
this.headerTemplateFn(previousRuleElem, false, prevRule.condition, prevRule, previousRuleElem.id);
|
|
967
980
|
}
|
|
968
|
-
prevElem = prevElem.previousElementSibling;
|
|
969
981
|
}
|
|
970
|
-
if (this.
|
|
982
|
+
else if (isNullOrUndefined(previousRuleElem) && ruleElem.id !== this.element.id + '_group0_rule0') {
|
|
983
|
+
this.handleOrphanedRuleElement(ruleElem, rule);
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
else {
|
|
987
|
+
if (previousRuleElem && previousRuleElem.className.indexOf('e-rule-container') > -1) {
|
|
988
|
+
ruleElem.classList.add('e-joined-rule');
|
|
989
|
+
previousRuleElem.classList.add('e-prev-joined-rule');
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
if (previousRuleElem && previousRuleElem.className.indexOf('e-group-container') > -1 &&
|
|
993
|
+
ruleElem.className.indexOf('e-separate-rule') < 0) {
|
|
994
|
+
ruleElem.className += ' e-separate-rule';
|
|
995
|
+
}
|
|
996
|
+
};
|
|
997
|
+
QueryBuilder.prototype.handleOrphanedRuleElement = function (ruleElem, rule) {
|
|
998
|
+
var group = ruleElem.closest('.e-group-container');
|
|
999
|
+
if (group && group.previousElementSibling) {
|
|
1000
|
+
var prevElem = group.previousElementSibling;
|
|
1001
|
+
var prevRuleContainer = prevElem.querySelectorAll('.e-rule-container');
|
|
1002
|
+
if (prevElem.classList.contains('e-group-container')) {
|
|
1003
|
+
prevElem = prevRuleContainer[prevRuleContainer.length - 1];
|
|
1004
|
+
}
|
|
1005
|
+
if (prevElem.classList.contains('e-rule-container')) {
|
|
971
1006
|
var prevRule = this.getRule(prevElem);
|
|
972
|
-
|
|
973
|
-
notCondition: this.enableNotCondition ? true : undefined };
|
|
974
|
-
this.trigger('actionBegin', args_2);
|
|
1007
|
+
this.headerTemplateFn(prevElem, false, prevRule.condition, prevRule, prevElem.id, true);
|
|
975
1008
|
}
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
}
|
|
990
|
-
}
|
|
1009
|
+
}
|
|
1010
|
+
else {
|
|
1011
|
+
this.headerTemplateFn(ruleElem, false, rule.condition, rule, ruleElem.id, true);
|
|
1012
|
+
}
|
|
1013
|
+
};
|
|
1014
|
+
QueryBuilder.prototype.processConnectorElements = function (ruleElem) {
|
|
1015
|
+
var prevElem = ruleElem.previousElementSibling;
|
|
1016
|
+
var ruleContainer;
|
|
1017
|
+
while (prevElem && !prevElem.classList.contains('e-rule-container')) {
|
|
1018
|
+
if (prevElem.classList.contains('e-group-container')) {
|
|
1019
|
+
ruleContainer = prevElem.querySelectorAll('.e-rule-container');
|
|
1020
|
+
prevElem = ruleContainer[ruleContainer.length - 1];
|
|
1021
|
+
break;
|
|
991
1022
|
}
|
|
992
|
-
|
|
1023
|
+
prevElem = prevElem.previousElementSibling;
|
|
1024
|
+
}
|
|
1025
|
+
if (this.headerTemplate && prevElem) {
|
|
1026
|
+
var prevRule = this.getRule(prevElem);
|
|
1027
|
+
var args = {
|
|
1028
|
+
requestType: 'rule-template-create',
|
|
1029
|
+
ruleID: prevElem.id,
|
|
1030
|
+
condition: prevRule.condition,
|
|
1031
|
+
notCondition: this.enableNotCondition ? true : undefined
|
|
1032
|
+
};
|
|
1033
|
+
this.trigger('actionBegin', args);
|
|
1034
|
+
}
|
|
1035
|
+
else if (isNullOrUndefined(prevElem) && ruleElem.id !== this.element.id + '_group0_rule0') {
|
|
1036
|
+
this.handleOrphanedConnectorElement(ruleElem);
|
|
1037
|
+
}
|
|
1038
|
+
this.setMultiConnector(ruleElem);
|
|
1039
|
+
};
|
|
1040
|
+
QueryBuilder.prototype.handleOrphanedConnectorElement = function (ruleElem) {
|
|
1041
|
+
var group = ruleElem.closest('.e-group-container');
|
|
1042
|
+
if (group && group.previousElementSibling && group.previousElementSibling.previousElementSibling) {
|
|
1043
|
+
var prevElem = group.previousElementSibling.previousElementSibling;
|
|
1044
|
+
if (prevElem.classList.contains('e-group-container')) {
|
|
1045
|
+
var ruleContainer = prevElem.querySelectorAll('.e-rule-container');
|
|
1046
|
+
prevElem = ruleContainer[ruleContainer.length - 1];
|
|
1047
|
+
}
|
|
1048
|
+
if (prevElem.classList.contains('e-rule-container')) {
|
|
1049
|
+
var prevRule = this.getRule(prevElem);
|
|
1050
|
+
var args = {
|
|
1051
|
+
requestType: 'rule-template-create',
|
|
1052
|
+
ruleID: prevElem.id,
|
|
1053
|
+
condition: prevRule.condition,
|
|
1054
|
+
notCondition: this.enableNotCondition ? true : undefined
|
|
1055
|
+
};
|
|
1056
|
+
this.trigger('actionBegin', args);
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
};
|
|
1060
|
+
QueryBuilder.prototype.applyFieldComponent = function (ruleElem, rule, height) {
|
|
1061
|
+
if (this.fieldMode === 'Default') {
|
|
1062
|
+
this.applyDropdownListComponent(ruleElem, rule, height);
|
|
1063
|
+
}
|
|
1064
|
+
else {
|
|
1065
|
+
this.applyDropdownTreeComponent(ruleElem, rule, height);
|
|
1066
|
+
}
|
|
1067
|
+
};
|
|
1068
|
+
QueryBuilder.prototype.applyDropdownListComponent = function (ruleElem, rule, height) {
|
|
1069
|
+
var ddlField;
|
|
1070
|
+
var ddlValue;
|
|
1071
|
+
if (this.separator && rule.field) {
|
|
1072
|
+
ddlValue = this.GetRootColumnName(rule.field);
|
|
1073
|
+
}
|
|
1074
|
+
else if (this.autoSelectField) {
|
|
1075
|
+
ddlValue = this.GetRootColumnName(rule.field);
|
|
1076
|
+
}
|
|
1077
|
+
else {
|
|
1078
|
+
ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;
|
|
1079
|
+
}
|
|
1080
|
+
ddlField = {
|
|
1081
|
+
dataSource: this.columns,
|
|
1082
|
+
fields: this.fields,
|
|
1083
|
+
placeholder: this.l10n.getConstant('SelectField'),
|
|
1084
|
+
popupHeight: ((this.columns.length > 5) ? height : 'auto'),
|
|
1085
|
+
close: this.fieldClose.bind(this, ruleElem.id + '_filterkey'),
|
|
1086
|
+
change: this.changeField.bind(this),
|
|
1087
|
+
value: rule ? ddlValue : null,
|
|
1088
|
+
open: this.popupOpen.bind(this, true),
|
|
1089
|
+
cssClass: 'qb-dropdownlist'
|
|
1090
|
+
};
|
|
1091
|
+
if (this.fieldModel) {
|
|
1092
|
+
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
1093
|
+
}
|
|
1094
|
+
var dropDownList = new DropDownList(ddlField);
|
|
1095
|
+
dropDownList.appendTo('#' + ruleElem.id + '_filterkey');
|
|
1096
|
+
var ddlVal;
|
|
1097
|
+
if (this.separator && rule.field) {
|
|
1098
|
+
ddlVal = this.GetRootColumnName(rule.field);
|
|
1099
|
+
}
|
|
1100
|
+
else {
|
|
1101
|
+
ddlVal = this.isImportRules ? this.GetRootColumnName(rule.field) : dropDownList.value;
|
|
1102
|
+
}
|
|
1103
|
+
this.selectedColumn = dropDownList.getDataByValue(ddlVal);
|
|
1104
|
+
if (Object.keys(rule).length) {
|
|
1105
|
+
this.changeRule(rule, {
|
|
1106
|
+
element: dropDownList.element,
|
|
1107
|
+
itemData: this.selectedColumn
|
|
1108
|
+
});
|
|
1109
|
+
}
|
|
1110
|
+
};
|
|
1111
|
+
QueryBuilder.prototype.applyDropdownTreeComponent = function (ruleElem, rule, height) {
|
|
1112
|
+
var ddlField;
|
|
1113
|
+
var ddlValue = this.isImportRules ? rule.field : rule.field;
|
|
1114
|
+
this.dummyDropdownTreeDs = extend([], this.columns, [], true);
|
|
1115
|
+
this.updateDropdowntreeDS(this.dummyDropdownTreeDs);
|
|
1116
|
+
ddlField = {
|
|
1117
|
+
fields: {
|
|
1118
|
+
dataSource: this.dummyDropdownTreeDs,
|
|
1119
|
+
value: 'field',
|
|
1120
|
+
text: 'label',
|
|
1121
|
+
child: 'columns',
|
|
1122
|
+
expanded: 'expanded',
|
|
1123
|
+
selectable: 'selectable'
|
|
1124
|
+
},
|
|
1125
|
+
placeholder: this.l10n.getConstant('SelectField'),
|
|
1126
|
+
showClearButton: false,
|
|
1127
|
+
popupHeight: ((this.columns.length > 5) ? height : 'auto'),
|
|
1128
|
+
changeOnBlur: false,
|
|
1129
|
+
change: this.changeField.bind(this),
|
|
1130
|
+
value: !isNullOrUndefined(ddlValue) ? [ddlValue] : null,
|
|
1131
|
+
open: this.popupOpen.bind(this, false),
|
|
1132
|
+
treeSettings: { expandOn: 'Click' },
|
|
1133
|
+
cssClass: 'e-qb-ddt',
|
|
1134
|
+
filtering: this.dropdownTreeFiltering.bind(this),
|
|
1135
|
+
close: this.dropdownTreeClose.bind(this)
|
|
1136
|
+
};
|
|
1137
|
+
if (this.fieldModel) {
|
|
1138
|
+
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
1139
|
+
}
|
|
1140
|
+
var dropdowntree = new DropDownTree(ddlField);
|
|
1141
|
+
dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
|
|
1142
|
+
if (!isNullOrUndefined(dropdowntree.value)) {
|
|
1143
|
+
var value = this.getLabelFromColumn(dropdowntree.value[0]);
|
|
1144
|
+
dropdowntree.element.value = value;
|
|
1145
|
+
}
|
|
1146
|
+
var ddlVal = !isNullOrUndefined(rule.field) ?
|
|
1147
|
+
this.GetRootColumnName(rule.field) : dropdowntree.value;
|
|
1148
|
+
this.selectedColumn = this.getColumn(ddlVal);
|
|
1149
|
+
if (Object.keys(rule).length) {
|
|
1150
|
+
this.changeRule(rule, {
|
|
1151
|
+
element: dropdowntree.element,
|
|
1152
|
+
itemData: this.selectedColumn
|
|
1153
|
+
});
|
|
993
1154
|
}
|
|
994
1155
|
};
|
|
995
1156
|
QueryBuilder.prototype.dropdownTreeFiltering = function (args) {
|
|
@@ -1004,7 +1165,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1004
1165
|
var ruleElem = document.getElementById(ruleElemID);
|
|
1005
1166
|
this.ddTree = getComponent(ruleElem.querySelector('input.e-dropdowntree'), 'dropdowntree');
|
|
1006
1167
|
var hierarchicalData = extend([], this.columns, [], true);
|
|
1007
|
-
// Cancel the default filtering.
|
|
1008
1168
|
args.cancel = true;
|
|
1009
1169
|
if (args.text === '') {
|
|
1010
1170
|
this.changeDataSource(hierarchicalData);
|
|
@@ -1164,7 +1324,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1164
1324
|
}
|
|
1165
1325
|
};
|
|
1166
1326
|
QueryBuilder.prototype.renderToolTip = function (element) {
|
|
1167
|
-
var tooltip = new Tooltip({
|
|
1327
|
+
var tooltip = new Tooltip({
|
|
1328
|
+
content: this.l10n.getConstant('ValidationMessage'), isSticky: true,
|
|
1168
1329
|
position: 'BottomCenter', cssClass: 'e-querybuilder-error', afterClose: function () {
|
|
1169
1330
|
tooltip.destroy();
|
|
1170
1331
|
}, beforeOpen: function (args) {
|
|
@@ -1172,7 +1333,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1172
1333
|
if (tooltipCloseElement) {
|
|
1173
1334
|
tooltipCloseElement.style.display = 'none';
|
|
1174
1335
|
}
|
|
1175
|
-
}
|
|
1336
|
+
}
|
|
1337
|
+
});
|
|
1176
1338
|
tooltip.appendTo(element);
|
|
1177
1339
|
tooltip.open(element);
|
|
1178
1340
|
};
|
|
@@ -1330,7 +1492,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1330
1492
|
groupElem.appendChild(groupHdrElem);
|
|
1331
1493
|
grpBodyElem.appendChild(rulesElem);
|
|
1332
1494
|
groupElem.appendChild(grpBodyElem);
|
|
1333
|
-
// create button group in OR and AND process
|
|
1334
1495
|
if (!this.headerTemplate) {
|
|
1335
1496
|
if (this.allowDragAndDrop) {
|
|
1336
1497
|
dragClsName = 'e-icons e-drag-qb-rule';
|
|
@@ -1338,8 +1499,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1338
1499
|
else {
|
|
1339
1500
|
dragClsName = 'e-icons e-drag-qb-rule e-hidden';
|
|
1340
1501
|
}
|
|
1341
|
-
var spanDragElement = this.createElement('span', {
|
|
1342
|
-
|
|
1502
|
+
var spanDragElement = this.createElement('span', {
|
|
1503
|
+
attrs: {
|
|
1504
|
+
class: dragClsName, 'aria-label': 'drag handle',
|
|
1505
|
+
title: 'drag handle'
|
|
1506
|
+
}
|
|
1507
|
+
});
|
|
1343
1508
|
groupHdrElem.appendChild(spanDragElement);
|
|
1344
1509
|
var className = this.enableSeparateConnector && !isConnector ? 'e-lib e-btn-group e-qb-toggle-btn' : 'e-lib e-btn-group';
|
|
1345
1510
|
glueElem = this.createElement('div', { attrs: { class: className, role: 'group' } });
|
|
@@ -1357,13 +1522,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1357
1522
|
}
|
|
1358
1523
|
inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-and', value: 'AND' } });
|
|
1359
1524
|
glueElem.appendChild(inputElem);
|
|
1360
|
-
labelElem = this.createElement('label', {
|
|
1361
|
-
|
|
1525
|
+
labelElem = this.createElement('label', {
|
|
1526
|
+
attrs: { class: 'e-lib e-btn e-btngroup-and-lbl e-small' },
|
|
1527
|
+
innerHTML: this.l10n.getConstant('AND')
|
|
1528
|
+
});
|
|
1362
1529
|
glueElem.appendChild(labelElem);
|
|
1363
1530
|
inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-or', value: 'OR' } });
|
|
1364
1531
|
glueElem.appendChild(inputElem);
|
|
1365
|
-
labelElem = this.createElement('label', {
|
|
1366
|
-
|
|
1532
|
+
labelElem = this.createElement('label', {
|
|
1533
|
+
attrs: { class: 'e-lib e-btn e-btngroup-or-lbl e-small' },
|
|
1534
|
+
innerHTML: this.l10n.getConstant('OR')
|
|
1535
|
+
});
|
|
1367
1536
|
glueElem.appendChild(labelElem);
|
|
1368
1537
|
groupHdrElem.appendChild(glueElem);
|
|
1369
1538
|
grpActElem = this.createElement('div', { attrs: { class: 'e-group-action' } });
|
|
@@ -1396,8 +1565,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1396
1565
|
else {
|
|
1397
1566
|
dragClsName = 'e-icons e-drag-qb-rule e-hidden';
|
|
1398
1567
|
}
|
|
1399
|
-
var spanDragElement = this.createElement('span', {
|
|
1400
|
-
|
|
1568
|
+
var spanDragElement = this.createElement('span', {
|
|
1569
|
+
attrs: {
|
|
1570
|
+
class: dragClsName, 'aria-label': 'drag handle',
|
|
1571
|
+
title: 'drag handle'
|
|
1572
|
+
}
|
|
1573
|
+
});
|
|
1401
1574
|
fieldElem.appendChild(spanDragElement);
|
|
1402
1575
|
var filterElem = this.createElement('input', { attrs: { type: 'text', class: 'e-filter-input' } });
|
|
1403
1576
|
tempElem.appendChild(filterElem);
|
|
@@ -1678,9 +1851,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1678
1851
|
}
|
|
1679
1852
|
this.updatedRule = null;
|
|
1680
1853
|
if (this.headerTemplate) {
|
|
1681
|
-
var
|
|
1682
|
-
|
|
1683
|
-
|
|
1854
|
+
var args_1 = {
|
|
1855
|
+
requestType: 'header-template-create', ruleID: groupElem.id, condition: condition,
|
|
1856
|
+
notCondition: this.enableNotCondition ? not : undefined
|
|
1857
|
+
};
|
|
1858
|
+
this.trigger('actionBegin', args_1);
|
|
1684
1859
|
}
|
|
1685
1860
|
else {
|
|
1686
1861
|
if (this.enableSeparateConnector) {
|
|
@@ -1718,9 +1893,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1718
1893
|
}
|
|
1719
1894
|
};
|
|
1720
1895
|
QueryBuilder.prototype.setMultiConnector = function (trgt) {
|
|
1721
|
-
if (this.enableSeparateConnector && !this.headerTemplate) {
|
|
1722
|
-
|
|
1723
|
-
|
|
1896
|
+
if (this.enableSeparateConnector && !this.headerTemplate && trgt.previousElementSibling) {
|
|
1897
|
+
var btnGroupElem = this.groupTemplate(true).querySelector('.e-btn-group');
|
|
1898
|
+
if (btnGroupElem) {
|
|
1899
|
+
trgt.parentElement.insertBefore(btnGroupElem, trgt);
|
|
1724
1900
|
var notElem = trgt.previousElementSibling.childNodes[0];
|
|
1725
1901
|
if (notElem.classList.contains('e-qb-toggle')) {
|
|
1726
1902
|
notElem.style.display = 'none';
|
|
@@ -1763,9 +1939,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1763
1939
|
groupHdr = groupElem;
|
|
1764
1940
|
}
|
|
1765
1941
|
if (this.headerTemplate) {
|
|
1766
|
-
args = {
|
|
1942
|
+
args = {
|
|
1943
|
+
requestType: 'header-template-initialize', ruleID: groupElem.id,
|
|
1767
1944
|
notCondition: this.enableNotCondition ? not : undefined,
|
|
1768
|
-
condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID
|
|
1945
|
+
condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID
|
|
1946
|
+
};
|
|
1769
1947
|
this.trigger('actionBegin', args);
|
|
1770
1948
|
if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {
|
|
1771
1949
|
args.requestType = 'rule-template-create';
|
|
@@ -1918,7 +2096,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1918
2096
|
QueryBuilder.prototype.templateChange = function (element, value, type) {
|
|
1919
2097
|
var grpElem = closest(element, '.e-group-container');
|
|
1920
2098
|
var eventsArgs;
|
|
1921
|
-
var rules = this.getParentGroup(grpElem);
|
|
2099
|
+
var rules = grpElem && this.getParentGroup(grpElem);
|
|
1922
2100
|
var ruleElem = closest(element, '.e-rule-container');
|
|
1923
2101
|
var index = 0;
|
|
1924
2102
|
if (this.allowValidation) {
|
|
@@ -1933,7 +2111,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1933
2111
|
index++;
|
|
1934
2112
|
}
|
|
1935
2113
|
}
|
|
1936
|
-
var rule = rules.rules[index];
|
|
2114
|
+
var rule = rules && rules.rules[index];
|
|
1937
2115
|
if (type === 'field') {
|
|
1938
2116
|
this.selectedColumn = this.getColumn(value);
|
|
1939
2117
|
}
|
|
@@ -1941,7 +2119,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1941
2119
|
this.selectedColumn = this.getColumn(rule.field);
|
|
1942
2120
|
}
|
|
1943
2121
|
var operVal;
|
|
1944
|
-
this.previousColumn = this.getColumn(rule.field);
|
|
2122
|
+
this.previousColumn = rule && this.getColumn(rule.field);
|
|
1945
2123
|
var beforeRules = this.getValidRules(this.rule);
|
|
1946
2124
|
if (this.selectedColumn) {
|
|
1947
2125
|
if (this.selectedColumn.operators) {
|
|
@@ -1956,11 +2134,16 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1956
2134
|
switch (type) {
|
|
1957
2135
|
case 'field':
|
|
1958
2136
|
if (isNullOrUndefined(value)) {
|
|
1959
|
-
rule
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
2137
|
+
if (!isNullOrUndefined(rule)) {
|
|
2138
|
+
rule.field = '';
|
|
2139
|
+
rule.label = '';
|
|
2140
|
+
rule.type = '';
|
|
2141
|
+
rule.value = '';
|
|
2142
|
+
rule.operator = '';
|
|
2143
|
+
}
|
|
2144
|
+
else {
|
|
2145
|
+
return;
|
|
2146
|
+
}
|
|
1964
2147
|
}
|
|
1965
2148
|
else {
|
|
1966
2149
|
rule.field = value;
|
|
@@ -2011,10 +2194,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2011
2194
|
ruleElement.className.indexOf('e-separate-rule') < 0) {
|
|
2012
2195
|
ruleElement.className += ' e-separate-rule';
|
|
2013
2196
|
}
|
|
2014
|
-
var args = {
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2197
|
+
var args = {
|
|
2198
|
+
requestType: 'template-create', action: type, ruleID: grpEle.id,
|
|
2199
|
+
fields: this.fields, rule: rule
|
|
2200
|
+
};
|
|
2201
|
+
eventsArgs = {
|
|
2202
|
+
groupID: grpElem.id.replace(this.element.id + '_', ''), ruleID: grpEle.id.replace(this.element.id + '_', ''),
|
|
2203
|
+
value: rule.field, type: 'field'
|
|
2204
|
+
};
|
|
2018
2205
|
this.trigger('actionBegin', args);
|
|
2019
2206
|
this.trigger('change', eventsArgs);
|
|
2020
2207
|
}
|
|
@@ -2155,8 +2342,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2155
2342
|
var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
|
|
2156
2343
|
var itemData = ddl.getItemData();
|
|
2157
2344
|
ddl.value = itemData.value;
|
|
2158
|
-
var customArgs = {
|
|
2159
|
-
|
|
2345
|
+
var customArgs = {
|
|
2346
|
+
element: ddl.element, value: itemData.value, isInteracted: true,
|
|
2347
|
+
previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null
|
|
2348
|
+
};
|
|
2160
2349
|
if (ddl.previousValue !== ddl.value) {
|
|
2161
2350
|
this.changeField(customArgs);
|
|
2162
2351
|
}
|
|
@@ -2269,8 +2458,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2269
2458
|
this.selectedColumn = this.getColumn(ddlValue);
|
|
2270
2459
|
var ruleElem = closest(flt, '.e-rule-container');
|
|
2271
2460
|
var ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
2272
|
-
var eventsArgs = {
|
|
2273
|
-
|
|
2461
|
+
var eventsArgs = {
|
|
2462
|
+
groupID: grID, ruleID: ruleID, selectedField: this.fieldMode === 'DropdownTree' ?
|
|
2463
|
+
dl.value[0] : dl.value, cancel: false, type: 'field'
|
|
2464
|
+
};
|
|
2274
2465
|
if (!this.isImportRules && !this.prvtEvtTgrDaD) {
|
|
2275
2466
|
this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {
|
|
2276
2467
|
_this.fieldChangeSuccess(observedChangeArgs, tmpRl, flt, rl, dArg);
|
|
@@ -2859,19 +3050,25 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2859
3050
|
: getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');
|
|
2860
3051
|
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);
|
|
2861
3052
|
if (typeof itemData.template === 'string' || itemData.template.write === undefined) {
|
|
2862
|
-
var args = {
|
|
2863
|
-
|
|
3053
|
+
var args = {
|
|
3054
|
+
rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,
|
|
3055
|
+
requestType: 'value-template-create'
|
|
3056
|
+
};
|
|
2864
3057
|
this.trigger('actionBegin', args);
|
|
2865
3058
|
}
|
|
2866
3059
|
else {
|
|
2867
3060
|
var template = itemData.template;
|
|
2868
3061
|
if (typeof template.write === 'string') {
|
|
2869
|
-
getValue(template.write, window)({
|
|
2870
|
-
|
|
3062
|
+
getValue(template.write, window)({
|
|
3063
|
+
elements: tempElements.length > 1 ? tempElements : tempElements[0], values: rule.value,
|
|
3064
|
+
operator: tempRule.operator, field: column.field, dataSource: column.values
|
|
3065
|
+
});
|
|
2871
3066
|
}
|
|
2872
3067
|
else if (typeof itemData.template !== 'function') {
|
|
2873
|
-
itemData.template.write({
|
|
2874
|
-
|
|
3068
|
+
itemData.template.write({
|
|
3069
|
+
elements: tempElements.length > 1 ? tempElements : tempElements[0],
|
|
3070
|
+
values: rule.value, operator: tempRule.operator, field: column.field, dataSource: column.values
|
|
3071
|
+
});
|
|
2875
3072
|
}
|
|
2876
3073
|
}
|
|
2877
3074
|
};
|
|
@@ -3369,8 +3566,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3369
3566
|
}
|
|
3370
3567
|
else {
|
|
3371
3568
|
if (typeof itemData.template === 'string' || itemData.template.create === undefined) {
|
|
3372
|
-
args = {
|
|
3373
|
-
|
|
3569
|
+
args = {
|
|
3570
|
+
requestType: 'value-template-initialize', ruleID: ruleID, field: field, operator: operator, rule: rule,
|
|
3571
|
+
renderTemplate: true
|
|
3572
|
+
};
|
|
3374
3573
|
this.trigger('actionBegin', args, function (observedActionArgs) {
|
|
3375
3574
|
isRendered = _this.actionBeginSuccessCallBack(observedActionArgs, itemData, ruleID, field, target);
|
|
3376
3575
|
});
|
|
@@ -3578,7 +3777,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3578
3777
|
element = element ? element : ruleElement.nextElementSibling.nextElementSibling.querySelector('input.e-control');
|
|
3579
3778
|
operator = getComponent(element, 'dropdownlist').value.toString();
|
|
3580
3779
|
rule.rules[index].operator = operator;
|
|
3581
|
-
// Value Fields
|
|
3582
3780
|
var valueContainer = ruleElement.nextElementSibling.nextElementSibling;
|
|
3583
3781
|
var elementCln = valueContainer.querySelectorAll('input.e-control');
|
|
3584
3782
|
if (elementCln.length < 1) {
|
|
@@ -3740,6 +3938,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3740
3938
|
}
|
|
3741
3939
|
};
|
|
3742
3940
|
QueryBuilder.prototype.validateValue = function (rule, ruleElem, index) {
|
|
3941
|
+
if (isNullOrUndefined(rule) && isNullOrUndefined(ruleElem)) {
|
|
3942
|
+
return;
|
|
3943
|
+
}
|
|
3743
3944
|
if (!isNullOrUndefined(index)) {
|
|
3744
3945
|
rule = rule.rules[index];
|
|
3745
3946
|
}
|
|
@@ -3901,8 +4102,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3901
4102
|
if (grouplen) {
|
|
3902
4103
|
this.isPublic = true;
|
|
3903
4104
|
for (var i = 0, len = groups.length; i < len; i++) {
|
|
3904
|
-
this.updatedRule = {
|
|
3905
|
-
|
|
4105
|
+
this.updatedRule = {
|
|
4106
|
+
isLocked: groups[i].isLocked, condition: groups[i].condition,
|
|
4107
|
+
not: groups[i].not
|
|
4108
|
+
};
|
|
3906
4109
|
this.importRules(groups[i], groupElem, false, groups[i].not);
|
|
3907
4110
|
}
|
|
3908
4111
|
this.isPublic = false;
|
|
@@ -4031,10 +4234,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4031
4234
|
this.element.querySelector('.e-group-header').appendChild(collapseElem);
|
|
4032
4235
|
};
|
|
4033
4236
|
QueryBuilder.prototype.columnSort = function () {
|
|
4034
|
-
if (this.sortDirection.toLowerCase() === 'descending') {
|
|
4237
|
+
if (this.sortDirection && this.sortDirection.toLowerCase() === 'descending') {
|
|
4035
4238
|
this.columns = new DataManager(this.columns).executeLocal(new Query().sortByDesc('field'));
|
|
4036
4239
|
}
|
|
4037
|
-
else if (this.sortDirection.toLowerCase() === 'ascending') {
|
|
4240
|
+
else if (this.sortDirection && this.sortDirection.toLowerCase() === 'ascending') {
|
|
4038
4241
|
this.columns = new DataManager(this.columns).executeLocal(new Query().sortBy('field'));
|
|
4039
4242
|
}
|
|
4040
4243
|
};
|
|
@@ -4521,8 +4724,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4521
4724
|
}
|
|
4522
4725
|
}
|
|
4523
4726
|
}
|
|
4524
|
-
var dragEventArgs = {
|
|
4525
|
-
|
|
4727
|
+
var dragEventArgs = {
|
|
4728
|
+
dragRuleID: targetElem !== null ? targetElem.id : grpElem !== null ? grpElem.id : null,
|
|
4729
|
+
dragGroupID: grpElem !== null ? grpElem.id : null, cancel: false
|
|
4730
|
+
};
|
|
4526
4731
|
this.trigger('drag', dragEventArgs);
|
|
4527
4732
|
this.isDragEventPrevent = dragEventArgs.cancel;
|
|
4528
4733
|
};
|
|
@@ -4543,8 +4748,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4543
4748
|
var prevRule;
|
|
4544
4749
|
if (!isPreventelem) {
|
|
4545
4750
|
var targetGrp = closest(e.target, '.e-group-container');
|
|
4546
|
-
var dropEventArgs = {
|
|
4547
|
-
|
|
4751
|
+
var dropEventArgs = {
|
|
4752
|
+
cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
|
|
4753
|
+
: targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null
|
|
4754
|
+
};
|
|
4548
4755
|
this.trigger('drop', dropEventArgs);
|
|
4549
4756
|
if (dropEventArgs.cancel) {
|
|
4550
4757
|
isPreventelem = true;
|
|
@@ -5313,7 +5520,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
5313
5520
|
else {
|
|
5314
5521
|
if (customObj && (customObj.type === 'question' || customObj.type === 'answer')) {
|
|
5315
5522
|
var notValue = rule.not;
|
|
5316
|
-
rule = {
|
|
5523
|
+
rule = {
|
|
5524
|
+
'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value,
|
|
5317
5525
|
'condition': rule.condition, 'rules': rule.rules
|
|
5318
5526
|
};
|
|
5319
5527
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -5635,21 +5843,40 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
5635
5843
|
var columns = this.columns;
|
|
5636
5844
|
var column;
|
|
5637
5845
|
columns = col ? col : columns;
|
|
5638
|
-
|
|
5846
|
+
var fieldParts = this.separator !== '' ? (field ? field.split(this.separator) : []) : [field];
|
|
5847
|
+
var rootField = fieldParts && fieldParts.length > 0 ? fieldParts[0] : null;
|
|
5848
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5639
5849
|
if (columns[i].field === field) {
|
|
5640
5850
|
column = columns[i];
|
|
5641
5851
|
break;
|
|
5642
5852
|
}
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5853
|
+
}
|
|
5854
|
+
if (!column && this.separator !== '') {
|
|
5855
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5856
|
+
if (columns[i].field === rootField) {
|
|
5857
|
+
if (columns[i].columns) {
|
|
5858
|
+
var subField = field.substring(rootField.length + this.separator.length);
|
|
5859
|
+
if (subField) {
|
|
5860
|
+
column = this.getColumn(subField, columns[i].columns);
|
|
5861
|
+
}
|
|
5862
|
+
else {
|
|
5863
|
+
column = columns[i];
|
|
5864
|
+
}
|
|
5865
|
+
}
|
|
5866
|
+
else {
|
|
5867
|
+
column = columns[i];
|
|
5868
|
+
}
|
|
5646
5869
|
break;
|
|
5647
5870
|
}
|
|
5648
5871
|
}
|
|
5649
|
-
|
|
5650
|
-
|
|
5651
|
-
|
|
5652
|
-
|
|
5872
|
+
}
|
|
5873
|
+
if (!column) {
|
|
5874
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5875
|
+
if (columns[i].columns) {
|
|
5876
|
+
column = this.getColumn(field, columns[i].columns);
|
|
5877
|
+
if (column) {
|
|
5878
|
+
break;
|
|
5879
|
+
}
|
|
5653
5880
|
}
|
|
5654
5881
|
}
|
|
5655
5882
|
}
|
|
@@ -6103,6 +6330,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6103
6330
|
return false;
|
|
6104
6331
|
};
|
|
6105
6332
|
QueryBuilder.prototype.getSqlString = function (rules, enableEscape, queryStr, sqlLocale) {
|
|
6333
|
+
var _this = this;
|
|
6106
6334
|
var isRoot = false;
|
|
6107
6335
|
if (!queryStr && queryStr !== '') {
|
|
6108
6336
|
queryStr = '';
|
|
@@ -6111,86 +6339,74 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6111
6339
|
else {
|
|
6112
6340
|
queryStr += '(';
|
|
6113
6341
|
}
|
|
6114
|
-
var condition = rules.condition;
|
|
6115
6342
|
if (rules.not) {
|
|
6116
|
-
var
|
|
6117
|
-
|
|
6118
|
-
rulesNotCondition = sqlLocale ? this.l10n.getConstant('NOT').toUpperCase() + ' (' : 'NOT (';
|
|
6119
|
-
queryStr += rulesNotCondition;
|
|
6120
|
-
}
|
|
6121
|
-
else {
|
|
6122
|
-
rulesNotCondition = sqlLocale ? ' ' + this.l10n.getConstant('NOT').toUpperCase() + ' (' : ' NOT (';
|
|
6123
|
-
queryStr += rulesNotCondition;
|
|
6124
|
-
}
|
|
6343
|
+
var notPrefix = sqlLocale ? this.l10n.getConstant('NOT').toUpperCase() + ' ' : 'NOT ';
|
|
6344
|
+
queryStr += isRoot ? notPrefix + '(' : ' ' + notPrefix + '(';
|
|
6125
6345
|
}
|
|
6126
|
-
if (rules.rules) {
|
|
6127
|
-
|
|
6128
|
-
|
|
6129
|
-
|
|
6130
|
-
|
|
6131
|
-
|
|
6346
|
+
if (rules.rules && rules.rules.length) {
|
|
6347
|
+
queryStr += rules.rules.reduce(function (result, rule, j) {
|
|
6348
|
+
var ruleStr = '';
|
|
6349
|
+
if (rule.rules) {
|
|
6350
|
+
ruleStr = _this.getSqlString(rule, enableEscape, '', sqlLocale);
|
|
6351
|
+
if (_this.enableSeparateConnector) {
|
|
6352
|
+
rules.condition = rule.condition;
|
|
6132
6353
|
}
|
|
6133
6354
|
}
|
|
6134
6355
|
else {
|
|
6135
|
-
var
|
|
6356
|
+
var ruleOpertor = sqlLocale ? _this.sqlOperators[rule.operator] : _this.operators[rule.operator];
|
|
6136
6357
|
var valueStr = '';
|
|
6137
|
-
var ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];
|
|
6138
6358
|
if (rule.value instanceof Array) {
|
|
6139
6359
|
if (rule.operator.toString().indexOf('between') > -1) {
|
|
6140
|
-
var ruleCondition = sqlLocale ? ' ' +
|
|
6141
|
-
if (rule.type === 'date' && !
|
|
6142
|
-
valueStr
|
|
6360
|
+
var ruleCondition = sqlLocale ? ' ' + _this.l10n.getConstant('AND').toUpperCase() + ' ' : ' AND ';
|
|
6361
|
+
if (rule.type === 'date' && !_this.isDateFunction(rule.value[0])) {
|
|
6362
|
+
valueStr = "\"" + rule.value[0] + "\"" + ruleCondition + "\"" + rule.value[1] + "\"";
|
|
6143
6363
|
}
|
|
6144
6364
|
else {
|
|
6145
|
-
valueStr
|
|
6365
|
+
valueStr = "" + rule.value[0] + ruleCondition + rule.value[1];
|
|
6146
6366
|
}
|
|
6147
6367
|
}
|
|
6148
6368
|
else {
|
|
6149
6369
|
if (typeof rule.value[0] === 'string' && rule.value !== null) {
|
|
6150
|
-
|
|
6151
|
-
|
|
6152
|
-
valueStr += ',"' + rule.value[k] + '"';
|
|
6153
|
-
}
|
|
6154
|
-
valueStr += ')';
|
|
6370
|
+
var valueArray = rule.value;
|
|
6371
|
+
valueStr = '("' + valueArray.join('","') + '")';
|
|
6155
6372
|
}
|
|
6156
6373
|
else {
|
|
6157
|
-
valueStr
|
|
6374
|
+
valueStr = "(" + rule.value + ")";
|
|
6158
6375
|
}
|
|
6159
6376
|
}
|
|
6160
6377
|
}
|
|
6161
6378
|
else {
|
|
6162
6379
|
if (rule.operator.toString().indexOf('startswith') > -1) {
|
|
6163
|
-
valueStr
|
|
6380
|
+
valueStr = rule.value ? "(\"" + rule.value + "%\")" : "(" + rule.value + ")";
|
|
6164
6381
|
}
|
|
6165
6382
|
else if (rule.operator.toString().indexOf('endswith') > -1) {
|
|
6166
|
-
valueStr
|
|
6383
|
+
valueStr = rule.value ? "(\"%" + rule.value + "\")" : "(" + rule.value + ")";
|
|
6167
6384
|
}
|
|
6168
6385
|
else if (rule.operator.toString().indexOf('contains') > -1) {
|
|
6169
|
-
valueStr
|
|
6386
|
+
valueStr = rule.value ? "(\"%" + rule.value + "%\")" : "(" + rule.value + ")";
|
|
6170
6387
|
}
|
|
6171
6388
|
else {
|
|
6172
6389
|
if (rule.type === 'number' || typeof rule.value === 'boolean' ||
|
|
6173
6390
|
(rule.value === null && (rule.operator.toString().indexOf('empty') < -1))) {
|
|
6174
|
-
valueStr
|
|
6391
|
+
valueStr = "" + rule.value;
|
|
6175
6392
|
}
|
|
6176
6393
|
else if (rule.operator.toString().indexOf('empty') > -1) {
|
|
6177
|
-
valueStr
|
|
6394
|
+
valueStr = '""';
|
|
6178
6395
|
}
|
|
6179
6396
|
else {
|
|
6180
|
-
valueStr
|
|
6397
|
+
valueStr = "\"" + rule.value + "\"";
|
|
6181
6398
|
}
|
|
6182
6399
|
}
|
|
6183
6400
|
}
|
|
6401
|
+
var fieldName = rule.field;
|
|
6402
|
+
if (enableEscape) {
|
|
6403
|
+
fieldName = '`' + fieldName + '`';
|
|
6404
|
+
}
|
|
6405
|
+
else if (fieldName.indexOf(' ') > -1) {
|
|
6406
|
+
fieldName = '"' + fieldName + '"';
|
|
6407
|
+
}
|
|
6184
6408
|
if (rule.operator.toString().indexOf('null') > -1) {
|
|
6185
|
-
|
|
6186
|
-
rule.field = '`' + rule.field + '`';
|
|
6187
|
-
}
|
|
6188
|
-
else {
|
|
6189
|
-
if (rule.field.indexOf(' ') > -1) {
|
|
6190
|
-
rule.field = '"' + rule.field + '"';
|
|
6191
|
-
}
|
|
6192
|
-
}
|
|
6193
|
-
queryStr += rule.field + ' ' + ruleOpertor;
|
|
6409
|
+
ruleStr = fieldName + ' ' + ruleOpertor;
|
|
6194
6410
|
}
|
|
6195
6411
|
else {
|
|
6196
6412
|
var custOper = ruleOpertor;
|
|
@@ -6200,33 +6416,21 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6200
6416
|
else if (rule.operator === 'isnotempty') {
|
|
6201
6417
|
custOper = '!=';
|
|
6202
6418
|
}
|
|
6203
|
-
|
|
6204
|
-
rule.field = '`' + rule.field + '`';
|
|
6205
|
-
}
|
|
6206
|
-
else {
|
|
6207
|
-
if (rule.field.indexOf(' ') > -1) {
|
|
6208
|
-
rule.field = '"' + rule.field + '"';
|
|
6209
|
-
}
|
|
6210
|
-
}
|
|
6211
|
-
queryStr += rule.field + ' ' + custOper + ' ' + valueStr;
|
|
6212
|
-
}
|
|
6213
|
-
if (rule.condition && rule.condition !== '') {
|
|
6214
|
-
condition = rule.condition;
|
|
6419
|
+
ruleStr = fieldName + ' ' + custOper + ' ' + valueStr;
|
|
6215
6420
|
}
|
|
6216
6421
|
}
|
|
6217
|
-
if (j !==
|
|
6218
|
-
|
|
6219
|
-
var rule = rules.rules[j];
|
|
6220
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6422
|
+
if (j !== rules.rules.length - 1) {
|
|
6423
|
+
var condition = rules.condition;
|
|
6221
6424
|
if (condition === '' || (rule && rule.condition !== '' && rule.custom && rule.custom.isCustom)) {
|
|
6222
6425
|
condition = rule.condition;
|
|
6223
6426
|
}
|
|
6224
6427
|
if (condition) {
|
|
6225
|
-
condition = sqlLocale ?
|
|
6226
|
-
|
|
6428
|
+
condition = sqlLocale ? _this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
|
|
6429
|
+
ruleStr += ' ' + condition + ' ';
|
|
6227
6430
|
}
|
|
6228
6431
|
}
|
|
6229
|
-
|
|
6432
|
+
return result + ruleStr;
|
|
6433
|
+
}, '');
|
|
6230
6434
|
}
|
|
6231
6435
|
if (!isRoot) {
|
|
6232
6436
|
queryStr += ')';
|
|
@@ -6544,23 +6748,19 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6544
6748
|
return subOp[i].length;
|
|
6545
6749
|
}
|
|
6546
6750
|
}
|
|
6547
|
-
//Left Parenthesis
|
|
6548
6751
|
if (/^\(/.exec(sqlString)) {
|
|
6549
6752
|
this.parser.push(['Left', '(']);
|
|
6550
6753
|
return 1;
|
|
6551
6754
|
}
|
|
6552
|
-
//Right Parenthesis
|
|
6553
6755
|
if (/^\)/.exec(sqlString)) {
|
|
6554
6756
|
this.parser.push(['Right', ')']);
|
|
6555
6757
|
return 1;
|
|
6556
6758
|
}
|
|
6557
|
-
//Boolean
|
|
6558
6759
|
if (/^(true|false)/.exec(sqlString)) {
|
|
6559
6760
|
matchValue = /^(true|false)/.exec(sqlString)[0];
|
|
6560
6761
|
this.parser.push(['String', matchValue]);
|
|
6561
6762
|
return matchValue.length;
|
|
6562
6763
|
}
|
|
6563
|
-
//Null
|
|
6564
6764
|
if (/^null/.exec(sqlString)) {
|
|
6565
6765
|
matchValue = /^null/.exec(sqlString)[0];
|
|
6566
6766
|
this.parser.push(['String', null]);
|
|
@@ -6585,7 +6785,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6585
6785
|
return matchValue.length;
|
|
6586
6786
|
}
|
|
6587
6787
|
}
|
|
6588
|
-
//String
|
|
6589
6788
|
var singleString = this.getSingleQuoteString(sqlString);
|
|
6590
6789
|
if (singleString !== '') {
|
|
6591
6790
|
matchValue = singleString;
|
|
@@ -6605,24 +6804,20 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6605
6804
|
!this.checkCondition(sqlString, matchValue)) {
|
|
6606
6805
|
matchValue = this.combineSingleQuoteString(sqlString, matchValue);
|
|
6607
6806
|
}
|
|
6608
|
-
// end
|
|
6609
6807
|
this.parser.push(['String', matchValue]);
|
|
6610
6808
|
return matchValue.length;
|
|
6611
6809
|
}
|
|
6612
|
-
// Double String
|
|
6613
6810
|
var doubleString = this.getDoubleQuoteString(sqlString);
|
|
6614
6811
|
if (doubleString !== '') {
|
|
6615
6812
|
matchValue = doubleString;
|
|
6616
6813
|
this.parser.push(['DoubleString', matchValue]);
|
|
6617
6814
|
return matchValue.length;
|
|
6618
6815
|
}
|
|
6619
|
-
//Number
|
|
6620
6816
|
if (/^\d*\.?\d+/.exec(sqlString)) {
|
|
6621
6817
|
matchValue = /^\d*\.?\d+/.exec(sqlString)[0];
|
|
6622
6818
|
this.parser.push(['Number', matchValue]);
|
|
6623
6819
|
return matchValue.length;
|
|
6624
6820
|
}
|
|
6625
|
-
//Negative Number
|
|
6626
6821
|
if (/^-?\d*\.?\d+/.exec(sqlString)) {
|
|
6627
6822
|
matchValue = /^-?\d*\.?\d+/.exec(sqlString)[0];
|
|
6628
6823
|
this.parser.push(['Number', matchValue]);
|
|
@@ -6790,7 +6985,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6790
6985
|
fieldName += this.separator;
|
|
6791
6986
|
}
|
|
6792
6987
|
}
|
|
6793
|
-
return this.getColumn(fieldName).label;
|
|
6988
|
+
return this.getColumn(fieldName) ? this.getColumn(fieldName).label : '';
|
|
6794
6989
|
};
|
|
6795
6990
|
QueryBuilder.prototype.processParser = function (parser, rules, levelColl, sqlLocale) {
|
|
6796
6991
|
var j;
|
|
@@ -7022,12 +7217,16 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
7022
7217
|
}
|
|
7023
7218
|
}
|
|
7024
7219
|
if (this.enableSeparateConnector) {
|
|
7025
|
-
this.addRules([{
|
|
7026
|
-
'
|
|
7220
|
+
this.addRules([{
|
|
7221
|
+
'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,
|
|
7222
|
+
'value': getRule.value, 'condition': getRule.condition
|
|
7223
|
+
}], groupId);
|
|
7027
7224
|
}
|
|
7028
7225
|
else {
|
|
7029
|
-
this.addRules([{
|
|
7030
|
-
'
|
|
7226
|
+
this.addRules([{
|
|
7227
|
+
'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,
|
|
7228
|
+
'value': getRule.value
|
|
7229
|
+
}], groupId);
|
|
7031
7230
|
}
|
|
7032
7231
|
this.ruleIndex = -1;
|
|
7033
7232
|
};
|
|
@@ -7202,115 +7401,65 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
7202
7401
|
this.disableRuleControls(target, groupElem, isDisabled);
|
|
7203
7402
|
};
|
|
7204
7403
|
QueryBuilder.prototype.disableRuleControls = function (target, groupElem, isDisabled) {
|
|
7205
|
-
var
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
|
|
7210
|
-
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7404
|
+
var disableComponents = function (elements, componentGetter, isDisabled) {
|
|
7405
|
+
elements.forEach(function (element) {
|
|
7406
|
+
var component = componentGetter(element);
|
|
7407
|
+
if ('enabled' in component) {
|
|
7408
|
+
component.enabled = !isDisabled;
|
|
7409
|
+
}
|
|
7410
|
+
else if ('disabled' in component) {
|
|
7411
|
+
component.disabled = isDisabled;
|
|
7412
|
+
}
|
|
7413
|
+
});
|
|
7414
|
+
};
|
|
7415
|
+
var elements = {
|
|
7416
|
+
ddl: groupElem.querySelectorAll('.e-control.e-dropdownlist'),
|
|
7417
|
+
numeric: groupElem.querySelectorAll('.e-control.e-numerictextbox'),
|
|
7418
|
+
text: groupElem.querySelectorAll('.e-control.e-textbox'),
|
|
7419
|
+
date: groupElem.querySelectorAll('.e-control.e-datepicker'),
|
|
7420
|
+
checkbox: groupElem.querySelectorAll('.e-control.e-checkbox'),
|
|
7421
|
+
radio: groupElem.querySelectorAll('.e-control.e-radio'),
|
|
7422
|
+
multiSelect: groupElem.querySelectorAll('.e-control.e-multiselect'),
|
|
7423
|
+
deleteElem: groupElem.querySelectorAll('.e-rule-delete'),
|
|
7424
|
+
lockElem: groupElem.querySelectorAll('.e-lock-rule'),
|
|
7425
|
+
cloneElem: groupElem.querySelectorAll('.e-clone-rule'),
|
|
7426
|
+
ruleElem: groupElem.querySelectorAll('.e-rule-container')
|
|
7427
|
+
};
|
|
7428
|
+
elements.deleteElem.forEach(function (elem, i) {
|
|
7217
7429
|
if (isDisabled) {
|
|
7218
|
-
if (ruleElem[i] && ruleElem[i].classList.contains('e-disable')) {
|
|
7219
|
-
ruleElem[i].classList.add('e-disable');
|
|
7430
|
+
if (elements.ruleElem[i] && elements.ruleElem[i].classList.contains('e-disable')) {
|
|
7431
|
+
elements.ruleElem[i].classList.add('e-disable');
|
|
7220
7432
|
}
|
|
7221
|
-
deleteElem[i].disabled = true;
|
|
7222
|
-
if (cloneElem[i]) {
|
|
7223
|
-
cloneElem[i].disabled = true;
|
|
7433
|
+
elements.deleteElem[i].disabled = true;
|
|
7434
|
+
if (elements.cloneElem[i]) {
|
|
7435
|
+
elements.cloneElem[i].disabled = true;
|
|
7224
7436
|
}
|
|
7225
|
-
if (lockElem[i] !== target) {
|
|
7226
|
-
lockElem[i].disabled = true;
|
|
7227
|
-
lockElem[i].children[0].classList.remove('e-unlock');
|
|
7228
|
-
lockElem[i].children[0].classList.add('e-lock');
|
|
7437
|
+
if (elements.lockElem[i] !== target) {
|
|
7438
|
+
elements.lockElem[i].disabled = true;
|
|
7439
|
+
elements.lockElem[i].children[0].classList.remove('e-unlock');
|
|
7440
|
+
elements.lockElem[i].children[0].classList.add('e-lock');
|
|
7229
7441
|
}
|
|
7230
7442
|
}
|
|
7231
7443
|
else {
|
|
7232
|
-
if (ruleElem[i]) {
|
|
7233
|
-
ruleElem[i].classList.remove('e-disable');
|
|
7444
|
+
if (elements.ruleElem[i]) {
|
|
7445
|
+
elements.ruleElem[i].classList.remove('e-disable');
|
|
7234
7446
|
}
|
|
7235
|
-
if (cloneElem[i]) {
|
|
7236
|
-
cloneElem[i].disabled = false;
|
|
7447
|
+
if (elements.cloneElem[i]) {
|
|
7448
|
+
elements.cloneElem[i].disabled = false;
|
|
7237
7449
|
}
|
|
7238
|
-
deleteElem[i].disabled = false;
|
|
7239
|
-
lockElem[i].disabled = false;
|
|
7240
|
-
lockElem[i].children[0].classList.remove('e-lock');
|
|
7241
|
-
lockElem[i].children[0].classList.add('e-unlock');
|
|
7242
|
-
}
|
|
7243
|
-
}
|
|
7244
|
-
var dropDownObj;
|
|
7245
|
-
var numericObj;
|
|
7246
|
-
var textObj;
|
|
7247
|
-
var dateObj;
|
|
7248
|
-
var checkBoxObj;
|
|
7249
|
-
var radioBtnObj;
|
|
7250
|
-
var multiSelectObj;
|
|
7251
|
-
for (var i = 0; i < ddlElement.length; i++) {
|
|
7252
|
-
dropDownObj = getComponent(ddlElement[i], 'dropdownlist');
|
|
7253
|
-
if (isDisabled) {
|
|
7254
|
-
dropDownObj.enabled = false;
|
|
7255
|
-
}
|
|
7256
|
-
else {
|
|
7257
|
-
dropDownObj.enabled = true;
|
|
7258
|
-
}
|
|
7259
|
-
}
|
|
7260
|
-
for (var i = 0; i < numericElement.length; i++) {
|
|
7261
|
-
numericObj = getComponent(numericElement[i], 'numerictextbox');
|
|
7262
|
-
if (isDisabled) {
|
|
7263
|
-
numericObj.enabled = false;
|
|
7264
|
-
}
|
|
7265
|
-
else {
|
|
7266
|
-
numericObj.enabled = true;
|
|
7267
|
-
}
|
|
7268
|
-
}
|
|
7269
|
-
for (var i = 0; i < textElement.length; i++) {
|
|
7270
|
-
textObj = getComponent(textElement[i], 'textbox');
|
|
7271
|
-
if (isDisabled) {
|
|
7272
|
-
textObj.enabled = false;
|
|
7273
|
-
}
|
|
7274
|
-
else {
|
|
7275
|
-
textObj.enabled = true;
|
|
7276
|
-
}
|
|
7277
|
-
}
|
|
7278
|
-
for (var i = 0; i < dateElement.length; i++) {
|
|
7279
|
-
dateObj = getComponent(dateElement[i], 'datepicker');
|
|
7280
|
-
if (isDisabled) {
|
|
7281
|
-
dateObj.enabled = false;
|
|
7282
|
-
}
|
|
7283
|
-
else {
|
|
7284
|
-
dateObj.enabled = true;
|
|
7450
|
+
elements.deleteElem[i].disabled = false;
|
|
7451
|
+
elements.lockElem[i].disabled = false;
|
|
7452
|
+
elements.lockElem[i].children[0].classList.remove('e-lock');
|
|
7453
|
+
elements.lockElem[i].children[0].classList.add('e-unlock');
|
|
7285
7454
|
}
|
|
7286
|
-
}
|
|
7287
|
-
|
|
7288
|
-
|
|
7289
|
-
|
|
7290
|
-
|
|
7291
|
-
|
|
7292
|
-
|
|
7293
|
-
|
|
7294
|
-
}
|
|
7295
|
-
}
|
|
7296
|
-
for (var i = 0; i < radioBtnElement.length; i++) {
|
|
7297
|
-
radioBtnObj = getComponent(radioBtnElement[i], 'radio');
|
|
7298
|
-
if (isDisabled) {
|
|
7299
|
-
radioBtnObj.disabled = true;
|
|
7300
|
-
}
|
|
7301
|
-
else {
|
|
7302
|
-
radioBtnObj.disabled = false;
|
|
7303
|
-
}
|
|
7304
|
-
}
|
|
7305
|
-
for (var i = 0; i < multiSelectElement.length; i++) {
|
|
7306
|
-
multiSelectObj = getComponent(multiSelectElement[i], 'multiselect');
|
|
7307
|
-
if (isDisabled) {
|
|
7308
|
-
multiSelectObj.enabled = false;
|
|
7309
|
-
}
|
|
7310
|
-
else {
|
|
7311
|
-
multiSelectObj.enabled = true;
|
|
7312
|
-
}
|
|
7313
|
-
}
|
|
7455
|
+
});
|
|
7456
|
+
disableComponents(elements.ddl, function (elem) { return getComponent(elem, 'dropdownlist'); }, isDisabled);
|
|
7457
|
+
disableComponents(elements.numeric, function (elem) { return getComponent(elem, 'numerictextbox'); }, isDisabled);
|
|
7458
|
+
disableComponents(elements.text, function (elem) { return getComponent(elem, 'textbox'); }, isDisabled);
|
|
7459
|
+
disableComponents(elements.date, function (elem) { return getComponent(elem, 'datepicker'); }, isDisabled);
|
|
7460
|
+
disableComponents(elements.checkbox, function (elem) { return getComponent(elem, 'checkbox'); }, isDisabled);
|
|
7461
|
+
disableComponents(elements.radio, function (elem) { return getComponent(elem, 'radio'); }, isDisabled);
|
|
7462
|
+
disableComponents(elements.multiSelect, function (elem) { return getComponent(elem, 'multiselect'); }, isDisabled);
|
|
7314
7463
|
};
|
|
7315
7464
|
__decorate([
|
|
7316
7465
|
Event()
|