@easyquery/ui 7.3.3 → 7.3.5-rc01
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.
|
@@ -4714,10 +4714,10 @@ input.eqjs-invalid {
|
|
|
4714
4714
|
font-weight: normal;
|
|
4715
4715
|
font-variant: normal;
|
|
4716
4716
|
text-transform: none !important;
|
|
4717
|
-
line-height: 1!important;
|
|
4717
|
+
line-height: 1 !important;
|
|
4718
4718
|
font-size: var(--icon-size);
|
|
4719
4719
|
color: var(--button-text-color);
|
|
4720
|
-
text-decoration: none;
|
|
4720
|
+
text-decoration: none !important;
|
|
4721
4721
|
padding: 0;
|
|
4722
4722
|
outline: none;
|
|
4723
4723
|
|
|
@@ -4858,6 +4858,11 @@ input.eqjs-invalid {
|
|
|
4858
4858
|
flex-wrap: nowrap;
|
|
4859
4859
|
}
|
|
4860
4860
|
|
|
4861
|
+
.eqjs-qp-valueelement {
|
|
4862
|
+
width: auto;
|
|
4863
|
+
flex-grow: 0;
|
|
4864
|
+
}
|
|
4865
|
+
|
|
4861
4866
|
.eqjs-qc-attrelement, .eqjs-qp-attrelement, .eqjs-qp-operelement {
|
|
4862
4867
|
margin-left: 0;
|
|
4863
4868
|
flex-shrink: 1;
|
|
@@ -4961,7 +4966,7 @@ input.eqjs-invalid {
|
|
|
4961
4966
|
}
|
|
4962
4967
|
|
|
4963
4968
|
.eqjs-menu-scrollDiv:not(.eqjs-mobile) {
|
|
4964
|
-
max-height: 500px
|
|
4969
|
+
/*max-height: 500px;*/
|
|
4965
4970
|
}
|
|
4966
4971
|
|
|
4967
4972
|
.eqjs-qc-colelement {
|
|
@@ -5099,6 +5104,30 @@ input.eqjs-invalid {
|
|
|
5099
5104
|
.eqjs-qc-captionelement input {
|
|
5100
5105
|
min-width: var(--column-panel-caption-size);
|
|
5101
5106
|
width: auto;
|
|
5107
|
+
}
|
|
5108
|
+
|
|
5109
|
+
.eqjs-qp-row {
|
|
5110
|
+
padding: 0 10px!important;
|
|
5111
|
+
}
|
|
5112
|
+
.eqjs-qp-condition-buttonsBlock, .eqjs-facets-total-buttons {
|
|
5113
|
+
margin-right: 10px;
|
|
5114
|
+
}
|
|
5115
|
+
|
|
5116
|
+
.eqjs-qp-row.eqjs-mobile {
|
|
5117
|
+
border-style: solid!important;
|
|
5118
|
+
margin: 0 4px;
|
|
5119
|
+
}
|
|
5120
|
+
|
|
5121
|
+
.eqjs-qp-condition-buttonsBlock.eqjs-mobile {
|
|
5122
|
+
top: 0!important;
|
|
5123
|
+
}
|
|
5124
|
+
|
|
5125
|
+
.eqjs-cb-addrow.eqjs-mobile a, .eqjs-sb-addrow.eqjs-mobile a {
|
|
5126
|
+
background: none!important;
|
|
5127
|
+
}
|
|
5128
|
+
|
|
5129
|
+
.eqjs-menu-levelDiv {
|
|
5130
|
+
max-height: 96vh;
|
|
5102
5131
|
}
|
|
5103
5132
|
/*setting to all page */
|
|
5104
5133
|
#eqv-main{
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
font-weight: normal;
|
|
45
45
|
font-variant: normal;
|
|
46
46
|
text-transform: none !important;
|
|
47
|
-
line-height: 1!important;
|
|
47
|
+
line-height: 1 !important;
|
|
48
48
|
font-size: var(--icon-size);
|
|
49
49
|
color: var(--button-text-color);
|
|
50
|
-
text-decoration: none;
|
|
50
|
+
text-decoration: none !important;
|
|
51
51
|
padding: 0;
|
|
52
52
|
outline: none;
|
|
53
53
|
|
|
@@ -188,6 +188,11 @@
|
|
|
188
188
|
flex-wrap: nowrap;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
+
.eqjs-qp-valueelement {
|
|
192
|
+
width: auto;
|
|
193
|
+
flex-grow: 0;
|
|
194
|
+
}
|
|
195
|
+
|
|
191
196
|
.eqjs-qc-attrelement, .eqjs-qp-attrelement, .eqjs-qp-operelement {
|
|
192
197
|
margin-left: 0;
|
|
193
198
|
flex-shrink: 1;
|
|
@@ -291,7 +296,7 @@
|
|
|
291
296
|
}
|
|
292
297
|
|
|
293
298
|
.eqjs-menu-scrollDiv:not(.eqjs-mobile) {
|
|
294
|
-
max-height: 500px
|
|
299
|
+
/*max-height: 500px;*/
|
|
295
300
|
}
|
|
296
301
|
|
|
297
302
|
.eqjs-qc-colelement {
|
|
@@ -427,4 +432,28 @@
|
|
|
427
432
|
.eqjs-qc-captionelement input {
|
|
428
433
|
min-width: var(--column-panel-caption-size);
|
|
429
434
|
width: auto;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.eqjs-qp-row {
|
|
438
|
+
padding: 0 10px!important;
|
|
439
|
+
}
|
|
440
|
+
.eqjs-qp-condition-buttonsBlock, .eqjs-facets-total-buttons {
|
|
441
|
+
margin-right: 10px;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
.eqjs-qp-row.eqjs-mobile {
|
|
445
|
+
border-style: solid!important;
|
|
446
|
+
margin: 0 4px;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.eqjs-qp-condition-buttonsBlock.eqjs-mobile {
|
|
450
|
+
top: 0!important;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.eqjs-cb-addrow.eqjs-mobile a, .eqjs-sb-addrow.eqjs-mobile a {
|
|
454
|
+
background: none!important;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
.eqjs-menu-levelDiv {
|
|
458
|
+
max-height: 96vh;
|
|
430
459
|
}
|
package/dist/easyquery.ui.cjs.js
CHANGED
|
@@ -21,11 +21,11 @@ function findHighestZIndex(elem) {
|
|
|
21
21
|
}
|
|
22
22
|
// simetimes setting focus in the main thread doesn't work correctly (in Firefox). So we need to 'hack' it.
|
|
23
23
|
function safeFocus(element) {
|
|
24
|
-
setTimeout(
|
|
25
|
-
if (
|
|
26
|
-
|
|
24
|
+
setTimeout((el) => {
|
|
25
|
+
if (el && el.focus) {
|
|
26
|
+
el.focus();
|
|
27
27
|
}
|
|
28
|
-
}, 100);
|
|
28
|
+
}, 100, element);
|
|
29
29
|
}
|
|
30
30
|
const eqCssPrefix = 'eqjs';
|
|
31
31
|
const eqCssMobile = 'eqjs-mobile';
|
|
@@ -1425,6 +1425,7 @@ class MenuLevel {
|
|
|
1425
1425
|
//crocodile
|
|
1426
1426
|
this.turnCheckboxes(this.items);
|
|
1427
1427
|
this.renderItems();
|
|
1428
|
+
const winSize = ui.getWinSize();
|
|
1428
1429
|
const levelStyle = this.levelDiv.style;
|
|
1429
1430
|
if (hidden) {
|
|
1430
1431
|
this.levelDiv.style.visibility = 'hidden';
|
|
@@ -1434,10 +1435,60 @@ class MenuLevel {
|
|
|
1434
1435
|
levelStyle.top = y + 'px';
|
|
1435
1436
|
this.scrollDiv.style.width = "auto";
|
|
1436
1437
|
this.scrollDiv.style.height = "auto";
|
|
1438
|
+
const useMaxSpace = this.parentMenu.options.useMaxSpace;
|
|
1439
|
+
if (useMaxSpace === false) {
|
|
1440
|
+
const levelDivRect = this.levelDiv.getBoundingClientRect();
|
|
1441
|
+
const ldHeight = levelDivRect.height;
|
|
1442
|
+
const vpHeight = winSize.height;
|
|
1443
|
+
const top = y - 16 - scrollY;
|
|
1444
|
+
const bottom = vpHeight - top;
|
|
1445
|
+
if (top > bottom) {
|
|
1446
|
+
// console.log("top > bottom");
|
|
1447
|
+
if (ldHeight > bottom) {
|
|
1448
|
+
let maxHeight = top;
|
|
1449
|
+
if (this.searchDiv != null) {
|
|
1450
|
+
maxHeight -= this.searchDiv.offsetHeight;
|
|
1451
|
+
}
|
|
1452
|
+
if (this.closeDiv != null) {
|
|
1453
|
+
maxHeight -= this.closeDiv.offsetHeight;
|
|
1454
|
+
}
|
|
1455
|
+
this.scrollDiv.style.maxHeight = (maxHeight - 24) + 'px';
|
|
1456
|
+
this.levelDiv.style.top = Math.max(6, y - ldHeight - 24) + 'px';
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
else {
|
|
1460
|
+
// console.log("bottom > top");
|
|
1461
|
+
this.scrollDiv.style.maxHeight = (bottom - 80) + 'px';
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1437
1464
|
//adjusting level top position
|
|
1438
|
-
if (
|
|
1465
|
+
if (useMaxSpace) {
|
|
1439
1466
|
y = this.adjustTopPos(y);
|
|
1440
1467
|
levelStyle.top = y + 'px';
|
|
1468
|
+
//adjustinng maximum height of the menu level if it does not fit to browser window
|
|
1469
|
+
let maxHeight = winSize.height - (y - ui.getScrollPos().top) - 15; //document.documentElement.scrollTop
|
|
1470
|
+
if (this.parentMenu.maxHeight > 0 && maxHeight > this.parentMenu.maxHeight) {
|
|
1471
|
+
maxHeight = this.parentMenu.maxHeight;
|
|
1472
|
+
}
|
|
1473
|
+
if (this._applyItem != null && this._applyItem.itemDiv != null) {
|
|
1474
|
+
maxHeight -= this._applyItem.itemDiv.offsetHeight + 5;
|
|
1475
|
+
}
|
|
1476
|
+
if (this.searchDiv != null) {
|
|
1477
|
+
maxHeight -= this.searchDiv.offsetHeight;
|
|
1478
|
+
}
|
|
1479
|
+
if (this.closeDiv != null) {
|
|
1480
|
+
maxHeight -= this.closeDiv.offsetHeight;
|
|
1481
|
+
}
|
|
1482
|
+
if (this.levelDiv.offsetHeight > maxHeight) {
|
|
1483
|
+
let newHeight = maxHeight;
|
|
1484
|
+
if (newHeight < 50) {
|
|
1485
|
+
newHeight = 50;
|
|
1486
|
+
}
|
|
1487
|
+
this.scrollDiv.style.height = newHeight + "px";
|
|
1488
|
+
}
|
|
1489
|
+
else {
|
|
1490
|
+
this.scrollDiv.style.height = "auto";
|
|
1491
|
+
}
|
|
1441
1492
|
}
|
|
1442
1493
|
//setting minimal level width if it is defined
|
|
1443
1494
|
let minItemWidth = this.parentMenu.minItemWidth;
|
|
@@ -1453,31 +1504,6 @@ class MenuLevel {
|
|
|
1453
1504
|
this.items[i].itemDiv.style.overflowX = "hidden";
|
|
1454
1505
|
}
|
|
1455
1506
|
}
|
|
1456
|
-
const winSize = ui.getWinSize();
|
|
1457
|
-
//adjustinng maximum height of the menu level if it does not fit to browser window
|
|
1458
|
-
let maxHeight = winSize.height - (y - ui.getScrollPos().top) - 15; //document.documentElement.scrollTop
|
|
1459
|
-
if (this.parentMenu.maxHeight > 0 && maxHeight > this.parentMenu.maxHeight) {
|
|
1460
|
-
maxHeight = this.parentMenu.maxHeight;
|
|
1461
|
-
}
|
|
1462
|
-
if (this._applyItem != null && this._applyItem.itemDiv != null) {
|
|
1463
|
-
maxHeight -= this._applyItem.itemDiv.offsetHeight + 5;
|
|
1464
|
-
}
|
|
1465
|
-
if (this.searchDiv != null) {
|
|
1466
|
-
maxHeight -= this.searchDiv.offsetHeight;
|
|
1467
|
-
}
|
|
1468
|
-
if (this.closeDiv != null) {
|
|
1469
|
-
maxHeight -= this.closeDiv.offsetHeight;
|
|
1470
|
-
}
|
|
1471
|
-
if (this.levelDiv.offsetHeight > maxHeight) {
|
|
1472
|
-
let newHeight = maxHeight;
|
|
1473
|
-
if (newHeight < 50) {
|
|
1474
|
-
newHeight = 50;
|
|
1475
|
-
}
|
|
1476
|
-
this.scrollDiv.style.height = newHeight + "px";
|
|
1477
|
-
}
|
|
1478
|
-
else {
|
|
1479
|
-
this.scrollDiv.style.height = "auto";
|
|
1480
|
-
}
|
|
1481
1507
|
this.activeItem = null;
|
|
1482
1508
|
}
|
|
1483
1509
|
focus() {
|
|
@@ -1619,7 +1645,8 @@ class PopupMenu {
|
|
|
1619
1645
|
container: document.body,
|
|
1620
1646
|
domWriteItemsId: false,
|
|
1621
1647
|
itemRenderedCallback: null,
|
|
1622
|
-
showItemIds: false
|
|
1648
|
+
showItemIds: false,
|
|
1649
|
+
useMaxSpace: true,
|
|
1623
1650
|
};
|
|
1624
1651
|
if (options) {
|
|
1625
1652
|
core$1.utils.assign(this.options, options);
|
|
@@ -2742,6 +2769,7 @@ class AttrColumnRendererCP extends ColumnRendererCP {
|
|
|
2742
2769
|
.title(attrCaption)
|
|
2743
2770
|
.text(attrCaption) //TO DO:add localization
|
|
2744
2771
|
.on('click', (ev) => {
|
|
2772
|
+
console.log("columns expression click");
|
|
2745
2773
|
ev.stopPropagation();
|
|
2746
2774
|
this.activate();
|
|
2747
2775
|
this.panel.showEntitiesMenu({
|
|
@@ -3407,6 +3435,7 @@ class ColumnsPanel extends core.Widget {
|
|
|
3407
3435
|
.attr('href', 'javascript:void(0)')
|
|
3408
3436
|
.text(core$1.i18n.getText('CmdClickToAddColumn'))
|
|
3409
3437
|
.on('click', (e) => {
|
|
3438
|
+
console.log("Add new column");
|
|
3410
3439
|
e.preventDefault();
|
|
3411
3440
|
this.showEntitiesMenu({
|
|
3412
3441
|
anchor: e.target,
|
|
@@ -7988,7 +8017,8 @@ class QueryPanel extends core.Widget {
|
|
|
7988
8017
|
return new PopupMenu(options);
|
|
7989
8018
|
}
|
|
7990
8019
|
showEntitiesMenu(options) {
|
|
7991
|
-
this.entitiesMenu.showMenu(options);
|
|
8020
|
+
this.entitiesMenu.showMenu(Object.assign({}, this.options.menuOptions, options));
|
|
8021
|
+
// this.entitiesMenu.showMenu(options);
|
|
7992
8022
|
}
|
|
7993
8023
|
createConditionMenus() {
|
|
7994
8024
|
//ConditionMenu
|
|
@@ -8285,6 +8315,7 @@ class FilterBar extends core.Widget {
|
|
|
8285
8315
|
.text(core$1.i18n.getText('StrNoFilterClickToAdd'))
|
|
8286
8316
|
.hide()
|
|
8287
8317
|
.on('click', () => {
|
|
8318
|
+
console.log("condition filter click");
|
|
8288
8319
|
this.queryPanel.showEntitiesMenu({
|
|
8289
8320
|
anchor: this.headerLinkElement,
|
|
8290
8321
|
selectedIds: null,
|
|
@@ -8683,9 +8714,10 @@ class EasyGridWidget extends Grid {
|
|
|
8683
8714
|
* @param options The options.
|
|
8684
8715
|
*/
|
|
8685
8716
|
init(context, options) {
|
|
8717
|
+
var _a, _b;
|
|
8686
8718
|
super.init(context, options);
|
|
8687
|
-
const gridOptions = Object.assign(Object.assign({}, options), { slot: this.slot, dataTable: context.resultTable });
|
|
8688
|
-
this.options = core$1.utils.assign(this.options,
|
|
8719
|
+
const gridOptions = Object.assign(Object.assign(Object.assign(Object.assign({}, (_a = context.options.widgets) === null || _a === void 0 ? void 0 : _a.resultGrid), (_b = context.options.widgets) === null || _b === void 0 ? void 0 : _b.easyGrid), options), { slot: this.slot, dataTable: context.resultTable });
|
|
8720
|
+
this.options = core$1.utils.assign(this.options, gridOptions);
|
|
8689
8721
|
gridOptions.onPlusButtonClick = (ev) => this.addColumnClickHandler(ev);
|
|
8690
8722
|
gridOptions.onColumnMoved = (ev) => this.columnMovedHandler(ev);
|
|
8691
8723
|
if (gridOptions.aggregates) {
|
|
@@ -8694,8 +8726,7 @@ class EasyGridWidget extends Grid {
|
|
|
8694
8726
|
else {
|
|
8695
8727
|
gridOptions.aggregates = { settings: context.getQuery().getAggregationSettings(), calculatorRef: null };
|
|
8696
8728
|
}
|
|
8697
|
-
gridOptions.aggregates.calculatorRef = this.context.
|
|
8698
|
-
.getAggregatesCalculator(this.context);
|
|
8729
|
+
gridOptions.aggregates.calculatorRef = this.context.getAggregatesCalculator();
|
|
8699
8730
|
this.destroy();
|
|
8700
8731
|
this.grid = new ui.EasyGrid(gridOptions);
|
|
8701
8732
|
if (this.options.autoRefresh) {
|
|
@@ -12389,9 +12420,7 @@ class View {
|
|
|
12389
12420
|
if (this.context.getQuery().isEmpty() && !this.resultOptions.fetchEmptyQueries)
|
|
12390
12421
|
return;
|
|
12391
12422
|
this.showResultSpinner();
|
|
12392
|
-
this.context.fetchData({
|
|
12393
|
-
elasticPaging: options.elasticPaging,
|
|
12394
|
-
success: (result) => {
|
|
12423
|
+
this.context.fetchData(Object.assign(Object.assign({}, options), { elasticPaging: options.elasticPaging, success: (result) => {
|
|
12395
12424
|
this.hideResultSpinner();
|
|
12396
12425
|
this.toggleExportButtons();
|
|
12397
12426
|
this.displayRecordsCount(this.context.resultTable.getTotal());
|
|
@@ -12404,11 +12433,9 @@ class View {
|
|
|
12404
12433
|
if (options.success) {
|
|
12405
12434
|
options.success(result);
|
|
12406
12435
|
}
|
|
12407
|
-
},
|
|
12408
|
-
error: () => {
|
|
12436
|
+
}, error: () => {
|
|
12409
12437
|
this.hideResultSpinner();
|
|
12410
|
-
}
|
|
12411
|
-
});
|
|
12438
|
+
} }));
|
|
12412
12439
|
}
|
|
12413
12440
|
toggleExportButtons() {
|
|
12414
12441
|
if (this.enableExport && this.context.resultTable
|
package/dist/easyquery.ui.esm.js
CHANGED
|
@@ -19,11 +19,11 @@ function findHighestZIndex(elem) {
|
|
|
19
19
|
}
|
|
20
20
|
// simetimes setting focus in the main thread doesn't work correctly (in Firefox). So we need to 'hack' it.
|
|
21
21
|
function safeFocus(element) {
|
|
22
|
-
setTimeout(
|
|
23
|
-
if (
|
|
24
|
-
|
|
22
|
+
setTimeout((el) => {
|
|
23
|
+
if (el && el.focus) {
|
|
24
|
+
el.focus();
|
|
25
25
|
}
|
|
26
|
-
}, 100);
|
|
26
|
+
}, 100, element);
|
|
27
27
|
}
|
|
28
28
|
const eqCssPrefix = 'eqjs';
|
|
29
29
|
const eqCssMobile = 'eqjs-mobile';
|
|
@@ -1423,6 +1423,7 @@ class MenuLevel {
|
|
|
1423
1423
|
//crocodile
|
|
1424
1424
|
this.turnCheckboxes(this.items);
|
|
1425
1425
|
this.renderItems();
|
|
1426
|
+
const winSize = getWinSize();
|
|
1426
1427
|
const levelStyle = this.levelDiv.style;
|
|
1427
1428
|
if (hidden) {
|
|
1428
1429
|
this.levelDiv.style.visibility = 'hidden';
|
|
@@ -1432,10 +1433,60 @@ class MenuLevel {
|
|
|
1432
1433
|
levelStyle.top = y + 'px';
|
|
1433
1434
|
this.scrollDiv.style.width = "auto";
|
|
1434
1435
|
this.scrollDiv.style.height = "auto";
|
|
1436
|
+
const useMaxSpace = this.parentMenu.options.useMaxSpace;
|
|
1437
|
+
if (useMaxSpace === false) {
|
|
1438
|
+
const levelDivRect = this.levelDiv.getBoundingClientRect();
|
|
1439
|
+
const ldHeight = levelDivRect.height;
|
|
1440
|
+
const vpHeight = winSize.height;
|
|
1441
|
+
const top = y - 16 - scrollY;
|
|
1442
|
+
const bottom = vpHeight - top;
|
|
1443
|
+
if (top > bottom) {
|
|
1444
|
+
// console.log("top > bottom");
|
|
1445
|
+
if (ldHeight > bottom) {
|
|
1446
|
+
let maxHeight = top;
|
|
1447
|
+
if (this.searchDiv != null) {
|
|
1448
|
+
maxHeight -= this.searchDiv.offsetHeight;
|
|
1449
|
+
}
|
|
1450
|
+
if (this.closeDiv != null) {
|
|
1451
|
+
maxHeight -= this.closeDiv.offsetHeight;
|
|
1452
|
+
}
|
|
1453
|
+
this.scrollDiv.style.maxHeight = (maxHeight - 24) + 'px';
|
|
1454
|
+
this.levelDiv.style.top = Math.max(6, y - ldHeight - 24) + 'px';
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
else {
|
|
1458
|
+
// console.log("bottom > top");
|
|
1459
|
+
this.scrollDiv.style.maxHeight = (bottom - 80) + 'px';
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1435
1462
|
//adjusting level top position
|
|
1436
|
-
if (
|
|
1463
|
+
if (useMaxSpace) {
|
|
1437
1464
|
y = this.adjustTopPos(y);
|
|
1438
1465
|
levelStyle.top = y + 'px';
|
|
1466
|
+
//adjustinng maximum height of the menu level if it does not fit to browser window
|
|
1467
|
+
let maxHeight = winSize.height - (y - getScrollPos().top) - 15; //document.documentElement.scrollTop
|
|
1468
|
+
if (this.parentMenu.maxHeight > 0 && maxHeight > this.parentMenu.maxHeight) {
|
|
1469
|
+
maxHeight = this.parentMenu.maxHeight;
|
|
1470
|
+
}
|
|
1471
|
+
if (this._applyItem != null && this._applyItem.itemDiv != null) {
|
|
1472
|
+
maxHeight -= this._applyItem.itemDiv.offsetHeight + 5;
|
|
1473
|
+
}
|
|
1474
|
+
if (this.searchDiv != null) {
|
|
1475
|
+
maxHeight -= this.searchDiv.offsetHeight;
|
|
1476
|
+
}
|
|
1477
|
+
if (this.closeDiv != null) {
|
|
1478
|
+
maxHeight -= this.closeDiv.offsetHeight;
|
|
1479
|
+
}
|
|
1480
|
+
if (this.levelDiv.offsetHeight > maxHeight) {
|
|
1481
|
+
let newHeight = maxHeight;
|
|
1482
|
+
if (newHeight < 50) {
|
|
1483
|
+
newHeight = 50;
|
|
1484
|
+
}
|
|
1485
|
+
this.scrollDiv.style.height = newHeight + "px";
|
|
1486
|
+
}
|
|
1487
|
+
else {
|
|
1488
|
+
this.scrollDiv.style.height = "auto";
|
|
1489
|
+
}
|
|
1439
1490
|
}
|
|
1440
1491
|
//setting minimal level width if it is defined
|
|
1441
1492
|
let minItemWidth = this.parentMenu.minItemWidth;
|
|
@@ -1451,31 +1502,6 @@ class MenuLevel {
|
|
|
1451
1502
|
this.items[i].itemDiv.style.overflowX = "hidden";
|
|
1452
1503
|
}
|
|
1453
1504
|
}
|
|
1454
|
-
const winSize = getWinSize();
|
|
1455
|
-
//adjustinng maximum height of the menu level if it does not fit to browser window
|
|
1456
|
-
let maxHeight = winSize.height - (y - getScrollPos().top) - 15; //document.documentElement.scrollTop
|
|
1457
|
-
if (this.parentMenu.maxHeight > 0 && maxHeight > this.parentMenu.maxHeight) {
|
|
1458
|
-
maxHeight = this.parentMenu.maxHeight;
|
|
1459
|
-
}
|
|
1460
|
-
if (this._applyItem != null && this._applyItem.itemDiv != null) {
|
|
1461
|
-
maxHeight -= this._applyItem.itemDiv.offsetHeight + 5;
|
|
1462
|
-
}
|
|
1463
|
-
if (this.searchDiv != null) {
|
|
1464
|
-
maxHeight -= this.searchDiv.offsetHeight;
|
|
1465
|
-
}
|
|
1466
|
-
if (this.closeDiv != null) {
|
|
1467
|
-
maxHeight -= this.closeDiv.offsetHeight;
|
|
1468
|
-
}
|
|
1469
|
-
if (this.levelDiv.offsetHeight > maxHeight) {
|
|
1470
|
-
let newHeight = maxHeight;
|
|
1471
|
-
if (newHeight < 50) {
|
|
1472
|
-
newHeight = 50;
|
|
1473
|
-
}
|
|
1474
|
-
this.scrollDiv.style.height = newHeight + "px";
|
|
1475
|
-
}
|
|
1476
|
-
else {
|
|
1477
|
-
this.scrollDiv.style.height = "auto";
|
|
1478
|
-
}
|
|
1479
1505
|
this.activeItem = null;
|
|
1480
1506
|
}
|
|
1481
1507
|
focus() {
|
|
@@ -1617,7 +1643,8 @@ class PopupMenu {
|
|
|
1617
1643
|
container: document.body,
|
|
1618
1644
|
domWriteItemsId: false,
|
|
1619
1645
|
itemRenderedCallback: null,
|
|
1620
|
-
showItemIds: false
|
|
1646
|
+
showItemIds: false,
|
|
1647
|
+
useMaxSpace: true,
|
|
1621
1648
|
};
|
|
1622
1649
|
if (options) {
|
|
1623
1650
|
utils.assign(this.options, options);
|
|
@@ -2740,6 +2767,7 @@ class AttrColumnRendererCP extends ColumnRendererCP {
|
|
|
2740
2767
|
.title(attrCaption)
|
|
2741
2768
|
.text(attrCaption) //TO DO:add localization
|
|
2742
2769
|
.on('click', (ev) => {
|
|
2770
|
+
console.log("columns expression click");
|
|
2743
2771
|
ev.stopPropagation();
|
|
2744
2772
|
this.activate();
|
|
2745
2773
|
this.panel.showEntitiesMenu({
|
|
@@ -3405,6 +3433,7 @@ class ColumnsPanel extends Widget {
|
|
|
3405
3433
|
.attr('href', 'javascript:void(0)')
|
|
3406
3434
|
.text(i18n.getText('CmdClickToAddColumn'))
|
|
3407
3435
|
.on('click', (e) => {
|
|
3436
|
+
console.log("Add new column");
|
|
3408
3437
|
e.preventDefault();
|
|
3409
3438
|
this.showEntitiesMenu({
|
|
3410
3439
|
anchor: e.target,
|
|
@@ -7986,7 +8015,8 @@ class QueryPanel extends Widget {
|
|
|
7986
8015
|
return new PopupMenu(options);
|
|
7987
8016
|
}
|
|
7988
8017
|
showEntitiesMenu(options) {
|
|
7989
|
-
this.entitiesMenu.showMenu(options);
|
|
8018
|
+
this.entitiesMenu.showMenu(Object.assign({}, this.options.menuOptions, options));
|
|
8019
|
+
// this.entitiesMenu.showMenu(options);
|
|
7990
8020
|
}
|
|
7991
8021
|
createConditionMenus() {
|
|
7992
8022
|
//ConditionMenu
|
|
@@ -8283,6 +8313,7 @@ class FilterBar extends Widget {
|
|
|
8283
8313
|
.text(i18n.getText('StrNoFilterClickToAdd'))
|
|
8284
8314
|
.hide()
|
|
8285
8315
|
.on('click', () => {
|
|
8316
|
+
console.log("condition filter click");
|
|
8286
8317
|
this.queryPanel.showEntitiesMenu({
|
|
8287
8318
|
anchor: this.headerLinkElement,
|
|
8288
8319
|
selectedIds: null,
|
|
@@ -8681,9 +8712,10 @@ class EasyGridWidget extends Grid {
|
|
|
8681
8712
|
* @param options The options.
|
|
8682
8713
|
*/
|
|
8683
8714
|
init(context, options) {
|
|
8715
|
+
var _a, _b;
|
|
8684
8716
|
super.init(context, options);
|
|
8685
|
-
const gridOptions = Object.assign(Object.assign({}, options), { slot: this.slot, dataTable: context.resultTable });
|
|
8686
|
-
this.options = utils.assign(this.options,
|
|
8717
|
+
const gridOptions = Object.assign(Object.assign(Object.assign(Object.assign({}, (_a = context.options.widgets) === null || _a === void 0 ? void 0 : _a.resultGrid), (_b = context.options.widgets) === null || _b === void 0 ? void 0 : _b.easyGrid), options), { slot: this.slot, dataTable: context.resultTable });
|
|
8718
|
+
this.options = utils.assign(this.options, gridOptions);
|
|
8687
8719
|
gridOptions.onPlusButtonClick = (ev) => this.addColumnClickHandler(ev);
|
|
8688
8720
|
gridOptions.onColumnMoved = (ev) => this.columnMovedHandler(ev);
|
|
8689
8721
|
if (gridOptions.aggregates) {
|
|
@@ -8692,8 +8724,7 @@ class EasyGridWidget extends Grid {
|
|
|
8692
8724
|
else {
|
|
8693
8725
|
gridOptions.aggregates = { settings: context.getQuery().getAggregationSettings(), calculatorRef: null };
|
|
8694
8726
|
}
|
|
8695
|
-
gridOptions.aggregates.calculatorRef = this.context.
|
|
8696
|
-
.getAggregatesCalculator(this.context);
|
|
8727
|
+
gridOptions.aggregates.calculatorRef = this.context.getAggregatesCalculator();
|
|
8697
8728
|
this.destroy();
|
|
8698
8729
|
this.grid = new EasyGrid(gridOptions);
|
|
8699
8730
|
if (this.options.autoRefresh) {
|
|
@@ -12387,9 +12418,7 @@ class View {
|
|
|
12387
12418
|
if (this.context.getQuery().isEmpty() && !this.resultOptions.fetchEmptyQueries)
|
|
12388
12419
|
return;
|
|
12389
12420
|
this.showResultSpinner();
|
|
12390
|
-
this.context.fetchData({
|
|
12391
|
-
elasticPaging: options.elasticPaging,
|
|
12392
|
-
success: (result) => {
|
|
12421
|
+
this.context.fetchData(Object.assign(Object.assign({}, options), { elasticPaging: options.elasticPaging, success: (result) => {
|
|
12393
12422
|
this.hideResultSpinner();
|
|
12394
12423
|
this.toggleExportButtons();
|
|
12395
12424
|
this.displayRecordsCount(this.context.resultTable.getTotal());
|
|
@@ -12402,11 +12431,9 @@ class View {
|
|
|
12402
12431
|
if (options.success) {
|
|
12403
12432
|
options.success(result);
|
|
12404
12433
|
}
|
|
12405
|
-
},
|
|
12406
|
-
error: () => {
|
|
12434
|
+
}, error: () => {
|
|
12407
12435
|
this.hideResultSpinner();
|
|
12408
|
-
}
|
|
12409
|
-
});
|
|
12436
|
+
} }));
|
|
12410
12437
|
}
|
|
12411
12438
|
toggleExportButtons() {
|
|
12412
12439
|
if (this.enableExport && this.context.resultTable
|
|
@@ -119,6 +119,10 @@ export interface PopupMenuOptions {
|
|
|
119
119
|
showSelected?: boolean;
|
|
120
120
|
/** If true - the menu will show the ID for each item (e.g. {itemId}:{itemText}) */
|
|
121
121
|
showItemIds?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* If true, popup use max available space
|
|
124
|
+
*/
|
|
125
|
+
useMaxSpace?: boolean;
|
|
122
126
|
}
|
|
123
127
|
export declare class PopupMenu {
|
|
124
128
|
private static lastMenuID;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Widget, EqContext, WidgetGroup, EqServiceProvider } from '@easyquery/core';
|
|
1
|
+
import { Widget, EqContext, WidgetGroup, EqServiceProvider, ContextFetchDataOptions } from '@easyquery/core';
|
|
2
2
|
import { DialogService } from '@easydata/ui';
|
|
3
3
|
import { EqViewOptions, EqResultOptions } from './view_options';
|
|
4
4
|
export declare abstract class View {
|
|
@@ -52,7 +52,7 @@ export declare abstract class View {
|
|
|
52
52
|
* Fetches the data according to the query and other options defined in the context.
|
|
53
53
|
* @param options The options.
|
|
54
54
|
*/
|
|
55
|
-
fetchData(options?:
|
|
55
|
+
fetchData(options?: ContextFetchDataOptions): void;
|
|
56
56
|
protected enableExport: boolean;
|
|
57
57
|
protected toggleExportButtons(): void;
|
|
58
58
|
protected enableExportButtons(): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easyquery/ui",
|
|
3
|
-
"version": "7.3.
|
|
3
|
+
"version": "7.3.5-rc01",
|
|
4
4
|
"description": "EasyQuery.JS Community UI widgets",
|
|
5
5
|
"types": "./dist/types/public_api.d.ts",
|
|
6
6
|
"main": "./dist/easyquery.ui.cjs.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"bugs": "https://korzh.com/support",
|
|
31
31
|
"license": "LGPL-3.0",
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@easyquery/core": "^7.3.
|
|
33
|
+
"@easyquery/core": "^7.3.5-rc01"
|
|
34
34
|
},
|
|
35
35
|
"files": [
|
|
36
36
|
"dist",
|