@easyquery/enterprise 7.2.4-rc01 → 7.2.4-rc02

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * EasyQuery.JS Enterprise 7.2.4-rc01 (https://korzh.com/easyquery/javascript)
2
+ * EasyQuery.JS Enterprise 7.2.4-rc02 (https://korzh.com/easyquery/javascript)
3
3
  * Copyright 2023 Korzh.com. All rights reserved.
4
4
  *
5
5
  * EasyQuery.JS commercial licenses may be obtained at
@@ -15681,6 +15681,13 @@ var Query = /** @class */ (function () {
15681
15681
  this._enableAggregation = false;
15682
15682
  this.parentQuery = null;
15683
15683
  this.drillDowns = [];
15684
+ this.syncSortOrderWithColumnsOrder = true;
15685
+ if (options) {
15686
+ this.context = options.context;
15687
+ if (this.context) {
15688
+ this.syncSortOrderWithColumnsOrder = this.context.options.syncSortOrderWithColumnsOrder;
15689
+ }
15690
+ }
15684
15691
  this.eventEmitter = new public_api.EventEmitter(this);
15685
15692
  this.root = new Condition(this, CondTag.Group);
15686
15693
  this.extraConditions = new Condition(this, CondTag.Group);
@@ -15776,7 +15783,7 @@ var Query = /** @class */ (function () {
15776
15783
  return hasChanged;
15777
15784
  };
15778
15785
  Query.prototype.createSubQuery = function () {
15779
- return new Query(this.model);
15786
+ return new Query(this.model, null, { context: this.context });
15780
15787
  };
15781
15788
  Query.prototype.useAggregation = function (settingsTuner, silent) {
15782
15789
  if (silent === void 0) { silent = false; }
@@ -16117,7 +16124,7 @@ var Query = /** @class */ (function () {
16117
16124
  }
16118
16125
  }
16119
16126
  this.sortedColumns.sort(function (col1, col2) {
16120
- return col1.sortIndex - col2.sortIndex;
16127
+ return col1._sortIndex - col2._sortIndex;
16121
16128
  });
16122
16129
  this.fixupSortingIndices();
16123
16130
  if (data.extraData) {
@@ -16444,6 +16451,7 @@ var Query = /** @class */ (function () {
16444
16451
  }
16445
16452
  public_api.utils.moveArrayItem(this.sortedColumns, colIdx, index);
16446
16453
  this.fixupSortingIndices();
16454
+ this.fireColumnsChangedEvent(QueryChangeAction.All);
16447
16455
  };
16448
16456
  Query.prototype.getColumnSorting = function (col) {
16449
16457
  var idx = this.getColumnSortIndex(col);
@@ -16469,12 +16477,34 @@ var Query = /** @class */ (function () {
16469
16477
  this.fixupSortingIndices();
16470
16478
  }
16471
16479
  }
16480
+ this.adjustColumnsSorting();
16481
+ this.fireColumnsChangedEvent(QueryChangeAction.Modify, col, col.isJustSorted());
16472
16482
  };
16473
16483
  Query.prototype.fixupSortingIndices = function () {
16474
16484
  this.sortedColumns.forEach(function (col, index) {
16475
16485
  col._sortIndex = index;
16476
16486
  });
16477
16487
  };
16488
+ Query.prototype.adjustColumnsSorting = function () {
16489
+ var _this = this;
16490
+ if (!this.syncSortOrderWithColumnsOrder) {
16491
+ return;
16492
+ }
16493
+ if (this.getJustSortedColumns().length > 0) {
16494
+ return;
16495
+ }
16496
+ var idx = 0;
16497
+ this.columns.forEach(function (col) {
16498
+ if (col.sorting != SortDirection.None) {
16499
+ var colIdx = _this.getColumnSortIndex(col);
16500
+ if (colIdx >= 0) {
16501
+ public_api.utils.moveArrayItem(_this.sortedColumns, colIdx, idx);
16502
+ idx++;
16503
+ }
16504
+ }
16505
+ });
16506
+ this.fixupSortingIndices();
16507
+ };
16478
16508
  Query.prototype.createColumn = function (justsorted) {
16479
16509
  if (justsorted === void 0) { justsorted = false; }
16480
16510
  return new QueryColumn(this, justsorted);
@@ -16691,6 +16721,7 @@ var Query = /** @class */ (function () {
16691
16721
  Query.prototype.moveColumn = function (index1, index2) {
16692
16722
  var columns = this.getColumns();
16693
16723
  public_api.utils.moveArrayItem(columns, index1, index2);
16724
+ this.adjustColumnsSorting();
16694
16725
  };
16695
16726
  /**
16696
16727
  * Removes the column.
@@ -17115,7 +17146,7 @@ var BrowserQueryStorage = /** @class */ (function () {
17115
17146
  BrowserQueryStorage.prototype.newQuery = function (options) {
17116
17147
  var _this = this;
17117
17148
  return new Promise(function (resolve, reject) {
17118
- var query = new Query(_this.context.getModel());
17149
+ var query = new Query(_this.context.getModel(), null, { context: _this.context });
17119
17150
  query.reset();
17120
17151
  query.setDefaultName();
17121
17152
  if (options) {
@@ -17570,7 +17601,7 @@ var EqServiceProvider = /** @class */ (function () {
17570
17601
  this.httpClient.defaultHeaders['x-eqjs-version'] = '7.2.0';
17571
17602
  this.modelResolver = function (_) { return new DataModel(); };
17572
17603
  this.modelStorageResolver = null;
17573
- this.queryResolver = function (context) { return new Query(context.getModel()); };
17604
+ this.queryResolver = function (context) { return new Query(context.getModel(), null, { context: context }); };
17574
17605
  this.modelLoaderResolver = function (context) { return new EqServerModelLoader(context); };
17575
17606
  this.queryStorageResolver = function (context) { return new BrowserQueryStorage(context); };
17576
17607
  this.querySynchronizerResolver = function (context) { return new EqServerQuerySynchronizer(context); };
@@ -17921,7 +17952,9 @@ var context_assign = (undefined && undefined.__assign) || function () {
17921
17952
  var EqContext = /** @class */ (function () {
17922
17953
  function EqContext() {
17923
17954
  var _this = this;
17924
- this.options = {};
17955
+ this.options = {
17956
+ syncSortOrderWithColumnsOrder: true
17957
+ };
17925
17958
  this.servicesInitialized = false;
17926
17959
  this.internalListCache = {};
17927
17960
  this.loadModelOnStart = true;
@@ -18051,8 +18084,8 @@ var EqContext = /** @class */ (function () {
18051
18084
  return Array.from(this.exporters.keys());
18052
18085
  };
18053
18086
  EqContext.prototype.addDefaultExporters = function () {
18054
- this.registerServerExporter('csv', '');
18055
- this.registerServerExporter('excel-html', '');
18087
+ this.registerServerExporter('csv', 'arraybuffer');
18088
+ this.registerServerExporter('excel-html', 'arraybuffer');
18056
18089
  };
18057
18090
  EqContext.prototype.resolveEndpoint = function (endpointKey, options) {
18058
18091
  options = options || {};
@@ -18214,8 +18247,7 @@ var EqContext = /** @class */ (function () {
18214
18247
  this.exporters.clear();
18215
18248
  for (var _i = 0, _a = options.serverExporters; _i < _a.length; _i++) {
18216
18249
  var format = _a[_i];
18217
- var responseType = format == 'csv' || format == 'excel-html' ? '' : 'arraybuffer';
18218
- this.registerServerExporter(format, responseType);
18250
+ this.registerServerExporter(format, "arraybuffer");
18219
18251
  }
18220
18252
  }
18221
18253
  var query = this.getQuery();
@@ -23939,7 +23971,7 @@ var ColumnRendererCB = /** @class */ (function () {
23939
23971
  if (data.id == 'None' || data.id == "Ascending" || data.id == "Descending") {
23940
23972
  var query = _this.bar.getQuery();
23941
23973
  _this.column.sorting = strToSortDirection(data.id);
23942
- _this.column.sortIndex = query.getColumnSortIndex(_this.column);
23974
+ _this.column._sortIndex = query.getColumnSortIndex(_this.column);
23943
23975
  _this.fireColumnChanged();
23944
23976
  }
23945
23977
  else {
@@ -24494,10 +24526,15 @@ var ColumnsBar = /** @class */ (function (_super) {
24494
24526
  _this.hideLandingSlot();
24495
24527
  },
24496
24528
  onDrop: function (container, ev) {
24497
- var query = _this.getQuery();
24498
- var columns = query.getColumns();
24499
- var index = columns.indexOf(ev.data.column);
24500
- _this.moveColumnCore(index, _this.landingIndex);
24529
+ if (_this.landingIndex >= 0) {
24530
+ var query = _this.getQuery();
24531
+ var columns = query.getColumns();
24532
+ var index = columns.indexOf(ev.data.column);
24533
+ _this.moveColumnCore(index, _this.landingIndex);
24534
+ }
24535
+ else {
24536
+ ev.item.element.removeAttribute('style');
24537
+ }
24501
24538
  }
24502
24539
  });
24503
24540
  }
@@ -25130,6 +25167,7 @@ var ColumnRendererSB = /** @class */ (function () {
25130
25167
  configurable: true
25131
25168
  });
25132
25169
  ColumnRendererSB.prototype.render = function () {
25170
+ var _this = this;
25133
25171
  this.baseAttr = this.getAttribute();
25134
25172
  var builder = (0,lib_public_api.domel)('div');
25135
25173
  builder.data('id', this.column.id);
@@ -25139,6 +25177,23 @@ var ColumnRendererSB = /** @class */ (function () {
25139
25177
  .replaceChild(builder.toDOM(), this.element);
25140
25178
  }
25141
25179
  this.element = builder.toDOM();
25180
+ if (this.bar.options.allowDragDrop) {
25181
+ lib_public_api.eqDragManager.registerDraggableItem({
25182
+ element: this.element,
25183
+ scope: "entityAttrSortSB",
25184
+ beforeDragStart: function () { return _this.element.dispatchEvent((0,lib_public_api.createBrowserEvent)('mouseleave')); },
25185
+ onDragStart: function (ev) {
25186
+ _this.element.style.display = 'none';
25187
+ ev.dropEffect = lib_public_api.DropEffect.Allow;
25188
+ },
25189
+ onDragEnd: function (ev) {
25190
+ if (!ev.data.finishedSuccessfully) {
25191
+ _this.element.removeAttribute('style');
25192
+ }
25193
+ },
25194
+ data: { column: this.column }
25195
+ });
25196
+ }
25142
25197
  builder
25143
25198
  .addClass(this.getClassesToAdd())
25144
25199
  .addClass(browser_utils/* browserUtils.getMobileCssClass */.z.getMobileCssClass())
@@ -25241,10 +25296,13 @@ var ColumnRendererSB = /** @class */ (function () {
25241
25296
  }
25242
25297
  else {
25243
25298
  _this.column.sorting = strToSortDirection(data.id);
25244
- _this.column.sortIndex = query.getColumnSortIndex(_this.column);
25299
+ _this.column._sortIndex = query.getColumnSortIndex(_this.column);
25245
25300
  _this.fireColumnChanged();
25246
25301
  }
25247
25302
  }
25303
+ else {
25304
+ _this.bar.moveColumn(_this.column, data.id);
25305
+ }
25248
25306
  },
25249
25307
  menuClosedCallback: function () {
25250
25308
  _this.keepShowingButtons = false;
@@ -25303,6 +25361,7 @@ var SortingBar = /** @class */ (function (_super) {
25303
25361
  showAddRow: true,
25304
25362
  attrElementFormat: '{entity} {attr}',
25305
25363
  titleElementFormat: null,
25364
+ allowDragDrop: true,
25306
25365
  menuOptions: {
25307
25366
  showSearchBoxAfter: 30,
25308
25367
  searchBoxAutoFocus: true,
@@ -25314,8 +25373,17 @@ var SortingBar = /** @class */ (function (_super) {
25314
25373
  _this.sortMenuList = [
25315
25374
  { id: 'None', text: public_api.i18n.getText('CmdNotSorted') },
25316
25375
  { id: 'Ascending', text: public_api.i18n.getText('CmdAscending') },
25317
- { id: 'Descending', text: public_api.i18n.getText('CmdDescending') }
25376
+ { id: 'Descending', text: public_api.i18n.getText('CmdDescending') },
25377
+ { id: '---', text: '---' },
25378
+ { id: 'MoveTop', text: public_api.i18n.getText('CmdMoveToFirst') },
25379
+ { id: 'MoveUp', text: public_api.i18n.getText('CmdMoveToPrev') },
25380
+ { id: 'MoveDown', text: public_api.i18n.getText('CmdMoveToNext') },
25381
+ { id: 'MoveBottom', text: public_api.i18n.getText('CmdMoveToLast') }
25318
25382
  ];
25383
+ _this.landingSlot = (0,lib_public_api.domel)('div')
25384
+ .addClass("".concat(utils/* eqCssPrefix */.YR, "-highlight"))
25385
+ .toDOM();
25386
+ _this.landingIndex = -1;
25319
25387
  (0,lib_public_api.domel)(_this.slot)
25320
25388
  .addClass("".concat(_this.cssPrefix, "-panel"))
25321
25389
  .addClass(browser_utils/* browserUtils.getMobileCssClass */.z.getMobileCssClass());
@@ -25333,10 +25401,37 @@ var SortingBar = /** @class */ (function (_super) {
25333
25401
  return 'sortingBar';
25334
25402
  };
25335
25403
  SortingBar.prototype.init = function (context, options) {
25404
+ var _this = this;
25336
25405
  _super.prototype.init.call(this, context, options);
25337
25406
  this.setOptions(options);
25338
25407
  this.destroyCore();
25339
25408
  this.attachQueryObserver();
25409
+ lib_public_api.eqDragManager.removeDropContainer(this.slot);
25410
+ if (this.options.allowDragDrop) {
25411
+ lib_public_api.eqDragManager.registerDropContainer({
25412
+ element: this.slot,
25413
+ scopes: ["entityAttrSortSB"],
25414
+ onDragEnter: function (container, ev) {
25415
+ _this.showLandingSlot(ev.pageX, ev.pageY);
25416
+ },
25417
+ onDragOver: function (container, ev) {
25418
+ _this.showLandingSlot(ev.pageX, ev.pageY);
25419
+ },
25420
+ onDragLeave: function (container, ev) {
25421
+ ev.dropEffect = lib_public_api.DropEffect.Forbid;
25422
+ _this.hideLandingSlot();
25423
+ },
25424
+ onDrop: function (container, ev) {
25425
+ if (_this.landingIndex >= 0) {
25426
+ var query = _this.getQuery();
25427
+ query.setColumnSortIndex(ev.data.column, _this.landingIndex);
25428
+ }
25429
+ else {
25430
+ ev.item.element.removeAttribute('style');
25431
+ }
25432
+ }
25433
+ });
25434
+ }
25340
25435
  };
25341
25436
  SortingBar.prototype.setOptions = function (options) {
25342
25437
  public_api.utils.assignDeep(this.options, options);
@@ -25515,6 +25610,81 @@ var SortingBar = /** @class */ (function (_super) {
25515
25610
  SortingBar.prototype.clear = function () {
25516
25611
  this.slot.innerHTML = '';
25517
25612
  };
25613
+ SortingBar.prototype.moveColumn = function (column, direction) {
25614
+ var query = this.getQuery();
25615
+ var columns = query.getSortedColumns();
25616
+ var index = query.getColumnSortIndex(column);
25617
+ if (index >= 0) {
25618
+ switch (direction) {
25619
+ case 'MoveTop':
25620
+ query.setColumnSortIndex(column, 0);
25621
+ break;
25622
+ case 'MoveUp':
25623
+ query.setColumnSortIndex(column, index > 0 ? index - 1 : 0);
25624
+ break;
25625
+ case 'MoveDown':
25626
+ query.setColumnSortIndex(column, index < columns.length - 1 ? index + 1 : columns.length - 1);
25627
+ break;
25628
+ case 'MoveBottom':
25629
+ query.setColumnSortIndex(column, columns.length - 1);
25630
+ break;
25631
+ }
25632
+ ;
25633
+ }
25634
+ };
25635
+ SortingBar.prototype.showLandingSlot = function (pageX, pageY) {
25636
+ var elements = this.columnsBlock.querySelectorAll("[class*=".concat(this.cssPrefix, "-row]"));
25637
+ var columnSlots = [];
25638
+ for (var i = 0; i < elements.length; i++) {
25639
+ if (elements[i].style.display !== 'none') {
25640
+ columnSlots.push(elements[i]);
25641
+ }
25642
+ }
25643
+ if (columnSlots.length === 0) {
25644
+ this.landingIndex = 0;
25645
+ return;
25646
+ }
25647
+ var landingPos = (0,lib_public_api.getElementAbsolutePos)(this.landingSlot);
25648
+ if (pageX >= landingPos.x && pageX <= landingPos.x + this.landingSlot.offsetWidth
25649
+ && pageY >= landingPos.y && pageY <= landingPos.y + this.landingSlot.offsetHeight) {
25650
+ return;
25651
+ }
25652
+ var newLandingIndex = this.landingIndex;
25653
+ for (var i = 0; i < columnSlots.length; i++) {
25654
+ var colSlot = columnSlots[i];
25655
+ var absPos = (0,lib_public_api.getElementAbsolutePos)(colSlot);
25656
+ var colWidth = colSlot.offsetWidth;
25657
+ var colHeight = colSlot.offsetHeight;
25658
+ var paddingWidth = 0.2 * colWidth;
25659
+ var paddingHeight = 2;
25660
+ if (pageX >= absPos.x + paddingWidth && pageX <= absPos.x + colWidth - paddingWidth
25661
+ && pageY >= absPos.y + paddingHeight && pageY <= absPos.y + colHeight - paddingHeight) {
25662
+ if (pageX > landingPos.x)
25663
+ newLandingIndex = i + 1;
25664
+ else
25665
+ newLandingIndex = i;
25666
+ break;
25667
+ }
25668
+ }
25669
+ if (newLandingIndex != this.landingIndex || this.landingSlot.parentElement) {
25670
+ this.landingIndex = newLandingIndex;
25671
+ if (this.landingIndex <= 0) {
25672
+ this.columnsBlock.insertBefore(this.landingSlot, columnSlots[0]);
25673
+ }
25674
+ if (this.landingIndex < columnSlots.length) {
25675
+ this.columnsBlock.insertBefore(this.landingSlot, columnSlots[this.landingIndex]);
25676
+ }
25677
+ else {
25678
+ this.columnsBlock.appendChild(this.landingSlot);
25679
+ }
25680
+ }
25681
+ };
25682
+ SortingBar.prototype.hideLandingSlot = function () {
25683
+ this.landingIndex = -1;
25684
+ if (this.landingSlot.parentElement) {
25685
+ this.landingSlot.parentElement.removeChild(this.landingSlot);
25686
+ }
25687
+ };
25518
25688
  return SortingBar;
25519
25689
  }(Widget));
25520
25690
 
@@ -29414,7 +29584,8 @@ var ManageDrillDownWidget = /** @class */ (function (_super) {
29414
29584
  }
29415
29585
  }, null);
29416
29586
  this.ddQuery = new Query(model, null, {
29417
- parent: query
29587
+ parent: query,
29588
+ context: this.context
29418
29589
  });
29419
29590
  var dds = this.context.getQuery().getDrillDowns();
29420
29591
  if (dds.length) {
@@ -35862,14 +36033,14 @@ var query_ex_extends = (undefined && undefined.__extends) || (function () {
35862
36033
 
35863
36034
  var QueryEx = /** @class */ (function (_super) {
35864
36035
  query_ex_extends(QueryEx, _super);
35865
- function QueryEx(model) {
35866
- return _super.call(this, model) || this;
36036
+ function QueryEx(model, options) {
36037
+ return _super.call(this, model, null, options) || this;
35867
36038
  }
35868
36039
  QueryEx.prototype.isEx = function () {
35869
36040
  return lcv.__kt > 1;
35870
36041
  };
35871
36042
  QueryEx.prototype.createSubQuery = function () {
35872
- return new QueryEx(this.model);
36043
+ return new QueryEx(this.model, { context: this.context });
35873
36044
  };
35874
36045
  QueryEx.prototype.createCondition = function (tag) {
35875
36046
  if (tag === void 0) { tag = CondTag.Simple; }
@@ -36676,7 +36847,7 @@ EqContext.prototype.useEnterprise = function (keyOrInitCallback) {
36676
36847
  if (lcv.__kt > 1) {
36677
36848
  var services = _this.getServices();
36678
36849
  services.registerDataModelResolver(function (context) { return new DataModelEx(); });
36679
- services.registerQueryResolver(function (context) { return new QueryEx(context.getModel()); });
36850
+ services.registerQueryResolver(function (context) { return new QueryEx(context.getModel(), { context: context }); });
36680
36851
  services.registerQueryStorageResolver(function (context) { return new EqServerQueryStorage(context); });
36681
36852
  services.registerAggregatesCalculator(function (context) { return new DataTableAggregatesCalculator(context); });
36682
36853
  if (lcv.__kt === 2) {