@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
|
@@ -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);
|
|
@@ -1004,7 +1104,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1004
1104
|
var ruleElem = document.getElementById(ruleElemID);
|
|
1005
1105
|
this.ddTree = getComponent(ruleElem.querySelector('input.e-dropdowntree'), 'dropdowntree');
|
|
1006
1106
|
var hierarchicalData = extend([], this.columns, [], true);
|
|
1007
|
-
// Cancel the default filtering.
|
|
1008
1107
|
args.cancel = true;
|
|
1009
1108
|
if (args.text === '') {
|
|
1010
1109
|
this.changeDataSource(hierarchicalData);
|
|
@@ -1164,7 +1263,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1164
1263
|
}
|
|
1165
1264
|
};
|
|
1166
1265
|
QueryBuilder.prototype.renderToolTip = function (element) {
|
|
1167
|
-
var tooltip = new Tooltip({
|
|
1266
|
+
var tooltip = new Tooltip({
|
|
1267
|
+
content: this.l10n.getConstant('ValidationMessage'), isSticky: true,
|
|
1168
1268
|
position: 'BottomCenter', cssClass: 'e-querybuilder-error', afterClose: function () {
|
|
1169
1269
|
tooltip.destroy();
|
|
1170
1270
|
}, beforeOpen: function (args) {
|
|
@@ -1172,7 +1272,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1172
1272
|
if (tooltipCloseElement) {
|
|
1173
1273
|
tooltipCloseElement.style.display = 'none';
|
|
1174
1274
|
}
|
|
1175
|
-
}
|
|
1275
|
+
}
|
|
1276
|
+
});
|
|
1176
1277
|
tooltip.appendTo(element);
|
|
1177
1278
|
tooltip.open(element);
|
|
1178
1279
|
};
|
|
@@ -1330,7 +1431,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1330
1431
|
groupElem.appendChild(groupHdrElem);
|
|
1331
1432
|
grpBodyElem.appendChild(rulesElem);
|
|
1332
1433
|
groupElem.appendChild(grpBodyElem);
|
|
1333
|
-
// create button group in OR and AND process
|
|
1334
1434
|
if (!this.headerTemplate) {
|
|
1335
1435
|
if (this.allowDragAndDrop) {
|
|
1336
1436
|
dragClsName = 'e-icons e-drag-qb-rule';
|
|
@@ -1338,8 +1438,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1338
1438
|
else {
|
|
1339
1439
|
dragClsName = 'e-icons e-drag-qb-rule e-hidden';
|
|
1340
1440
|
}
|
|
1341
|
-
var spanDragElement = this.createElement('span', {
|
|
1342
|
-
|
|
1441
|
+
var spanDragElement = this.createElement('span', {
|
|
1442
|
+
attrs: {
|
|
1443
|
+
class: dragClsName, 'aria-label': 'drag handle',
|
|
1444
|
+
title: 'drag handle'
|
|
1445
|
+
}
|
|
1446
|
+
});
|
|
1343
1447
|
groupHdrElem.appendChild(spanDragElement);
|
|
1344
1448
|
var className = this.enableSeparateConnector && !isConnector ? 'e-lib e-btn-group e-qb-toggle-btn' : 'e-lib e-btn-group';
|
|
1345
1449
|
glueElem = this.createElement('div', { attrs: { class: className, role: 'group' } });
|
|
@@ -1357,13 +1461,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1357
1461
|
}
|
|
1358
1462
|
inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-and', value: 'AND' } });
|
|
1359
1463
|
glueElem.appendChild(inputElem);
|
|
1360
|
-
labelElem = this.createElement('label', {
|
|
1361
|
-
|
|
1464
|
+
labelElem = this.createElement('label', {
|
|
1465
|
+
attrs: { class: 'e-lib e-btn e-btngroup-and-lbl e-small' },
|
|
1466
|
+
innerHTML: this.l10n.getConstant('AND')
|
|
1467
|
+
});
|
|
1362
1468
|
glueElem.appendChild(labelElem);
|
|
1363
1469
|
inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-or', value: 'OR' } });
|
|
1364
1470
|
glueElem.appendChild(inputElem);
|
|
1365
|
-
labelElem = this.createElement('label', {
|
|
1366
|
-
|
|
1471
|
+
labelElem = this.createElement('label', {
|
|
1472
|
+
attrs: { class: 'e-lib e-btn e-btngroup-or-lbl e-small' },
|
|
1473
|
+
innerHTML: this.l10n.getConstant('OR')
|
|
1474
|
+
});
|
|
1367
1475
|
glueElem.appendChild(labelElem);
|
|
1368
1476
|
groupHdrElem.appendChild(glueElem);
|
|
1369
1477
|
grpActElem = this.createElement('div', { attrs: { class: 'e-group-action' } });
|
|
@@ -1396,8 +1504,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1396
1504
|
else {
|
|
1397
1505
|
dragClsName = 'e-icons e-drag-qb-rule e-hidden';
|
|
1398
1506
|
}
|
|
1399
|
-
var spanDragElement = this.createElement('span', {
|
|
1400
|
-
|
|
1507
|
+
var spanDragElement = this.createElement('span', {
|
|
1508
|
+
attrs: {
|
|
1509
|
+
class: dragClsName, 'aria-label': 'drag handle',
|
|
1510
|
+
title: 'drag handle'
|
|
1511
|
+
}
|
|
1512
|
+
});
|
|
1401
1513
|
fieldElem.appendChild(spanDragElement);
|
|
1402
1514
|
var filterElem = this.createElement('input', { attrs: { type: 'text', class: 'e-filter-input' } });
|
|
1403
1515
|
tempElem.appendChild(filterElem);
|
|
@@ -1678,8 +1790,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1678
1790
|
}
|
|
1679
1791
|
this.updatedRule = null;
|
|
1680
1792
|
if (this.headerTemplate) {
|
|
1681
|
-
var args_4 = {
|
|
1682
|
-
|
|
1793
|
+
var args_4 = {
|
|
1794
|
+
requestType: 'header-template-create', ruleID: groupElem.id, condition: condition,
|
|
1795
|
+
notCondition: this.enableNotCondition ? not : undefined
|
|
1796
|
+
};
|
|
1683
1797
|
this.trigger('actionBegin', args_4);
|
|
1684
1798
|
}
|
|
1685
1799
|
else {
|
|
@@ -1718,9 +1832,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1718
1832
|
}
|
|
1719
1833
|
};
|
|
1720
1834
|
QueryBuilder.prototype.setMultiConnector = function (trgt) {
|
|
1721
|
-
if (this.enableSeparateConnector && !this.headerTemplate) {
|
|
1722
|
-
|
|
1723
|
-
|
|
1835
|
+
if (this.enableSeparateConnector && !this.headerTemplate && trgt.previousElementSibling) {
|
|
1836
|
+
var btnGroupElem = this.groupTemplate(true).querySelector('.e-btn-group');
|
|
1837
|
+
if (btnGroupElem) {
|
|
1838
|
+
trgt.parentElement.insertBefore(btnGroupElem, trgt);
|
|
1724
1839
|
var notElem = trgt.previousElementSibling.childNodes[0];
|
|
1725
1840
|
if (notElem.classList.contains('e-qb-toggle')) {
|
|
1726
1841
|
notElem.style.display = 'none';
|
|
@@ -1763,9 +1878,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1763
1878
|
groupHdr = groupElem;
|
|
1764
1879
|
}
|
|
1765
1880
|
if (this.headerTemplate) {
|
|
1766
|
-
args = {
|
|
1881
|
+
args = {
|
|
1882
|
+
requestType: 'header-template-initialize', ruleID: groupElem.id,
|
|
1767
1883
|
notCondition: this.enableNotCondition ? not : undefined,
|
|
1768
|
-
condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID
|
|
1884
|
+
condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID
|
|
1885
|
+
};
|
|
1769
1886
|
this.trigger('actionBegin', args);
|
|
1770
1887
|
if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {
|
|
1771
1888
|
args.requestType = 'rule-template-create';
|
|
@@ -1918,7 +2035,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1918
2035
|
QueryBuilder.prototype.templateChange = function (element, value, type) {
|
|
1919
2036
|
var grpElem = closest(element, '.e-group-container');
|
|
1920
2037
|
var eventsArgs;
|
|
1921
|
-
var rules = this.getParentGroup(grpElem);
|
|
2038
|
+
var rules = grpElem && this.getParentGroup(grpElem);
|
|
1922
2039
|
var ruleElem = closest(element, '.e-rule-container');
|
|
1923
2040
|
var index = 0;
|
|
1924
2041
|
if (this.allowValidation) {
|
|
@@ -1933,7 +2050,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1933
2050
|
index++;
|
|
1934
2051
|
}
|
|
1935
2052
|
}
|
|
1936
|
-
var rule = rules.rules[index];
|
|
2053
|
+
var rule = rules && rules.rules[index];
|
|
1937
2054
|
if (type === 'field') {
|
|
1938
2055
|
this.selectedColumn = this.getColumn(value);
|
|
1939
2056
|
}
|
|
@@ -1941,7 +2058,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1941
2058
|
this.selectedColumn = this.getColumn(rule.field);
|
|
1942
2059
|
}
|
|
1943
2060
|
var operVal;
|
|
1944
|
-
this.previousColumn = this.getColumn(rule.field);
|
|
2061
|
+
this.previousColumn = rule && this.getColumn(rule.field);
|
|
1945
2062
|
var beforeRules = this.getValidRules(this.rule);
|
|
1946
2063
|
if (this.selectedColumn) {
|
|
1947
2064
|
if (this.selectedColumn.operators) {
|
|
@@ -1956,11 +2073,16 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1956
2073
|
switch (type) {
|
|
1957
2074
|
case 'field':
|
|
1958
2075
|
if (isNullOrUndefined(value)) {
|
|
1959
|
-
rule
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
2076
|
+
if (!isNullOrUndefined(rule)) {
|
|
2077
|
+
rule.field = '';
|
|
2078
|
+
rule.label = '';
|
|
2079
|
+
rule.type = '';
|
|
2080
|
+
rule.value = '';
|
|
2081
|
+
rule.operator = '';
|
|
2082
|
+
}
|
|
2083
|
+
else {
|
|
2084
|
+
return;
|
|
2085
|
+
}
|
|
1964
2086
|
}
|
|
1965
2087
|
else {
|
|
1966
2088
|
rule.field = value;
|
|
@@ -2011,10 +2133,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2011
2133
|
ruleElement.className.indexOf('e-separate-rule') < 0) {
|
|
2012
2134
|
ruleElement.className += ' e-separate-rule';
|
|
2013
2135
|
}
|
|
2014
|
-
var args = {
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2136
|
+
var args = {
|
|
2137
|
+
requestType: 'template-create', action: type, ruleID: grpEle.id,
|
|
2138
|
+
fields: this.fields, rule: rule
|
|
2139
|
+
};
|
|
2140
|
+
eventsArgs = {
|
|
2141
|
+
groupID: grpElem.id.replace(this.element.id + '_', ''), ruleID: grpEle.id.replace(this.element.id + '_', ''),
|
|
2142
|
+
value: rule.field, type: 'field'
|
|
2143
|
+
};
|
|
2018
2144
|
this.trigger('actionBegin', args);
|
|
2019
2145
|
this.trigger('change', eventsArgs);
|
|
2020
2146
|
}
|
|
@@ -2155,8 +2281,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2155
2281
|
var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
|
|
2156
2282
|
var itemData = ddl.getItemData();
|
|
2157
2283
|
ddl.value = itemData.value;
|
|
2158
|
-
var customArgs = {
|
|
2159
|
-
|
|
2284
|
+
var customArgs = {
|
|
2285
|
+
element: ddl.element, value: itemData.value, isInteracted: true,
|
|
2286
|
+
previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null
|
|
2287
|
+
};
|
|
2160
2288
|
if (ddl.previousValue !== ddl.value) {
|
|
2161
2289
|
this.changeField(customArgs);
|
|
2162
2290
|
}
|
|
@@ -2269,8 +2397,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2269
2397
|
this.selectedColumn = this.getColumn(ddlValue);
|
|
2270
2398
|
var ruleElem = closest(flt, '.e-rule-container');
|
|
2271
2399
|
var ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
2272
|
-
var eventsArgs = {
|
|
2273
|
-
|
|
2400
|
+
var eventsArgs = {
|
|
2401
|
+
groupID: grID, ruleID: ruleID, selectedField: this.fieldMode === 'DropdownTree' ?
|
|
2402
|
+
dl.value[0] : dl.value, cancel: false, type: 'field'
|
|
2403
|
+
};
|
|
2274
2404
|
if (!this.isImportRules && !this.prvtEvtTgrDaD) {
|
|
2275
2405
|
this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {
|
|
2276
2406
|
_this.fieldChangeSuccess(observedChangeArgs, tmpRl, flt, rl, dArg);
|
|
@@ -2859,19 +2989,25 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2859
2989
|
: getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');
|
|
2860
2990
|
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);
|
|
2861
2991
|
if (typeof itemData.template === 'string' || itemData.template.write === undefined) {
|
|
2862
|
-
var args = {
|
|
2863
|
-
|
|
2992
|
+
var args = {
|
|
2993
|
+
rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,
|
|
2994
|
+
requestType: 'value-template-create'
|
|
2995
|
+
};
|
|
2864
2996
|
this.trigger('actionBegin', args);
|
|
2865
2997
|
}
|
|
2866
2998
|
else {
|
|
2867
2999
|
var template = itemData.template;
|
|
2868
3000
|
if (typeof template.write === 'string') {
|
|
2869
|
-
getValue(template.write, window)({
|
|
2870
|
-
|
|
3001
|
+
getValue(template.write, window)({
|
|
3002
|
+
elements: tempElements.length > 1 ? tempElements : tempElements[0], values: rule.value,
|
|
3003
|
+
operator: tempRule.operator, field: column.field, dataSource: column.values
|
|
3004
|
+
});
|
|
2871
3005
|
}
|
|
2872
3006
|
else if (typeof itemData.template !== 'function') {
|
|
2873
|
-
itemData.template.write({
|
|
2874
|
-
|
|
3007
|
+
itemData.template.write({
|
|
3008
|
+
elements: tempElements.length > 1 ? tempElements : tempElements[0],
|
|
3009
|
+
values: rule.value, operator: tempRule.operator, field: column.field, dataSource: column.values
|
|
3010
|
+
});
|
|
2875
3011
|
}
|
|
2876
3012
|
}
|
|
2877
3013
|
};
|
|
@@ -3369,8 +3505,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3369
3505
|
}
|
|
3370
3506
|
else {
|
|
3371
3507
|
if (typeof itemData.template === 'string' || itemData.template.create === undefined) {
|
|
3372
|
-
args = {
|
|
3373
|
-
|
|
3508
|
+
args = {
|
|
3509
|
+
requestType: 'value-template-initialize', ruleID: ruleID, field: field, operator: operator, rule: rule,
|
|
3510
|
+
renderTemplate: true
|
|
3511
|
+
};
|
|
3374
3512
|
this.trigger('actionBegin', args, function (observedActionArgs) {
|
|
3375
3513
|
isRendered = _this.actionBeginSuccessCallBack(observedActionArgs, itemData, ruleID, field, target);
|
|
3376
3514
|
});
|
|
@@ -3578,7 +3716,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3578
3716
|
element = element ? element : ruleElement.nextElementSibling.nextElementSibling.querySelector('input.e-control');
|
|
3579
3717
|
operator = getComponent(element, 'dropdownlist').value.toString();
|
|
3580
3718
|
rule.rules[index].operator = operator;
|
|
3581
|
-
// Value Fields
|
|
3582
3719
|
var valueContainer = ruleElement.nextElementSibling.nextElementSibling;
|
|
3583
3720
|
var elementCln = valueContainer.querySelectorAll('input.e-control');
|
|
3584
3721
|
if (elementCln.length < 1) {
|
|
@@ -3740,6 +3877,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3740
3877
|
}
|
|
3741
3878
|
};
|
|
3742
3879
|
QueryBuilder.prototype.validateValue = function (rule, ruleElem, index) {
|
|
3880
|
+
if (isNullOrUndefined(rule) && isNullOrUndefined(ruleElem)) {
|
|
3881
|
+
return;
|
|
3882
|
+
}
|
|
3743
3883
|
if (!isNullOrUndefined(index)) {
|
|
3744
3884
|
rule = rule.rules[index];
|
|
3745
3885
|
}
|
|
@@ -3901,8 +4041,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3901
4041
|
if (grouplen) {
|
|
3902
4042
|
this.isPublic = true;
|
|
3903
4043
|
for (var i = 0, len = groups.length; i < len; i++) {
|
|
3904
|
-
this.updatedRule = {
|
|
3905
|
-
|
|
4044
|
+
this.updatedRule = {
|
|
4045
|
+
isLocked: groups[i].isLocked, condition: groups[i].condition,
|
|
4046
|
+
not: groups[i].not
|
|
4047
|
+
};
|
|
3906
4048
|
this.importRules(groups[i], groupElem, false, groups[i].not);
|
|
3907
4049
|
}
|
|
3908
4050
|
this.isPublic = false;
|
|
@@ -4031,10 +4173,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4031
4173
|
this.element.querySelector('.e-group-header').appendChild(collapseElem);
|
|
4032
4174
|
};
|
|
4033
4175
|
QueryBuilder.prototype.columnSort = function () {
|
|
4034
|
-
if (this.sortDirection.toLowerCase() === 'descending') {
|
|
4176
|
+
if (this.sortDirection && this.sortDirection.toLowerCase() === 'descending') {
|
|
4035
4177
|
this.columns = new DataManager(this.columns).executeLocal(new Query().sortByDesc('field'));
|
|
4036
4178
|
}
|
|
4037
|
-
else if (this.sortDirection.toLowerCase() === 'ascending') {
|
|
4179
|
+
else if (this.sortDirection && this.sortDirection.toLowerCase() === 'ascending') {
|
|
4038
4180
|
this.columns = new DataManager(this.columns).executeLocal(new Query().sortBy('field'));
|
|
4039
4181
|
}
|
|
4040
4182
|
};
|
|
@@ -4521,8 +4663,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4521
4663
|
}
|
|
4522
4664
|
}
|
|
4523
4665
|
}
|
|
4524
|
-
var dragEventArgs = {
|
|
4525
|
-
|
|
4666
|
+
var dragEventArgs = {
|
|
4667
|
+
dragRuleID: targetElem !== null ? targetElem.id : grpElem !== null ? grpElem.id : null,
|
|
4668
|
+
dragGroupID: grpElem !== null ? grpElem.id : null, cancel: false
|
|
4669
|
+
};
|
|
4526
4670
|
this.trigger('drag', dragEventArgs);
|
|
4527
4671
|
this.isDragEventPrevent = dragEventArgs.cancel;
|
|
4528
4672
|
};
|
|
@@ -4543,8 +4687,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4543
4687
|
var prevRule;
|
|
4544
4688
|
if (!isPreventelem) {
|
|
4545
4689
|
var targetGrp = closest(e.target, '.e-group-container');
|
|
4546
|
-
var dropEventArgs = {
|
|
4547
|
-
|
|
4690
|
+
var dropEventArgs = {
|
|
4691
|
+
cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
|
|
4692
|
+
: targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null
|
|
4693
|
+
};
|
|
4548
4694
|
this.trigger('drop', dropEventArgs);
|
|
4549
4695
|
if (dropEventArgs.cancel) {
|
|
4550
4696
|
isPreventelem = true;
|
|
@@ -5313,7 +5459,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
5313
5459
|
else {
|
|
5314
5460
|
if (customObj && (customObj.type === 'question' || customObj.type === 'answer')) {
|
|
5315
5461
|
var notValue = rule.not;
|
|
5316
|
-
rule = {
|
|
5462
|
+
rule = {
|
|
5463
|
+
'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value,
|
|
5317
5464
|
'condition': rule.condition, 'rules': rule.rules
|
|
5318
5465
|
};
|
|
5319
5466
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -5635,21 +5782,40 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
5635
5782
|
var columns = this.columns;
|
|
5636
5783
|
var column;
|
|
5637
5784
|
columns = col ? col : columns;
|
|
5638
|
-
|
|
5785
|
+
var fieldParts = this.separator !== '' ? (field ? field.split(this.separator) : []) : [field];
|
|
5786
|
+
var rootField = fieldParts && fieldParts.length > 0 ? fieldParts[0] : null;
|
|
5787
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5639
5788
|
if (columns[i].field === field) {
|
|
5640
5789
|
column = columns[i];
|
|
5641
5790
|
break;
|
|
5642
5791
|
}
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5792
|
+
}
|
|
5793
|
+
if (!column && this.separator !== '') {
|
|
5794
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5795
|
+
if (columns[i].field === rootField) {
|
|
5796
|
+
if (columns[i].columns) {
|
|
5797
|
+
var subField = field.substring(rootField.length + this.separator.length);
|
|
5798
|
+
if (subField) {
|
|
5799
|
+
column = this.getColumn(subField, columns[i].columns);
|
|
5800
|
+
}
|
|
5801
|
+
else {
|
|
5802
|
+
column = columns[i];
|
|
5803
|
+
}
|
|
5804
|
+
}
|
|
5805
|
+
else {
|
|
5806
|
+
column = columns[i];
|
|
5807
|
+
}
|
|
5646
5808
|
break;
|
|
5647
5809
|
}
|
|
5648
5810
|
}
|
|
5649
|
-
|
|
5650
|
-
|
|
5651
|
-
|
|
5652
|
-
|
|
5811
|
+
}
|
|
5812
|
+
if (!column) {
|
|
5813
|
+
for (var i = 0; i < columns.length; i++) {
|
|
5814
|
+
if (columns[i].columns) {
|
|
5815
|
+
column = this.getColumn(field, columns[i].columns);
|
|
5816
|
+
if (column) {
|
|
5817
|
+
break;
|
|
5818
|
+
}
|
|
5653
5819
|
}
|
|
5654
5820
|
}
|
|
5655
5821
|
}
|
|
@@ -6103,6 +6269,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6103
6269
|
return false;
|
|
6104
6270
|
};
|
|
6105
6271
|
QueryBuilder.prototype.getSqlString = function (rules, enableEscape, queryStr, sqlLocale) {
|
|
6272
|
+
var _this = this;
|
|
6106
6273
|
var isRoot = false;
|
|
6107
6274
|
if (!queryStr && queryStr !== '') {
|
|
6108
6275
|
queryStr = '';
|
|
@@ -6111,86 +6278,74 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6111
6278
|
else {
|
|
6112
6279
|
queryStr += '(';
|
|
6113
6280
|
}
|
|
6114
|
-
var condition = rules.condition;
|
|
6115
6281
|
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
|
-
}
|
|
6282
|
+
var notPrefix = sqlLocale ? this.l10n.getConstant('NOT').toUpperCase() + ' ' : 'NOT ';
|
|
6283
|
+
queryStr += isRoot ? notPrefix + '(' : ' ' + notPrefix + '(';
|
|
6125
6284
|
}
|
|
6126
|
-
if (rules.rules) {
|
|
6127
|
-
|
|
6128
|
-
|
|
6129
|
-
|
|
6130
|
-
|
|
6131
|
-
|
|
6285
|
+
if (rules.rules && rules.rules.length) {
|
|
6286
|
+
queryStr += rules.rules.reduce(function (result, rule, j) {
|
|
6287
|
+
var ruleStr = '';
|
|
6288
|
+
if (rule.rules) {
|
|
6289
|
+
ruleStr = _this.getSqlString(rule, enableEscape, '', sqlLocale);
|
|
6290
|
+
if (_this.enableSeparateConnector) {
|
|
6291
|
+
rules.condition = rule.condition;
|
|
6132
6292
|
}
|
|
6133
6293
|
}
|
|
6134
6294
|
else {
|
|
6135
|
-
var
|
|
6295
|
+
var ruleOpertor = sqlLocale ? _this.sqlOperators[rule.operator] : _this.operators[rule.operator];
|
|
6136
6296
|
var valueStr = '';
|
|
6137
|
-
var ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];
|
|
6138
6297
|
if (rule.value instanceof Array) {
|
|
6139
6298
|
if (rule.operator.toString().indexOf('between') > -1) {
|
|
6140
|
-
var ruleCondition = sqlLocale ? ' ' +
|
|
6141
|
-
if (rule.type === 'date' && !
|
|
6142
|
-
valueStr
|
|
6299
|
+
var ruleCondition = sqlLocale ? ' ' + _this.l10n.getConstant('AND').toUpperCase() + ' ' : ' AND ';
|
|
6300
|
+
if (rule.type === 'date' && !_this.isDateFunction(rule.value[0])) {
|
|
6301
|
+
valueStr = "\"" + rule.value[0] + "\"" + ruleCondition + "\"" + rule.value[1] + "\"";
|
|
6143
6302
|
}
|
|
6144
6303
|
else {
|
|
6145
|
-
valueStr
|
|
6304
|
+
valueStr = "" + rule.value[0] + ruleCondition + rule.value[1];
|
|
6146
6305
|
}
|
|
6147
6306
|
}
|
|
6148
6307
|
else {
|
|
6149
6308
|
if (typeof rule.value[0] === 'string' && rule.value !== null) {
|
|
6150
|
-
|
|
6151
|
-
|
|
6152
|
-
valueStr += ',"' + rule.value[k] + '"';
|
|
6153
|
-
}
|
|
6154
|
-
valueStr += ')';
|
|
6309
|
+
var valueArray = rule.value;
|
|
6310
|
+
valueStr = '("' + valueArray.join('","') + '")';
|
|
6155
6311
|
}
|
|
6156
6312
|
else {
|
|
6157
|
-
valueStr
|
|
6313
|
+
valueStr = "(" + rule.value + ")";
|
|
6158
6314
|
}
|
|
6159
6315
|
}
|
|
6160
6316
|
}
|
|
6161
6317
|
else {
|
|
6162
6318
|
if (rule.operator.toString().indexOf('startswith') > -1) {
|
|
6163
|
-
valueStr
|
|
6319
|
+
valueStr = rule.value ? "(\"" + rule.value + "%\")" : "(" + rule.value + ")";
|
|
6164
6320
|
}
|
|
6165
6321
|
else if (rule.operator.toString().indexOf('endswith') > -1) {
|
|
6166
|
-
valueStr
|
|
6322
|
+
valueStr = rule.value ? "(\"%" + rule.value + "\")" : "(" + rule.value + ")";
|
|
6167
6323
|
}
|
|
6168
6324
|
else if (rule.operator.toString().indexOf('contains') > -1) {
|
|
6169
|
-
valueStr
|
|
6325
|
+
valueStr = rule.value ? "(\"%" + rule.value + "%\")" : "(" + rule.value + ")";
|
|
6170
6326
|
}
|
|
6171
6327
|
else {
|
|
6172
6328
|
if (rule.type === 'number' || typeof rule.value === 'boolean' ||
|
|
6173
6329
|
(rule.value === null && (rule.operator.toString().indexOf('empty') < -1))) {
|
|
6174
|
-
valueStr
|
|
6330
|
+
valueStr = "" + rule.value;
|
|
6175
6331
|
}
|
|
6176
6332
|
else if (rule.operator.toString().indexOf('empty') > -1) {
|
|
6177
|
-
valueStr
|
|
6333
|
+
valueStr = '""';
|
|
6178
6334
|
}
|
|
6179
6335
|
else {
|
|
6180
|
-
valueStr
|
|
6336
|
+
valueStr = "\"" + rule.value + "\"";
|
|
6181
6337
|
}
|
|
6182
6338
|
}
|
|
6183
6339
|
}
|
|
6340
|
+
var fieldName = rule.field;
|
|
6341
|
+
if (enableEscape) {
|
|
6342
|
+
fieldName = '`' + fieldName + '`';
|
|
6343
|
+
}
|
|
6344
|
+
else if (fieldName.indexOf(' ') > -1) {
|
|
6345
|
+
fieldName = '"' + fieldName + '"';
|
|
6346
|
+
}
|
|
6184
6347
|
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;
|
|
6348
|
+
ruleStr = fieldName + ' ' + ruleOpertor;
|
|
6194
6349
|
}
|
|
6195
6350
|
else {
|
|
6196
6351
|
var custOper = ruleOpertor;
|
|
@@ -6200,33 +6355,21 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6200
6355
|
else if (rule.operator === 'isnotempty') {
|
|
6201
6356
|
custOper = '!=';
|
|
6202
6357
|
}
|
|
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;
|
|
6358
|
+
ruleStr = fieldName + ' ' + custOper + ' ' + valueStr;
|
|
6215
6359
|
}
|
|
6216
6360
|
}
|
|
6217
|
-
if (j !==
|
|
6218
|
-
|
|
6219
|
-
var rule = rules.rules[j];
|
|
6220
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6361
|
+
if (j !== rules.rules.length - 1) {
|
|
6362
|
+
var condition = rules.condition;
|
|
6221
6363
|
if (condition === '' || (rule && rule.condition !== '' && rule.custom && rule.custom.isCustom)) {
|
|
6222
6364
|
condition = rule.condition;
|
|
6223
6365
|
}
|
|
6224
6366
|
if (condition) {
|
|
6225
|
-
condition = sqlLocale ?
|
|
6226
|
-
|
|
6367
|
+
condition = sqlLocale ? _this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
|
|
6368
|
+
ruleStr += ' ' + condition + ' ';
|
|
6227
6369
|
}
|
|
6228
6370
|
}
|
|
6229
|
-
|
|
6371
|
+
return result + ruleStr;
|
|
6372
|
+
}, '');
|
|
6230
6373
|
}
|
|
6231
6374
|
if (!isRoot) {
|
|
6232
6375
|
queryStr += ')';
|
|
@@ -6544,23 +6687,19 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6544
6687
|
return subOp[i].length;
|
|
6545
6688
|
}
|
|
6546
6689
|
}
|
|
6547
|
-
//Left Parenthesis
|
|
6548
6690
|
if (/^\(/.exec(sqlString)) {
|
|
6549
6691
|
this.parser.push(['Left', '(']);
|
|
6550
6692
|
return 1;
|
|
6551
6693
|
}
|
|
6552
|
-
//Right Parenthesis
|
|
6553
6694
|
if (/^\)/.exec(sqlString)) {
|
|
6554
6695
|
this.parser.push(['Right', ')']);
|
|
6555
6696
|
return 1;
|
|
6556
6697
|
}
|
|
6557
|
-
//Boolean
|
|
6558
6698
|
if (/^(true|false)/.exec(sqlString)) {
|
|
6559
6699
|
matchValue = /^(true|false)/.exec(sqlString)[0];
|
|
6560
6700
|
this.parser.push(['String', matchValue]);
|
|
6561
6701
|
return matchValue.length;
|
|
6562
6702
|
}
|
|
6563
|
-
//Null
|
|
6564
6703
|
if (/^null/.exec(sqlString)) {
|
|
6565
6704
|
matchValue = /^null/.exec(sqlString)[0];
|
|
6566
6705
|
this.parser.push(['String', null]);
|
|
@@ -6585,7 +6724,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6585
6724
|
return matchValue.length;
|
|
6586
6725
|
}
|
|
6587
6726
|
}
|
|
6588
|
-
//String
|
|
6589
6727
|
var singleString = this.getSingleQuoteString(sqlString);
|
|
6590
6728
|
if (singleString !== '') {
|
|
6591
6729
|
matchValue = singleString;
|
|
@@ -6605,24 +6743,20 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6605
6743
|
!this.checkCondition(sqlString, matchValue)) {
|
|
6606
6744
|
matchValue = this.combineSingleQuoteString(sqlString, matchValue);
|
|
6607
6745
|
}
|
|
6608
|
-
// end
|
|
6609
6746
|
this.parser.push(['String', matchValue]);
|
|
6610
6747
|
return matchValue.length;
|
|
6611
6748
|
}
|
|
6612
|
-
// Double String
|
|
6613
6749
|
var doubleString = this.getDoubleQuoteString(sqlString);
|
|
6614
6750
|
if (doubleString !== '') {
|
|
6615
6751
|
matchValue = doubleString;
|
|
6616
6752
|
this.parser.push(['DoubleString', matchValue]);
|
|
6617
6753
|
return matchValue.length;
|
|
6618
6754
|
}
|
|
6619
|
-
//Number
|
|
6620
6755
|
if (/^\d*\.?\d+/.exec(sqlString)) {
|
|
6621
6756
|
matchValue = /^\d*\.?\d+/.exec(sqlString)[0];
|
|
6622
6757
|
this.parser.push(['Number', matchValue]);
|
|
6623
6758
|
return matchValue.length;
|
|
6624
6759
|
}
|
|
6625
|
-
//Negative Number
|
|
6626
6760
|
if (/^-?\d*\.?\d+/.exec(sqlString)) {
|
|
6627
6761
|
matchValue = /^-?\d*\.?\d+/.exec(sqlString)[0];
|
|
6628
6762
|
this.parser.push(['Number', matchValue]);
|
|
@@ -6790,7 +6924,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6790
6924
|
fieldName += this.separator;
|
|
6791
6925
|
}
|
|
6792
6926
|
}
|
|
6793
|
-
return this.getColumn(fieldName).label;
|
|
6927
|
+
return this.getColumn(fieldName) ? this.getColumn(fieldName).label : '';
|
|
6794
6928
|
};
|
|
6795
6929
|
QueryBuilder.prototype.processParser = function (parser, rules, levelColl, sqlLocale) {
|
|
6796
6930
|
var j;
|
|
@@ -7022,12 +7156,16 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
7022
7156
|
}
|
|
7023
7157
|
}
|
|
7024
7158
|
if (this.enableSeparateConnector) {
|
|
7025
|
-
this.addRules([{
|
|
7026
|
-
'
|
|
7159
|
+
this.addRules([{
|
|
7160
|
+
'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,
|
|
7161
|
+
'value': getRule.value, 'condition': getRule.condition
|
|
7162
|
+
}], groupId);
|
|
7027
7163
|
}
|
|
7028
7164
|
else {
|
|
7029
|
-
this.addRules([{
|
|
7030
|
-
'
|
|
7165
|
+
this.addRules([{
|
|
7166
|
+
'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,
|
|
7167
|
+
'value': getRule.value
|
|
7168
|
+
}], groupId);
|
|
7031
7169
|
}
|
|
7032
7170
|
this.ruleIndex = -1;
|
|
7033
7171
|
};
|
|
@@ -7202,115 +7340,65 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
7202
7340
|
this.disableRuleControls(target, groupElem, isDisabled);
|
|
7203
7341
|
};
|
|
7204
7342
|
QueryBuilder.prototype.disableRuleControls = function (target, groupElem, isDisabled) {
|
|
7205
|
-
var
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
|
|
7210
|
-
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7343
|
+
var disableComponents = function (elements, componentGetter, isDisabled) {
|
|
7344
|
+
elements.forEach(function (element) {
|
|
7345
|
+
var component = componentGetter(element);
|
|
7346
|
+
if ('enabled' in component) {
|
|
7347
|
+
component.enabled = !isDisabled;
|
|
7348
|
+
}
|
|
7349
|
+
else if ('disabled' in component) {
|
|
7350
|
+
component.disabled = isDisabled;
|
|
7351
|
+
}
|
|
7352
|
+
});
|
|
7353
|
+
};
|
|
7354
|
+
var elements = {
|
|
7355
|
+
ddl: groupElem.querySelectorAll('.e-control.e-dropdownlist'),
|
|
7356
|
+
numeric: groupElem.querySelectorAll('.e-control.e-numerictextbox'),
|
|
7357
|
+
text: groupElem.querySelectorAll('.e-control.e-textbox'),
|
|
7358
|
+
date: groupElem.querySelectorAll('.e-control.e-datepicker'),
|
|
7359
|
+
checkbox: groupElem.querySelectorAll('.e-control.e-checkbox'),
|
|
7360
|
+
radio: groupElem.querySelectorAll('.e-control.e-radio'),
|
|
7361
|
+
multiSelect: groupElem.querySelectorAll('.e-control.e-multiselect'),
|
|
7362
|
+
deleteElem: groupElem.querySelectorAll('.e-rule-delete'),
|
|
7363
|
+
lockElem: groupElem.querySelectorAll('.e-lock-rule'),
|
|
7364
|
+
cloneElem: groupElem.querySelectorAll('.e-clone-rule'),
|
|
7365
|
+
ruleElem: groupElem.querySelectorAll('.e-rule-container')
|
|
7366
|
+
};
|
|
7367
|
+
elements.deleteElem.forEach(function (elem, i) {
|
|
7217
7368
|
if (isDisabled) {
|
|
7218
|
-
if (ruleElem[i] && ruleElem[i].classList.contains('e-disable')) {
|
|
7219
|
-
ruleElem[i].classList.add('e-disable');
|
|
7369
|
+
if (elements.ruleElem[i] && elements.ruleElem[i].classList.contains('e-disable')) {
|
|
7370
|
+
elements.ruleElem[i].classList.add('e-disable');
|
|
7220
7371
|
}
|
|
7221
|
-
deleteElem[i].disabled = true;
|
|
7222
|
-
if (cloneElem[i]) {
|
|
7223
|
-
cloneElem[i].disabled = true;
|
|
7372
|
+
elements.deleteElem[i].disabled = true;
|
|
7373
|
+
if (elements.cloneElem[i]) {
|
|
7374
|
+
elements.cloneElem[i].disabled = true;
|
|
7224
7375
|
}
|
|
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');
|
|
7376
|
+
if (elements.lockElem[i] !== target) {
|
|
7377
|
+
elements.lockElem[i].disabled = true;
|
|
7378
|
+
elements.lockElem[i].children[0].classList.remove('e-unlock');
|
|
7379
|
+
elements.lockElem[i].children[0].classList.add('e-lock');
|
|
7229
7380
|
}
|
|
7230
7381
|
}
|
|
7231
7382
|
else {
|
|
7232
|
-
if (ruleElem[i]) {
|
|
7233
|
-
ruleElem[i].classList.remove('e-disable');
|
|
7383
|
+
if (elements.ruleElem[i]) {
|
|
7384
|
+
elements.ruleElem[i].classList.remove('e-disable');
|
|
7234
7385
|
}
|
|
7235
|
-
if (cloneElem[i]) {
|
|
7236
|
-
cloneElem[i].disabled = false;
|
|
7386
|
+
if (elements.cloneElem[i]) {
|
|
7387
|
+
elements.cloneElem[i].disabled = false;
|
|
7237
7388
|
}
|
|
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');
|
|
7389
|
+
elements.deleteElem[i].disabled = false;
|
|
7390
|
+
elements.lockElem[i].disabled = false;
|
|
7391
|
+
elements.lockElem[i].children[0].classList.remove('e-lock');
|
|
7392
|
+
elements.lockElem[i].children[0].classList.add('e-unlock');
|
|
7242
7393
|
}
|
|
7243
|
-
}
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
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;
|
|
7285
|
-
}
|
|
7286
|
-
}
|
|
7287
|
-
for (var i = 0; i < checkboxElement.length; i++) {
|
|
7288
|
-
checkBoxObj = getComponent(checkboxElement[i], 'checkbox');
|
|
7289
|
-
if (isDisabled) {
|
|
7290
|
-
checkBoxObj.disabled = true;
|
|
7291
|
-
}
|
|
7292
|
-
else {
|
|
7293
|
-
checkBoxObj.disabled = false;
|
|
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
|
-
}
|
|
7394
|
+
});
|
|
7395
|
+
disableComponents(elements.ddl, function (elem) { return getComponent(elem, 'dropdownlist'); }, isDisabled);
|
|
7396
|
+
disableComponents(elements.numeric, function (elem) { return getComponent(elem, 'numerictextbox'); }, isDisabled);
|
|
7397
|
+
disableComponents(elements.text, function (elem) { return getComponent(elem, 'textbox'); }, isDisabled);
|
|
7398
|
+
disableComponents(elements.date, function (elem) { return getComponent(elem, 'datepicker'); }, isDisabled);
|
|
7399
|
+
disableComponents(elements.checkbox, function (elem) { return getComponent(elem, 'checkbox'); }, isDisabled);
|
|
7400
|
+
disableComponents(elements.radio, function (elem) { return getComponent(elem, 'radio'); }, isDisabled);
|
|
7401
|
+
disableComponents(elements.multiSelect, function (elem) { return getComponent(elem, 'multiselect'); }, isDisabled);
|
|
7314
7402
|
};
|
|
7315
7403
|
__decorate([
|
|
7316
7404
|
Event()
|