@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
  }
@@ -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 (element) {
26
- element.focus();
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 (adjustTopPos) {
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, 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.getServices()
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
@@ -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 (element) {
24
- element.focus();
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 (adjustTopPos) {
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, 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.getServices()
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?: any): void;
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",
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.3"
33
+ "@easyquery/core": "^7.3.5-rc01"
34
34
  },
35
35
  "files": [
36
36
  "dist",