@syncfusion/ej2-querybuilder 30.1.42 → 30.2.6
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 +358 -274
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +401 -313
- 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 +2 -0
- package/src/query-builder/query-builder.js +400 -312
|
@@ -233,37 +233,71 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
233
233
|
QueryBuilder.prototype.reset = function () {
|
|
234
234
|
this.isImportRules = false;
|
|
235
235
|
var bodyElem = this.element.querySelector('.e-group-body');
|
|
236
|
-
var
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
236
|
+
var inputElements = this.element.querySelectorAll('input.e-control');
|
|
237
|
+
var batchSize = 20;
|
|
238
|
+
var currentIndex = 0;
|
|
239
|
+
var processBatch = function () {
|
|
240
|
+
var endIndex = Math.min(currentIndex + batchSize, inputElements.length);
|
|
241
|
+
for (var i = currentIndex; i < endIndex; i++) {
|
|
242
|
+
var element = inputElements[i];
|
|
243
|
+
try {
|
|
244
|
+
if (element.className.indexOf('e-tooltip') > -1) {
|
|
245
|
+
var tooltip = getComponent(element, 'tooltip');
|
|
246
|
+
if (tooltip) {
|
|
247
|
+
tooltip.destroy();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
else if (element.parentElement && element.parentElement.className.indexOf('e-tooltip') > -1) {
|
|
251
|
+
var tooltip = getComponent(element.parentElement, 'tooltip');
|
|
252
|
+
if (tooltip) {
|
|
253
|
+
tooltip.destroy();
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch (e) {
|
|
258
|
+
console.warn('Error destroying tooltip:', e);
|
|
259
|
+
}
|
|
240
260
|
}
|
|
241
|
-
|
|
242
|
-
|
|
261
|
+
currentIndex = endIndex;
|
|
262
|
+
if (currentIndex < inputElements.length) {
|
|
263
|
+
requestAnimationFrame(processBatch);
|
|
243
264
|
}
|
|
265
|
+
};
|
|
266
|
+
if (inputElements.length > 0) {
|
|
267
|
+
processBatch();
|
|
244
268
|
}
|
|
245
269
|
if (bodyElem) {
|
|
246
|
-
bodyElem.
|
|
270
|
+
bodyElem.textContent = '';
|
|
247
271
|
}
|
|
248
272
|
else {
|
|
273
|
+
var fragment = document.createDocumentFragment();
|
|
249
274
|
var grpContainer = this.createElement('div', { attrs: { class: 'e-group-container' } });
|
|
250
275
|
var grpHeader = this.createElement('div', { attrs: { class: 'e-group-header' } });
|
|
251
276
|
var grpBody = this.createElement('div', { attrs: { class: 'e-group-body' } });
|
|
252
|
-
grpContainer.appendChild(grpHeader)
|
|
253
|
-
|
|
277
|
+
grpContainer.appendChild(grpHeader);
|
|
278
|
+
grpContainer.appendChild(grpBody);
|
|
279
|
+
fragment.appendChild(grpContainer);
|
|
280
|
+
this.element.appendChild(fragment);
|
|
254
281
|
bodyElem = this.element.querySelector('.e-group-body');
|
|
255
282
|
}
|
|
256
283
|
if (this.headerTemplate && this.isRoot) {
|
|
257
|
-
this.element.
|
|
284
|
+
this.element.textContent = '';
|
|
258
285
|
this.isRoot = false;
|
|
259
286
|
}
|
|
260
287
|
if (this.enableNotCondition) {
|
|
261
|
-
|
|
288
|
+
var toggleElements = this.element.querySelectorAll('.e-qb-toggle');
|
|
289
|
+
for (var i = 0; i < toggleElements.length; i++) {
|
|
290
|
+
removeClass([toggleElements[i]], 'e-active-toggle');
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (bodyElem) {
|
|
294
|
+
bodyElem.appendChild(this.createElement('div', { attrs: { class: 'e-rule-list' } }));
|
|
262
295
|
}
|
|
263
|
-
bodyElem.appendChild(this.createElement('div', { attrs: { class: 'e-rule-list' } }));
|
|
264
296
|
this.levelColl[this.element.id + '_group0'] = [0];
|
|
265
297
|
this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);
|
|
266
|
-
|
|
298
|
+
if (bodyElem && bodyElem.parentElement) {
|
|
299
|
+
this.disableRuleCondition(bodyElem.parentElement);
|
|
300
|
+
}
|
|
267
301
|
};
|
|
268
302
|
QueryBuilder.prototype.getWrapper = function () {
|
|
269
303
|
return this.element;
|
|
@@ -286,100 +320,131 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
286
320
|
return '';
|
|
287
321
|
};
|
|
288
322
|
QueryBuilder.prototype.initialize = function () {
|
|
323
|
+
var _this = this;
|
|
289
324
|
if (this.dataColl.length) {
|
|
290
|
-
var
|
|
325
|
+
var columnKeys_1 = Object.keys(this.dataColl[0]);
|
|
291
326
|
var cols = [];
|
|
292
|
-
var
|
|
293
|
-
var
|
|
294
|
-
var
|
|
295
|
-
var
|
|
296
|
-
var
|
|
297
|
-
var
|
|
327
|
+
var categories_1 = [];
|
|
328
|
+
var type_1;
|
|
329
|
+
var groupBy_1 = false;
|
|
330
|
+
var isDate_1 = false;
|
|
331
|
+
var value_1;
|
|
332
|
+
var validateObj_1 = { isRequired: true, min: 0, max: Number.MAX_VALUE };
|
|
298
333
|
if (this.columns.length) {
|
|
299
334
|
this.columnSort();
|
|
300
335
|
var columns = this.columns;
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
if (!
|
|
304
|
-
if (
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
if (
|
|
308
|
-
|
|
336
|
+
columns.forEach(function (column) {
|
|
337
|
+
_this.updateCustomOperator(column, 'initial');
|
|
338
|
+
if (!column.type) {
|
|
339
|
+
if (columnKeys_1.indexOf(column.field) > -1) {
|
|
340
|
+
value_1 = _this.dataColl[0][column.field];
|
|
341
|
+
type_1 = typeof value_1;
|
|
342
|
+
if (type_1 === 'string') {
|
|
343
|
+
isDate_1 = !isNaN(Date.parse(value_1));
|
|
309
344
|
}
|
|
310
|
-
else if (
|
|
311
|
-
|
|
312
|
-
|
|
345
|
+
else if (type_1 === 'object') {
|
|
346
|
+
isDate_1 = value_1 instanceof Date && !isNaN(value_1.getTime());
|
|
347
|
+
type_1 = 'string';
|
|
313
348
|
}
|
|
314
|
-
|
|
315
|
-
|
|
349
|
+
column.type = type_1;
|
|
350
|
+
isDate_1 = false;
|
|
316
351
|
}
|
|
317
|
-
|
|
352
|
+
type_1 = 'string';
|
|
318
353
|
}
|
|
319
|
-
if (!
|
|
320
|
-
|
|
354
|
+
if (!column.validation) {
|
|
355
|
+
column.validation = validateObj_1;
|
|
321
356
|
}
|
|
322
|
-
if (
|
|
323
|
-
|
|
357
|
+
if (column.category) {
|
|
358
|
+
groupBy_1 = true;
|
|
324
359
|
}
|
|
325
360
|
else {
|
|
326
|
-
|
|
361
|
+
column.category = _this.l10n.getConstant('OtherFields');
|
|
327
362
|
}
|
|
328
|
-
if (
|
|
329
|
-
|
|
363
|
+
if (categories_1.indexOf(column.category) < 0) {
|
|
364
|
+
categories_1.push(column.category);
|
|
330
365
|
}
|
|
331
|
-
if (!
|
|
332
|
-
(
|
|
333
|
-
|
|
366
|
+
if (!column.operators ||
|
|
367
|
+
(_this.isLocale && _this.isCustomOprCols.indexOf(column.field) === -1)) {
|
|
368
|
+
column.operators = _this.customOperators[column.type + 'Operator'];
|
|
334
369
|
}
|
|
335
|
-
}
|
|
336
|
-
if (
|
|
370
|
+
});
|
|
371
|
+
if (groupBy_1 && (categories_1.length > 1 || categories_1[0] !== this.l10n.getConstant('OtherFields'))) {
|
|
337
372
|
this.fields = { text: 'label', value: 'field', groupBy: 'category' };
|
|
338
373
|
}
|
|
339
374
|
this.updateSubFieldsFromColumns(this.columns);
|
|
340
375
|
}
|
|
341
376
|
else {
|
|
342
|
-
for (var i = 0, len =
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
if (
|
|
346
|
-
|
|
347
|
-
}
|
|
348
|
-
else if (
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
}
|
|
352
|
-
cols[i] = {
|
|
353
|
-
'
|
|
354
|
-
|
|
377
|
+
for (var i = 0, len = columnKeys_1.length; i < len; i++) {
|
|
378
|
+
value_1 = this.dataColl[0][columnKeys_1[i]];
|
|
379
|
+
type_1 = typeof value_1;
|
|
380
|
+
if (type_1 === 'string') {
|
|
381
|
+
isDate_1 = !isNaN(Date.parse(value_1));
|
|
382
|
+
}
|
|
383
|
+
else if (type_1 === 'object' && !Object.keys(value_1).length) {
|
|
384
|
+
isDate_1 = value_1 instanceof Date && !isNaN(value_1.getTime());
|
|
385
|
+
type_1 = 'string';
|
|
386
|
+
}
|
|
387
|
+
cols[i] = {
|
|
388
|
+
'field': columnKeys_1[i], 'label': columnKeys_1[i], 'type': isDate_1 ? 'date' : type_1,
|
|
389
|
+
'validation': validateObj_1
|
|
390
|
+
};
|
|
391
|
+
isDate_1 = false;
|
|
355
392
|
cols[i].operators = this.customOperators[cols[i].type + 'Operator'];
|
|
356
|
-
if (
|
|
357
|
-
this.updateSubFields(
|
|
393
|
+
if (type_1 === 'object') {
|
|
394
|
+
this.updateSubFields(value_1, cols[i]);
|
|
358
395
|
}
|
|
359
396
|
}
|
|
360
397
|
this.columns = cols;
|
|
361
398
|
}
|
|
362
399
|
}
|
|
363
400
|
else if (this.columns && this.columns.length) {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
401
|
+
if (this.sortDirection !== 'Default') {
|
|
402
|
+
this.columnSort();
|
|
403
|
+
}
|
|
404
|
+
this.processColumnsInBatches();
|
|
405
|
+
if (this.columns.length > 50) {
|
|
406
|
+
setTimeout(function () {
|
|
407
|
+
_this.updateSubFieldsFromColumns(_this.columns);
|
|
408
|
+
}, 0);
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
this.updateSubFieldsFromColumns(this.columns);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
this.trigger('dataBound', { type: 'dataBound' });
|
|
415
|
+
};
|
|
416
|
+
QueryBuilder.prototype.processColumnsInBatches = function () {
|
|
417
|
+
var _this = this;
|
|
418
|
+
var columns = this.columns;
|
|
419
|
+
var batchSize = 10;
|
|
420
|
+
var processedCount = 0;
|
|
421
|
+
var processBatch = function () {
|
|
422
|
+
var endIdx = Math.min(processedCount + batchSize, columns.length);
|
|
423
|
+
for (var i = processedCount; i < endIdx; i++) {
|
|
424
|
+
if (columns[i].category && columns[i].category !== _this.l10n.getConstant('OtherFields')) {
|
|
425
|
+
_this.fields = { text: 'label', value: 'field', groupBy: 'category' };
|
|
368
426
|
}
|
|
369
427
|
else {
|
|
370
|
-
columns[i].category =
|
|
428
|
+
columns[i].category = _this.l10n.getConstant('OtherFields');
|
|
371
429
|
}
|
|
372
|
-
|
|
430
|
+
_this.updateCustomOperator(columns[i], 'initial');
|
|
373
431
|
if (!columns[i].operators ||
|
|
374
|
-
(
|
|
375
|
-
columns[i].operators =
|
|
432
|
+
(_this.isLocale && _this.isCustomOprCols.indexOf(columns[i].field) === -1)) {
|
|
433
|
+
columns[i].operators = _this.customOperators[columns[i].type + 'Operator'];
|
|
376
434
|
}
|
|
377
435
|
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
436
|
+
processedCount = endIdx;
|
|
437
|
+
if (processedCount < columns.length) {
|
|
438
|
+
requestAnimationFrame(processBatch);
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
processBatch();
|
|
381
442
|
};
|
|
382
443
|
QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {
|
|
444
|
+
if (col.length > 50) {
|
|
445
|
+
this.updateSubFieldsLarge(col, field);
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
383
448
|
for (var i = 0; i < col.length; i++) {
|
|
384
449
|
if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {
|
|
385
450
|
col[i].field = field ? field + this.separator + col[i].field : col[i].field;
|
|
@@ -396,6 +461,39 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
396
461
|
}
|
|
397
462
|
}
|
|
398
463
|
};
|
|
464
|
+
QueryBuilder.prototype.updateSubFieldsLarge = function (col, field) {
|
|
465
|
+
var _this = this;
|
|
466
|
+
var i = 0;
|
|
467
|
+
var colLength = col.length;
|
|
468
|
+
var processNextBatch = function () {
|
|
469
|
+
var endIdx = Math.min(i + 10, colLength);
|
|
470
|
+
for (; i < endIdx; i++) {
|
|
471
|
+
if (_this.separator !== '' && col[i].field.indexOf(_this.separator) < 0) {
|
|
472
|
+
col[i].field = field ? field + _this.separator + col[i].field : col[i].field;
|
|
473
|
+
}
|
|
474
|
+
if (col[i].operators) {
|
|
475
|
+
_this.updateCustomOperator(col[i]);
|
|
476
|
+
}
|
|
477
|
+
else if (col[i].type && col[i].type !== 'object') {
|
|
478
|
+
col[i].operators = _this.customOperators[col[i].type + 'Operator'];
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
if (i < colLength) {
|
|
482
|
+
requestAnimationFrame(processNextBatch);
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
setTimeout(function () {
|
|
486
|
+
for (var j = 0; j < colLength; j++) {
|
|
487
|
+
if (col[j].columns) {
|
|
488
|
+
col[j].type = 'object';
|
|
489
|
+
_this.updateSubFieldsFromColumns(col[j].columns, col[j].field);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
}, 0);
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
processNextBatch();
|
|
496
|
+
};
|
|
399
497
|
QueryBuilder.prototype.updateSubFields = function (value, col, data) {
|
|
400
498
|
var sampCol;
|
|
401
499
|
col.columns = [];
|
|
@@ -565,8 +663,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
565
663
|
}
|
|
566
664
|
args = { groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase() };
|
|
567
665
|
if (this.enableNotCondition) {
|
|
568
|
-
args = {
|
|
569
|
-
'
|
|
666
|
+
args = {
|
|
667
|
+
groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase(),
|
|
668
|
+
'not': ariaChecked
|
|
669
|
+
};
|
|
570
670
|
}
|
|
571
671
|
}
|
|
572
672
|
if (!this.isImportRules) {
|
|
@@ -664,7 +764,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
664
764
|
QueryBuilder.prototype.appendRuleElem = function (target, column, type, parentId, action, rule) {
|
|
665
765
|
var ruleElem;
|
|
666
766
|
var elem;
|
|
667
|
-
var ruleListElem = target.querySelector('.e-rule-list');
|
|
767
|
+
var ruleListElem = target && target.querySelector('.e-rule-list');
|
|
668
768
|
var args;
|
|
669
769
|
if (type === 'change') {
|
|
670
770
|
ruleElem = select('#' + parentId, target);
|
|
@@ -1017,7 +1117,6 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1017
1117
|
var ruleElem = document.getElementById(ruleElemID);
|
|
1018
1118
|
this.ddTree = getComponent(ruleElem.querySelector('input.e-dropdowntree'), 'dropdowntree');
|
|
1019
1119
|
var hierarchicalData = extend([], this.columns, [], true);
|
|
1020
|
-
// Cancel the default filtering.
|
|
1021
1120
|
args.cancel = true;
|
|
1022
1121
|
if (args.text === '') {
|
|
1023
1122
|
this.changeDataSource(hierarchicalData);
|
|
@@ -1177,7 +1276,8 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1177
1276
|
}
|
|
1178
1277
|
};
|
|
1179
1278
|
QueryBuilder.prototype.renderToolTip = function (element) {
|
|
1180
|
-
var tooltip = new Tooltip({
|
|
1279
|
+
var tooltip = new Tooltip({
|
|
1280
|
+
content: this.l10n.getConstant('ValidationMessage'), isSticky: true,
|
|
1181
1281
|
position: 'BottomCenter', cssClass: 'e-querybuilder-error', afterClose: function () {
|
|
1182
1282
|
tooltip.destroy();
|
|
1183
1283
|
}, beforeOpen: function (args) {
|
|
@@ -1185,7 +1285,8 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1185
1285
|
if (tooltipCloseElement) {
|
|
1186
1286
|
tooltipCloseElement.style.display = 'none';
|
|
1187
1287
|
}
|
|
1188
|
-
}
|
|
1288
|
+
}
|
|
1289
|
+
});
|
|
1189
1290
|
tooltip.appendTo(element);
|
|
1190
1291
|
tooltip.open(element);
|
|
1191
1292
|
};
|
|
@@ -1343,7 +1444,6 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1343
1444
|
groupElem.appendChild(groupHdrElem);
|
|
1344
1445
|
grpBodyElem.appendChild(rulesElem);
|
|
1345
1446
|
groupElem.appendChild(grpBodyElem);
|
|
1346
|
-
// create button group in OR and AND process
|
|
1347
1447
|
if (!this.headerTemplate) {
|
|
1348
1448
|
if (this.allowDragAndDrop) {
|
|
1349
1449
|
dragClsName = 'e-icons e-drag-qb-rule';
|
|
@@ -1351,8 +1451,12 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1351
1451
|
else {
|
|
1352
1452
|
dragClsName = 'e-icons e-drag-qb-rule e-hidden';
|
|
1353
1453
|
}
|
|
1354
|
-
var spanDragElement = this.createElement('span', {
|
|
1355
|
-
|
|
1454
|
+
var spanDragElement = this.createElement('span', {
|
|
1455
|
+
attrs: {
|
|
1456
|
+
class: dragClsName, 'aria-label': 'drag handle',
|
|
1457
|
+
title: 'drag handle'
|
|
1458
|
+
}
|
|
1459
|
+
});
|
|
1356
1460
|
groupHdrElem.appendChild(spanDragElement);
|
|
1357
1461
|
var className = this.enableSeparateConnector && !isConnector ? 'e-lib e-btn-group e-qb-toggle-btn' : 'e-lib e-btn-group';
|
|
1358
1462
|
glueElem = this.createElement('div', { attrs: { class: className, role: 'group' } });
|
|
@@ -1370,13 +1474,17 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1370
1474
|
}
|
|
1371
1475
|
inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-and', value: 'AND' } });
|
|
1372
1476
|
glueElem.appendChild(inputElem);
|
|
1373
|
-
labelElem = this.createElement('label', {
|
|
1374
|
-
|
|
1477
|
+
labelElem = this.createElement('label', {
|
|
1478
|
+
attrs: { class: 'e-lib e-btn e-btngroup-and-lbl e-small' },
|
|
1479
|
+
innerHTML: this.l10n.getConstant('AND')
|
|
1480
|
+
});
|
|
1375
1481
|
glueElem.appendChild(labelElem);
|
|
1376
1482
|
inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-or', value: 'OR' } });
|
|
1377
1483
|
glueElem.appendChild(inputElem);
|
|
1378
|
-
labelElem = this.createElement('label', {
|
|
1379
|
-
|
|
1484
|
+
labelElem = this.createElement('label', {
|
|
1485
|
+
attrs: { class: 'e-lib e-btn e-btngroup-or-lbl e-small' },
|
|
1486
|
+
innerHTML: this.l10n.getConstant('OR')
|
|
1487
|
+
});
|
|
1380
1488
|
glueElem.appendChild(labelElem);
|
|
1381
1489
|
groupHdrElem.appendChild(glueElem);
|
|
1382
1490
|
grpActElem = this.createElement('div', { attrs: { class: 'e-group-action' } });
|
|
@@ -1409,8 +1517,12 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1409
1517
|
else {
|
|
1410
1518
|
dragClsName = 'e-icons e-drag-qb-rule e-hidden';
|
|
1411
1519
|
}
|
|
1412
|
-
var spanDragElement = this.createElement('span', {
|
|
1413
|
-
|
|
1520
|
+
var spanDragElement = this.createElement('span', {
|
|
1521
|
+
attrs: {
|
|
1522
|
+
class: dragClsName, 'aria-label': 'drag handle',
|
|
1523
|
+
title: 'drag handle'
|
|
1524
|
+
}
|
|
1525
|
+
});
|
|
1414
1526
|
fieldElem.appendChild(spanDragElement);
|
|
1415
1527
|
var filterElem = this.createElement('input', { attrs: { type: 'text', class: 'e-filter-input' } });
|
|
1416
1528
|
tempElem.appendChild(filterElem);
|
|
@@ -1691,8 +1803,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1691
1803
|
}
|
|
1692
1804
|
this.updatedRule = null;
|
|
1693
1805
|
if (this.headerTemplate) {
|
|
1694
|
-
var args_4 = {
|
|
1695
|
-
|
|
1806
|
+
var args_4 = {
|
|
1807
|
+
requestType: 'header-template-create', ruleID: groupElem.id, condition: condition,
|
|
1808
|
+
notCondition: this.enableNotCondition ? not : undefined
|
|
1809
|
+
};
|
|
1696
1810
|
this.trigger('actionBegin', args_4);
|
|
1697
1811
|
}
|
|
1698
1812
|
else {
|
|
@@ -1731,9 +1845,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1731
1845
|
}
|
|
1732
1846
|
};
|
|
1733
1847
|
QueryBuilder.prototype.setMultiConnector = function (trgt) {
|
|
1734
|
-
if (this.enableSeparateConnector && !this.headerTemplate) {
|
|
1735
|
-
|
|
1736
|
-
|
|
1848
|
+
if (this.enableSeparateConnector && !this.headerTemplate && trgt.previousElementSibling) {
|
|
1849
|
+
var btnGroupElem = this.groupTemplate(true).querySelector('.e-btn-group');
|
|
1850
|
+
if (btnGroupElem) {
|
|
1851
|
+
trgt.parentElement.insertBefore(btnGroupElem, trgt);
|
|
1737
1852
|
var notElem = trgt.previousElementSibling.childNodes[0];
|
|
1738
1853
|
if (notElem.classList.contains('e-qb-toggle')) {
|
|
1739
1854
|
notElem.style.display = 'none';
|
|
@@ -1776,9 +1891,11 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1776
1891
|
groupHdr = groupElem;
|
|
1777
1892
|
}
|
|
1778
1893
|
if (this.headerTemplate) {
|
|
1779
|
-
args = {
|
|
1894
|
+
args = {
|
|
1895
|
+
requestType: 'header-template-initialize', ruleID: groupElem.id,
|
|
1780
1896
|
notCondition: this.enableNotCondition ? not : undefined,
|
|
1781
|
-
condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID
|
|
1897
|
+
condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID
|
|
1898
|
+
};
|
|
1782
1899
|
this.trigger('actionBegin', args);
|
|
1783
1900
|
if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {
|
|
1784
1901
|
args.requestType = 'rule-template-create';
|
|
@@ -1931,7 +2048,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1931
2048
|
QueryBuilder.prototype.templateChange = function (element, value, type) {
|
|
1932
2049
|
var grpElem = closest(element, '.e-group-container');
|
|
1933
2050
|
var eventsArgs;
|
|
1934
|
-
var rules = this.getParentGroup(grpElem);
|
|
2051
|
+
var rules = grpElem && this.getParentGroup(grpElem);
|
|
1935
2052
|
var ruleElem = closest(element, '.e-rule-container');
|
|
1936
2053
|
var index = 0;
|
|
1937
2054
|
if (this.allowValidation) {
|
|
@@ -1946,7 +2063,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1946
2063
|
index++;
|
|
1947
2064
|
}
|
|
1948
2065
|
}
|
|
1949
|
-
var rule = rules.rules[index];
|
|
2066
|
+
var rule = rules && rules.rules[index];
|
|
1950
2067
|
if (type === 'field') {
|
|
1951
2068
|
this.selectedColumn = this.getColumn(value);
|
|
1952
2069
|
}
|
|
@@ -1954,7 +2071,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1954
2071
|
this.selectedColumn = this.getColumn(rule.field);
|
|
1955
2072
|
}
|
|
1956
2073
|
var operVal;
|
|
1957
|
-
this.previousColumn = this.getColumn(rule.field);
|
|
2074
|
+
this.previousColumn = rule && this.getColumn(rule.field);
|
|
1958
2075
|
var beforeRules = this.getValidRules(this.rule);
|
|
1959
2076
|
if (this.selectedColumn) {
|
|
1960
2077
|
if (this.selectedColumn.operators) {
|
|
@@ -1969,11 +2086,16 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1969
2086
|
switch (type) {
|
|
1970
2087
|
case 'field':
|
|
1971
2088
|
if (isNullOrUndefined(value)) {
|
|
1972
|
-
rule
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
2089
|
+
if (!isNullOrUndefined(rule)) {
|
|
2090
|
+
rule.field = '';
|
|
2091
|
+
rule.label = '';
|
|
2092
|
+
rule.type = '';
|
|
2093
|
+
rule.value = '';
|
|
2094
|
+
rule.operator = '';
|
|
2095
|
+
}
|
|
2096
|
+
else {
|
|
2097
|
+
return;
|
|
2098
|
+
}
|
|
1977
2099
|
}
|
|
1978
2100
|
else {
|
|
1979
2101
|
rule.field = value;
|
|
@@ -2024,10 +2146,14 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2024
2146
|
ruleElement.className.indexOf('e-separate-rule') < 0) {
|
|
2025
2147
|
ruleElement.className += ' e-separate-rule';
|
|
2026
2148
|
}
|
|
2027
|
-
var args = {
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2149
|
+
var args = {
|
|
2150
|
+
requestType: 'template-create', action: type, ruleID: grpEle.id,
|
|
2151
|
+
fields: this.fields, rule: rule
|
|
2152
|
+
};
|
|
2153
|
+
eventsArgs = {
|
|
2154
|
+
groupID: grpElem.id.replace(this.element.id + '_', ''), ruleID: grpEle.id.replace(this.element.id + '_', ''),
|
|
2155
|
+
value: rule.field, type: 'field'
|
|
2156
|
+
};
|
|
2031
2157
|
this.trigger('actionBegin', args);
|
|
2032
2158
|
this.trigger('change', eventsArgs);
|
|
2033
2159
|
}
|
|
@@ -2168,8 +2294,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2168
2294
|
var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
|
|
2169
2295
|
var itemData = ddl.getItemData();
|
|
2170
2296
|
ddl.value = itemData.value;
|
|
2171
|
-
var customArgs = {
|
|
2172
|
-
|
|
2297
|
+
var customArgs = {
|
|
2298
|
+
element: ddl.element, value: itemData.value, isInteracted: true,
|
|
2299
|
+
previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null
|
|
2300
|
+
};
|
|
2173
2301
|
if (ddl.previousValue !== ddl.value) {
|
|
2174
2302
|
this.changeField(customArgs);
|
|
2175
2303
|
}
|
|
@@ -2282,8 +2410,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2282
2410
|
this.selectedColumn = this.getColumn(ddlValue);
|
|
2283
2411
|
var ruleElem = closest(flt, '.e-rule-container');
|
|
2284
2412
|
var ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
2285
|
-
var eventsArgs = {
|
|
2286
|
-
|
|
2413
|
+
var eventsArgs = {
|
|
2414
|
+
groupID: grID, ruleID: ruleID, selectedField: this.fieldMode === 'DropdownTree' ?
|
|
2415
|
+
dl.value[0] : dl.value, cancel: false, type: 'field'
|
|
2416
|
+
};
|
|
2287
2417
|
if (!this.isImportRules && !this.prvtEvtTgrDaD) {
|
|
2288
2418
|
this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {
|
|
2289
2419
|
_this.fieldChangeSuccess(observedChangeArgs, tmpRl, flt, rl, dArg);
|
|
@@ -2872,19 +3002,25 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2872
3002
|
: getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');
|
|
2873
3003
|
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);
|
|
2874
3004
|
if (typeof itemData.template === 'string' || itemData.template.write === undefined) {
|
|
2875
|
-
var args = {
|
|
2876
|
-
|
|
3005
|
+
var args = {
|
|
3006
|
+
rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,
|
|
3007
|
+
requestType: 'value-template-create'
|
|
3008
|
+
};
|
|
2877
3009
|
this.trigger('actionBegin', args);
|
|
2878
3010
|
}
|
|
2879
3011
|
else {
|
|
2880
3012
|
var template = itemData.template;
|
|
2881
3013
|
if (typeof template.write === 'string') {
|
|
2882
|
-
getValue(template.write, window)({
|
|
2883
|
-
|
|
3014
|
+
getValue(template.write, window)({
|
|
3015
|
+
elements: tempElements.length > 1 ? tempElements : tempElements[0], values: rule.value,
|
|
3016
|
+
operator: tempRule.operator, field: column.field, dataSource: column.values
|
|
3017
|
+
});
|
|
2884
3018
|
}
|
|
2885
3019
|
else if (typeof itemData.template !== 'function') {
|
|
2886
|
-
itemData.template.write({
|
|
2887
|
-
|
|
3020
|
+
itemData.template.write({
|
|
3021
|
+
elements: tempElements.length > 1 ? tempElements : tempElements[0],
|
|
3022
|
+
values: rule.value, operator: tempRule.operator, field: column.field, dataSource: column.values
|
|
3023
|
+
});
|
|
2888
3024
|
}
|
|
2889
3025
|
}
|
|
2890
3026
|
};
|
|
@@ -3382,8 +3518,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3382
3518
|
}
|
|
3383
3519
|
else {
|
|
3384
3520
|
if (typeof itemData.template === 'string' || itemData.template.create === undefined) {
|
|
3385
|
-
args = {
|
|
3386
|
-
|
|
3521
|
+
args = {
|
|
3522
|
+
requestType: 'value-template-initialize', ruleID: ruleID, field: field, operator: operator, rule: rule,
|
|
3523
|
+
renderTemplate: true
|
|
3524
|
+
};
|
|
3387
3525
|
this.trigger('actionBegin', args, function (observedActionArgs) {
|
|
3388
3526
|
isRendered = _this.actionBeginSuccessCallBack(observedActionArgs, itemData, ruleID, field, target);
|
|
3389
3527
|
});
|
|
@@ -3591,7 +3729,6 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3591
3729
|
element = element ? element : ruleElement.nextElementSibling.nextElementSibling.querySelector('input.e-control');
|
|
3592
3730
|
operator = getComponent(element, 'dropdownlist').value.toString();
|
|
3593
3731
|
rule.rules[index].operator = operator;
|
|
3594
|
-
// Value Fields
|
|
3595
3732
|
var valueContainer = ruleElement.nextElementSibling.nextElementSibling;
|
|
3596
3733
|
var elementCln = valueContainer.querySelectorAll('input.e-control');
|
|
3597
3734
|
if (elementCln.length < 1) {
|
|
@@ -3753,6 +3890,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3753
3890
|
}
|
|
3754
3891
|
};
|
|
3755
3892
|
QueryBuilder.prototype.validateValue = function (rule, ruleElem, index) {
|
|
3893
|
+
if (isNullOrUndefined(rule) && isNullOrUndefined(ruleElem)) {
|
|
3894
|
+
return;
|
|
3895
|
+
}
|
|
3756
3896
|
if (!isNullOrUndefined(index)) {
|
|
3757
3897
|
rule = rule.rules[index];
|
|
3758
3898
|
}
|
|
@@ -3914,8 +4054,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3914
4054
|
if (grouplen) {
|
|
3915
4055
|
this.isPublic = true;
|
|
3916
4056
|
for (var i = 0, len = groups.length; i < len; i++) {
|
|
3917
|
-
this.updatedRule = {
|
|
3918
|
-
|
|
4057
|
+
this.updatedRule = {
|
|
4058
|
+
isLocked: groups[i].isLocked, condition: groups[i].condition,
|
|
4059
|
+
not: groups[i].not
|
|
4060
|
+
};
|
|
3919
4061
|
this.importRules(groups[i], groupElem, false, groups[i].not);
|
|
3920
4062
|
}
|
|
3921
4063
|
this.isPublic = false;
|
|
@@ -4044,10 +4186,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4044
4186
|
this.element.querySelector('.e-group-header').appendChild(collapseElem);
|
|
4045
4187
|
};
|
|
4046
4188
|
QueryBuilder.prototype.columnSort = function () {
|
|
4047
|
-
if (this.sortDirection.toLowerCase() === 'descending') {
|
|
4189
|
+
if (this.sortDirection && this.sortDirection.toLowerCase() === 'descending') {
|
|
4048
4190
|
this.columns = new DataManager(this.columns).executeLocal(new Query().sortByDesc('field'));
|
|
4049
4191
|
}
|
|
4050
|
-
else if (this.sortDirection.toLowerCase() === 'ascending') {
|
|
4192
|
+
else if (this.sortDirection && this.sortDirection.toLowerCase() === 'ascending') {
|
|
4051
4193
|
this.columns = new DataManager(this.columns).executeLocal(new Query().sortBy('field'));
|
|
4052
4194
|
}
|
|
4053
4195
|
};
|
|
@@ -4534,8 +4676,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4534
4676
|
}
|
|
4535
4677
|
}
|
|
4536
4678
|
}
|
|
4537
|
-
var dragEventArgs = {
|
|
4538
|
-
|
|
4679
|
+
var dragEventArgs = {
|
|
4680
|
+
dragRuleID: targetElem !== null ? targetElem.id : grpElem !== null ? grpElem.id : null,
|
|
4681
|
+
dragGroupID: grpElem !== null ? grpElem.id : null, cancel: false
|
|
4682
|
+
};
|
|
4539
4683
|
this.trigger('drag', dragEventArgs);
|
|
4540
4684
|
this.isDragEventPrevent = dragEventArgs.cancel;
|
|
4541
4685
|
};
|
|
@@ -4556,8 +4700,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4556
4700
|
var prevRule;
|
|
4557
4701
|
if (!isPreventelem) {
|
|
4558
4702
|
var targetGrp = closest(e.target, '.e-group-container');
|
|
4559
|
-
var dropEventArgs = {
|
|
4560
|
-
|
|
4703
|
+
var dropEventArgs = {
|
|
4704
|
+
cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
|
|
4705
|
+
: targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null
|
|
4706
|
+
};
|
|
4561
4707
|
this.trigger('drop', dropEventArgs);
|
|
4562
4708
|
if (dropEventArgs.cancel) {
|
|
4563
4709
|
isPreventelem = true;
|
|
@@ -5326,7 +5472,8 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
5326
5472
|
else {
|
|
5327
5473
|
if (customObj && (customObj.type === 'question' || customObj.type === 'answer')) {
|
|
5328
5474
|
var notValue = rule.not;
|
|
5329
|
-
rule = {
|
|
5475
|
+
rule = {
|
|
5476
|
+
'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value,
|
|
5330
5477
|
'condition': rule.condition, 'rules': rule.rules
|
|
5331
5478
|
};
|
|
5332
5479
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -5648,21 +5795,40 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
5648
5795
|
var columns = this.columns;
|
|
5649
5796
|
var column;
|
|
5650
5797
|
columns = col ? col : columns;
|
|
5651
|
-
|
|
5798
|
+
var fieldParts = this.separator !== '' ? (field ? field.split(this.separator) : []) : [field];
|
|
5799
|
+
var rootField = fieldParts && fieldParts.length > 0 ? fieldParts[0] : null;
|
|
5800
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5652
5801
|
if (columns[i].field === field) {
|
|
5653
5802
|
column = columns[i];
|
|
5654
5803
|
break;
|
|
5655
5804
|
}
|
|
5656
|
-
|
|
5657
|
-
|
|
5658
|
-
|
|
5805
|
+
}
|
|
5806
|
+
if (!column && this.separator !== '') {
|
|
5807
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5808
|
+
if (columns[i].field === rootField) {
|
|
5809
|
+
if (columns[i].columns) {
|
|
5810
|
+
var subField = field.substring(rootField.length + this.separator.length);
|
|
5811
|
+
if (subField) {
|
|
5812
|
+
column = this.getColumn(subField, columns[i].columns);
|
|
5813
|
+
}
|
|
5814
|
+
else {
|
|
5815
|
+
column = columns[i];
|
|
5816
|
+
}
|
|
5817
|
+
}
|
|
5818
|
+
else {
|
|
5819
|
+
column = columns[i];
|
|
5820
|
+
}
|
|
5659
5821
|
break;
|
|
5660
5822
|
}
|
|
5661
5823
|
}
|
|
5662
|
-
|
|
5663
|
-
|
|
5664
|
-
|
|
5665
|
-
|
|
5824
|
+
}
|
|
5825
|
+
if (!column) {
|
|
5826
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5827
|
+
if (columns[i].columns) {
|
|
5828
|
+
column = this.getColumn(field, columns[i].columns);
|
|
5829
|
+
if (column) {
|
|
5830
|
+
break;
|
|
5831
|
+
}
|
|
5666
5832
|
}
|
|
5667
5833
|
}
|
|
5668
5834
|
}
|
|
@@ -6118,6 +6284,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
6118
6284
|
return false;
|
|
6119
6285
|
};
|
|
6120
6286
|
QueryBuilder.prototype.getSqlString = function (rules, enableEscape, queryStr, sqlLocale) {
|
|
6287
|
+
var _this = this;
|
|
6121
6288
|
var isRoot = false;
|
|
6122
6289
|
if (!queryStr && queryStr !== '') {
|
|
6123
6290
|
queryStr = '';
|
|
@@ -6126,86 +6293,74 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
6126
6293
|
else {
|
|
6127
6294
|
queryStr += '(';
|
|
6128
6295
|
}
|
|
6129
|
-
var condition = rules.condition;
|
|
6130
6296
|
if (rules.not) {
|
|
6131
|
-
var
|
|
6132
|
-
|
|
6133
|
-
rulesNotCondition = sqlLocale ? this.l10n.getConstant('NOT').toUpperCase() + ' (' : 'NOT (';
|
|
6134
|
-
queryStr += rulesNotCondition;
|
|
6135
|
-
}
|
|
6136
|
-
else {
|
|
6137
|
-
rulesNotCondition = sqlLocale ? ' ' + this.l10n.getConstant('NOT').toUpperCase() + ' (' : ' NOT (';
|
|
6138
|
-
queryStr += rulesNotCondition;
|
|
6139
|
-
}
|
|
6297
|
+
var notPrefix = sqlLocale ? this.l10n.getConstant('NOT').toUpperCase() + ' ' : 'NOT ';
|
|
6298
|
+
queryStr += isRoot ? notPrefix + '(' : ' ' + notPrefix + '(';
|
|
6140
6299
|
}
|
|
6141
|
-
if (rules.rules) {
|
|
6142
|
-
|
|
6143
|
-
|
|
6144
|
-
|
|
6145
|
-
|
|
6146
|
-
|
|
6300
|
+
if (rules.rules && rules.rules.length) {
|
|
6301
|
+
queryStr += rules.rules.reduce(function (result, rule, j) {
|
|
6302
|
+
var ruleStr = '';
|
|
6303
|
+
if (rule.rules) {
|
|
6304
|
+
ruleStr = _this.getSqlString(rule, enableEscape, '', sqlLocale);
|
|
6305
|
+
if (_this.enableSeparateConnector) {
|
|
6306
|
+
rules.condition = rule.condition;
|
|
6147
6307
|
}
|
|
6148
6308
|
}
|
|
6149
6309
|
else {
|
|
6150
|
-
var
|
|
6310
|
+
var ruleOpertor = sqlLocale ? _this.sqlOperators[rule.operator] : _this.operators[rule.operator];
|
|
6151
6311
|
var valueStr = '';
|
|
6152
|
-
var ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];
|
|
6153
6312
|
if (rule.value instanceof Array) {
|
|
6154
6313
|
if (rule.operator.toString().indexOf('between') > -1) {
|
|
6155
|
-
var ruleCondition = sqlLocale ? ' ' +
|
|
6156
|
-
if (rule.type === 'date' && !
|
|
6157
|
-
valueStr
|
|
6314
|
+
var ruleCondition = sqlLocale ? ' ' + _this.l10n.getConstant('AND').toUpperCase() + ' ' : ' AND ';
|
|
6315
|
+
if (rule.type === 'date' && !_this.isDateFunction(rule.value[0])) {
|
|
6316
|
+
valueStr = "\"" + rule.value[0] + "\"" + ruleCondition + "\"" + rule.value[1] + "\"";
|
|
6158
6317
|
}
|
|
6159
6318
|
else {
|
|
6160
|
-
valueStr
|
|
6319
|
+
valueStr = "" + rule.value[0] + ruleCondition + rule.value[1];
|
|
6161
6320
|
}
|
|
6162
6321
|
}
|
|
6163
6322
|
else {
|
|
6164
6323
|
if (typeof rule.value[0] === 'string' && rule.value !== null) {
|
|
6165
|
-
|
|
6166
|
-
|
|
6167
|
-
valueStr += ',"' + rule.value[k] + '"';
|
|
6168
|
-
}
|
|
6169
|
-
valueStr += ')';
|
|
6324
|
+
var valueArray = rule.value;
|
|
6325
|
+
valueStr = '("' + valueArray.join('","') + '")';
|
|
6170
6326
|
}
|
|
6171
6327
|
else {
|
|
6172
|
-
valueStr
|
|
6328
|
+
valueStr = "(" + rule.value + ")";
|
|
6173
6329
|
}
|
|
6174
6330
|
}
|
|
6175
6331
|
}
|
|
6176
6332
|
else {
|
|
6177
6333
|
if (rule.operator.toString().indexOf('startswith') > -1) {
|
|
6178
|
-
valueStr
|
|
6334
|
+
valueStr = rule.value ? "(\"" + rule.value + "%\")" : "(" + rule.value + ")";
|
|
6179
6335
|
}
|
|
6180
6336
|
else if (rule.operator.toString().indexOf('endswith') > -1) {
|
|
6181
|
-
valueStr
|
|
6337
|
+
valueStr = rule.value ? "(\"%" + rule.value + "\")" : "(" + rule.value + ")";
|
|
6182
6338
|
}
|
|
6183
6339
|
else if (rule.operator.toString().indexOf('contains') > -1) {
|
|
6184
|
-
valueStr
|
|
6340
|
+
valueStr = rule.value ? "(\"%" + rule.value + "%\")" : "(" + rule.value + ")";
|
|
6185
6341
|
}
|
|
6186
6342
|
else {
|
|
6187
6343
|
if (rule.type === 'number' || typeof rule.value === 'boolean' ||
|
|
6188
6344
|
(rule.value === null && (rule.operator.toString().indexOf('empty') < -1))) {
|
|
6189
|
-
valueStr
|
|
6345
|
+
valueStr = "" + rule.value;
|
|
6190
6346
|
}
|
|
6191
6347
|
else if (rule.operator.toString().indexOf('empty') > -1) {
|
|
6192
|
-
valueStr
|
|
6348
|
+
valueStr = '""';
|
|
6193
6349
|
}
|
|
6194
6350
|
else {
|
|
6195
|
-
valueStr
|
|
6351
|
+
valueStr = "\"" + rule.value + "\"";
|
|
6196
6352
|
}
|
|
6197
6353
|
}
|
|
6198
6354
|
}
|
|
6355
|
+
var fieldName = rule.field;
|
|
6356
|
+
if (enableEscape) {
|
|
6357
|
+
fieldName = '`' + fieldName + '`';
|
|
6358
|
+
}
|
|
6359
|
+
else if (fieldName.indexOf(' ') > -1) {
|
|
6360
|
+
fieldName = '"' + fieldName + '"';
|
|
6361
|
+
}
|
|
6199
6362
|
if (rule.operator.toString().indexOf('null') > -1) {
|
|
6200
|
-
|
|
6201
|
-
rule.field = '`' + rule.field + '`';
|
|
6202
|
-
}
|
|
6203
|
-
else {
|
|
6204
|
-
if (rule.field.indexOf(' ') > -1) {
|
|
6205
|
-
rule.field = '"' + rule.field + '"';
|
|
6206
|
-
}
|
|
6207
|
-
}
|
|
6208
|
-
queryStr += rule.field + ' ' + ruleOpertor;
|
|
6363
|
+
ruleStr = fieldName + ' ' + ruleOpertor;
|
|
6209
6364
|
}
|
|
6210
6365
|
else {
|
|
6211
6366
|
var custOper = ruleOpertor;
|
|
@@ -6215,33 +6370,21 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
6215
6370
|
else if (rule.operator === 'isnotempty') {
|
|
6216
6371
|
custOper = '!=';
|
|
6217
6372
|
}
|
|
6218
|
-
|
|
6219
|
-
rule.field = '`' + rule.field + '`';
|
|
6220
|
-
}
|
|
6221
|
-
else {
|
|
6222
|
-
if (rule.field.indexOf(' ') > -1) {
|
|
6223
|
-
rule.field = '"' + rule.field + '"';
|
|
6224
|
-
}
|
|
6225
|
-
}
|
|
6226
|
-
queryStr += rule.field + ' ' + custOper + ' ' + valueStr;
|
|
6227
|
-
}
|
|
6228
|
-
if (rule.condition && rule.condition !== '') {
|
|
6229
|
-
condition = rule.condition;
|
|
6373
|
+
ruleStr = fieldName + ' ' + custOper + ' ' + valueStr;
|
|
6230
6374
|
}
|
|
6231
6375
|
}
|
|
6232
|
-
if (j !==
|
|
6233
|
-
|
|
6234
|
-
var rule = rules.rules[j];
|
|
6235
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6376
|
+
if (j !== rules.rules.length - 1) {
|
|
6377
|
+
var condition = rules.condition;
|
|
6236
6378
|
if (condition === '' || (rule && rule.condition !== '' && rule.custom && rule.custom.isCustom)) {
|
|
6237
6379
|
condition = rule.condition;
|
|
6238
6380
|
}
|
|
6239
6381
|
if (condition) {
|
|
6240
|
-
condition = sqlLocale ?
|
|
6241
|
-
|
|
6382
|
+
condition = sqlLocale ? _this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
|
|
6383
|
+
ruleStr += ' ' + condition + ' ';
|
|
6242
6384
|
}
|
|
6243
6385
|
}
|
|
6244
|
-
|
|
6386
|
+
return result + ruleStr;
|
|
6387
|
+
}, '');
|
|
6245
6388
|
}
|
|
6246
6389
|
if (!isRoot) {
|
|
6247
6390
|
queryStr += ')';
|
|
@@ -6559,23 +6702,19 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
6559
6702
|
return subOp[i].length;
|
|
6560
6703
|
}
|
|
6561
6704
|
}
|
|
6562
|
-
//Left Parenthesis
|
|
6563
6705
|
if (/^\(/.exec(sqlString)) {
|
|
6564
6706
|
this.parser.push(['Left', '(']);
|
|
6565
6707
|
return 1;
|
|
6566
6708
|
}
|
|
6567
|
-
//Right Parenthesis
|
|
6568
6709
|
if (/^\)/.exec(sqlString)) {
|
|
6569
6710
|
this.parser.push(['Right', ')']);
|
|
6570
6711
|
return 1;
|
|
6571
6712
|
}
|
|
6572
|
-
//Boolean
|
|
6573
6713
|
if (/^(true|false)/.exec(sqlString)) {
|
|
6574
6714
|
matchValue = /^(true|false)/.exec(sqlString)[0];
|
|
6575
6715
|
this.parser.push(['String', matchValue]);
|
|
6576
6716
|
return matchValue.length;
|
|
6577
6717
|
}
|
|
6578
|
-
//Null
|
|
6579
6718
|
if (/^null/.exec(sqlString)) {
|
|
6580
6719
|
matchValue = /^null/.exec(sqlString)[0];
|
|
6581
6720
|
this.parser.push(['String', null]);
|
|
@@ -6600,7 +6739,6 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
6600
6739
|
return matchValue.length;
|
|
6601
6740
|
}
|
|
6602
6741
|
}
|
|
6603
|
-
//String
|
|
6604
6742
|
var singleString = this.getSingleQuoteString(sqlString);
|
|
6605
6743
|
if (singleString !== '') {
|
|
6606
6744
|
matchValue = singleString;
|
|
@@ -6620,24 +6758,20 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
6620
6758
|
!this.checkCondition(sqlString, matchValue)) {
|
|
6621
6759
|
matchValue = this.combineSingleQuoteString(sqlString, matchValue);
|
|
6622
6760
|
}
|
|
6623
|
-
// end
|
|
6624
6761
|
this.parser.push(['String', matchValue]);
|
|
6625
6762
|
return matchValue.length;
|
|
6626
6763
|
}
|
|
6627
|
-
// Double String
|
|
6628
6764
|
var doubleString = this.getDoubleQuoteString(sqlString);
|
|
6629
6765
|
if (doubleString !== '') {
|
|
6630
6766
|
matchValue = doubleString;
|
|
6631
6767
|
this.parser.push(['DoubleString', matchValue]);
|
|
6632
6768
|
return matchValue.length;
|
|
6633
6769
|
}
|
|
6634
|
-
//Number
|
|
6635
6770
|
if (/^\d*\.?\d+/.exec(sqlString)) {
|
|
6636
6771
|
matchValue = /^\d*\.?\d+/.exec(sqlString)[0];
|
|
6637
6772
|
this.parser.push(['Number', matchValue]);
|
|
6638
6773
|
return matchValue.length;
|
|
6639
6774
|
}
|
|
6640
|
-
//Negative Number
|
|
6641
6775
|
if (/^-?\d*\.?\d+/.exec(sqlString)) {
|
|
6642
6776
|
matchValue = /^-?\d*\.?\d+/.exec(sqlString)[0];
|
|
6643
6777
|
this.parser.push(['Number', matchValue]);
|
|
@@ -6805,7 +6939,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
6805
6939
|
fieldName += this.separator;
|
|
6806
6940
|
}
|
|
6807
6941
|
}
|
|
6808
|
-
return this.getColumn(fieldName).label;
|
|
6942
|
+
return this.getColumn(fieldName) ? this.getColumn(fieldName).label : '';
|
|
6809
6943
|
};
|
|
6810
6944
|
QueryBuilder.prototype.processParser = function (parser, rules, levelColl, sqlLocale) {
|
|
6811
6945
|
var j;
|
|
@@ -7037,12 +7171,16 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
7037
7171
|
}
|
|
7038
7172
|
}
|
|
7039
7173
|
if (this.enableSeparateConnector) {
|
|
7040
|
-
this.addRules([{
|
|
7041
|
-
'
|
|
7174
|
+
this.addRules([{
|
|
7175
|
+
'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,
|
|
7176
|
+
'value': getRule.value, 'condition': getRule.condition
|
|
7177
|
+
}], groupId);
|
|
7042
7178
|
}
|
|
7043
7179
|
else {
|
|
7044
|
-
this.addRules([{
|
|
7045
|
-
'
|
|
7180
|
+
this.addRules([{
|
|
7181
|
+
'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,
|
|
7182
|
+
'value': getRule.value
|
|
7183
|
+
}], groupId);
|
|
7046
7184
|
}
|
|
7047
7185
|
this.ruleIndex = -1;
|
|
7048
7186
|
};
|
|
@@ -7217,115 +7355,65 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
7217
7355
|
this.disableRuleControls(target, groupElem, isDisabled);
|
|
7218
7356
|
};
|
|
7219
7357
|
QueryBuilder.prototype.disableRuleControls = function (target, groupElem, isDisabled) {
|
|
7220
|
-
var
|
|
7221
|
-
|
|
7222
|
-
|
|
7223
|
-
|
|
7224
|
-
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
7231
|
-
|
|
7358
|
+
var disableComponents = function (elements, componentGetter, isDisabled) {
|
|
7359
|
+
elements.forEach(function (element) {
|
|
7360
|
+
var component = componentGetter(element);
|
|
7361
|
+
if ('enabled' in component) {
|
|
7362
|
+
component.enabled = !isDisabled;
|
|
7363
|
+
}
|
|
7364
|
+
else if ('disabled' in component) {
|
|
7365
|
+
component.disabled = isDisabled;
|
|
7366
|
+
}
|
|
7367
|
+
});
|
|
7368
|
+
};
|
|
7369
|
+
var elements = {
|
|
7370
|
+
ddl: groupElem.querySelectorAll('.e-control.e-dropdownlist'),
|
|
7371
|
+
numeric: groupElem.querySelectorAll('.e-control.e-numerictextbox'),
|
|
7372
|
+
text: groupElem.querySelectorAll('.e-control.e-textbox'),
|
|
7373
|
+
date: groupElem.querySelectorAll('.e-control.e-datepicker'),
|
|
7374
|
+
checkbox: groupElem.querySelectorAll('.e-control.e-checkbox'),
|
|
7375
|
+
radio: groupElem.querySelectorAll('.e-control.e-radio'),
|
|
7376
|
+
multiSelect: groupElem.querySelectorAll('.e-control.e-multiselect'),
|
|
7377
|
+
deleteElem: groupElem.querySelectorAll('.e-rule-delete'),
|
|
7378
|
+
lockElem: groupElem.querySelectorAll('.e-lock-rule'),
|
|
7379
|
+
cloneElem: groupElem.querySelectorAll('.e-clone-rule'),
|
|
7380
|
+
ruleElem: groupElem.querySelectorAll('.e-rule-container')
|
|
7381
|
+
};
|
|
7382
|
+
elements.deleteElem.forEach(function (elem, i) {
|
|
7232
7383
|
if (isDisabled) {
|
|
7233
|
-
if (ruleElem[i] && ruleElem[i].classList.contains('e-disable')) {
|
|
7234
|
-
ruleElem[i].classList.add('e-disable');
|
|
7384
|
+
if (elements.ruleElem[i] && elements.ruleElem[i].classList.contains('e-disable')) {
|
|
7385
|
+
elements.ruleElem[i].classList.add('e-disable');
|
|
7235
7386
|
}
|
|
7236
|
-
deleteElem[i].disabled = true;
|
|
7237
|
-
if (cloneElem[i]) {
|
|
7238
|
-
cloneElem[i].disabled = true;
|
|
7387
|
+
elements.deleteElem[i].disabled = true;
|
|
7388
|
+
if (elements.cloneElem[i]) {
|
|
7389
|
+
elements.cloneElem[i].disabled = true;
|
|
7239
7390
|
}
|
|
7240
|
-
if (lockElem[i] !== target) {
|
|
7241
|
-
lockElem[i].disabled = true;
|
|
7242
|
-
lockElem[i].children[0].classList.remove('e-unlock');
|
|
7243
|
-
lockElem[i].children[0].classList.add('e-lock');
|
|
7391
|
+
if (elements.lockElem[i] !== target) {
|
|
7392
|
+
elements.lockElem[i].disabled = true;
|
|
7393
|
+
elements.lockElem[i].children[0].classList.remove('e-unlock');
|
|
7394
|
+
elements.lockElem[i].children[0].classList.add('e-lock');
|
|
7244
7395
|
}
|
|
7245
7396
|
}
|
|
7246
7397
|
else {
|
|
7247
|
-
if (ruleElem[i]) {
|
|
7248
|
-
ruleElem[i].classList.remove('e-disable');
|
|
7398
|
+
if (elements.ruleElem[i]) {
|
|
7399
|
+
elements.ruleElem[i].classList.remove('e-disable');
|
|
7249
7400
|
}
|
|
7250
|
-
if (cloneElem[i]) {
|
|
7251
|
-
cloneElem[i].disabled = false;
|
|
7401
|
+
if (elements.cloneElem[i]) {
|
|
7402
|
+
elements.cloneElem[i].disabled = false;
|
|
7252
7403
|
}
|
|
7253
|
-
deleteElem[i].disabled = false;
|
|
7254
|
-
lockElem[i].disabled = false;
|
|
7255
|
-
lockElem[i].children[0].classList.remove('e-lock');
|
|
7256
|
-
lockElem[i].children[0].classList.add('e-unlock');
|
|
7404
|
+
elements.deleteElem[i].disabled = false;
|
|
7405
|
+
elements.lockElem[i].disabled = false;
|
|
7406
|
+
elements.lockElem[i].children[0].classList.remove('e-lock');
|
|
7407
|
+
elements.lockElem[i].children[0].classList.add('e-unlock');
|
|
7257
7408
|
}
|
|
7258
|
-
}
|
|
7259
|
-
|
|
7260
|
-
|
|
7261
|
-
|
|
7262
|
-
|
|
7263
|
-
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
for (var i = 0; i < ddlElement.length; i++) {
|
|
7267
|
-
dropDownObj = getComponent(ddlElement[i], 'dropdownlist');
|
|
7268
|
-
if (isDisabled) {
|
|
7269
|
-
dropDownObj.enabled = false;
|
|
7270
|
-
}
|
|
7271
|
-
else {
|
|
7272
|
-
dropDownObj.enabled = true;
|
|
7273
|
-
}
|
|
7274
|
-
}
|
|
7275
|
-
for (var i = 0; i < numericElement.length; i++) {
|
|
7276
|
-
numericObj = getComponent(numericElement[i], 'numerictextbox');
|
|
7277
|
-
if (isDisabled) {
|
|
7278
|
-
numericObj.enabled = false;
|
|
7279
|
-
}
|
|
7280
|
-
else {
|
|
7281
|
-
numericObj.enabled = true;
|
|
7282
|
-
}
|
|
7283
|
-
}
|
|
7284
|
-
for (var i = 0; i < textElement.length; i++) {
|
|
7285
|
-
textObj = getComponent(textElement[i], 'textbox');
|
|
7286
|
-
if (isDisabled) {
|
|
7287
|
-
textObj.enabled = false;
|
|
7288
|
-
}
|
|
7289
|
-
else {
|
|
7290
|
-
textObj.enabled = true;
|
|
7291
|
-
}
|
|
7292
|
-
}
|
|
7293
|
-
for (var i = 0; i < dateElement.length; i++) {
|
|
7294
|
-
dateObj = getComponent(dateElement[i], 'datepicker');
|
|
7295
|
-
if (isDisabled) {
|
|
7296
|
-
dateObj.enabled = false;
|
|
7297
|
-
}
|
|
7298
|
-
else {
|
|
7299
|
-
dateObj.enabled = true;
|
|
7300
|
-
}
|
|
7301
|
-
}
|
|
7302
|
-
for (var i = 0; i < checkboxElement.length; i++) {
|
|
7303
|
-
checkBoxObj = getComponent(checkboxElement[i], 'checkbox');
|
|
7304
|
-
if (isDisabled) {
|
|
7305
|
-
checkBoxObj.disabled = true;
|
|
7306
|
-
}
|
|
7307
|
-
else {
|
|
7308
|
-
checkBoxObj.disabled = false;
|
|
7309
|
-
}
|
|
7310
|
-
}
|
|
7311
|
-
for (var i = 0; i < radioBtnElement.length; i++) {
|
|
7312
|
-
radioBtnObj = getComponent(radioBtnElement[i], 'radio');
|
|
7313
|
-
if (isDisabled) {
|
|
7314
|
-
radioBtnObj.disabled = true;
|
|
7315
|
-
}
|
|
7316
|
-
else {
|
|
7317
|
-
radioBtnObj.disabled = false;
|
|
7318
|
-
}
|
|
7319
|
-
}
|
|
7320
|
-
for (var i = 0; i < multiSelectElement.length; i++) {
|
|
7321
|
-
multiSelectObj = getComponent(multiSelectElement[i], 'multiselect');
|
|
7322
|
-
if (isDisabled) {
|
|
7323
|
-
multiSelectObj.enabled = false;
|
|
7324
|
-
}
|
|
7325
|
-
else {
|
|
7326
|
-
multiSelectObj.enabled = true;
|
|
7327
|
-
}
|
|
7328
|
-
}
|
|
7409
|
+
});
|
|
7410
|
+
disableComponents(elements.ddl, function (elem) { return getComponent(elem, 'dropdownlist'); }, isDisabled);
|
|
7411
|
+
disableComponents(elements.numeric, function (elem) { return getComponent(elem, 'numerictextbox'); }, isDisabled);
|
|
7412
|
+
disableComponents(elements.text, function (elem) { return getComponent(elem, 'textbox'); }, isDisabled);
|
|
7413
|
+
disableComponents(elements.date, function (elem) { return getComponent(elem, 'datepicker'); }, isDisabled);
|
|
7414
|
+
disableComponents(elements.checkbox, function (elem) { return getComponent(elem, 'checkbox'); }, isDisabled);
|
|
7415
|
+
disableComponents(elements.radio, function (elem) { return getComponent(elem, 'radio'); }, isDisabled);
|
|
7416
|
+
disableComponents(elements.multiSelect, function (elem) { return getComponent(elem, 'multiselect'); }, isDisabled);
|
|
7329
7417
|
};
|
|
7330
7418
|
__decorate([
|
|
7331
7419
|
Event()
|