@easyquery/enterprise 7.2.0-rc04 → 7.2.0-rc05

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.0-rc04 (https://korzh.com/easyquery/javascript)
2
+ * EasyQuery.JS Enterprise 7.2.0-rc05 (https://korzh.com/easyquery/javascript)
3
3
  * Copyright 2022 Korzh.com. All rights reserved.
4
4
  *
5
5
  * EasyQuery.JS commercial licenses may be obtained at
@@ -295,6 +295,7 @@ var meta_entity_MetaEntityAttr = /** @class */ (function () {
295
295
  this.lookupEntity = dto.lent;
296
296
  this.dataAttr = dto.dattr;
297
297
  this.lookupDataAttr = dto.ldattr;
298
+ this.defaultValue = dto.defVal;
298
299
  this.isNullable = utils["a" /* utils */].getIfDefined(dto.nul, this.isNullable);
299
300
  this.isEditable = utils["a" /* utils */].getIfDefined(dto.ied, this.isEditable);
300
301
  this.showOnView = utils["a" /* utils */].getIfDefined(dto.ivis || dto.sov, this.showOnView);
@@ -9620,8 +9621,6 @@ var Query = /** @class */ (function () {
9620
9621
  }
9621
9622
  this.setDefaultName();
9622
9623
  this.description = "";
9623
- this.modelId = "";
9624
- this.modelName = "";
9625
9624
  this.model = (model) ? model : new _dm_data_model__WEBPACK_IMPORTED_MODULE_2__[/* DataModel */ "a"]();
9626
9625
  if (data) {
9627
9626
  this.loadFromData(data);
@@ -9635,10 +9634,14 @@ var Query = /** @class */ (function () {
9635
9634
  this.parentQuery = options.parent;
9636
9635
  }
9637
9636
  this.addChangedCallback(function (ev) {
9638
- if (ev.data && ev.data.part === _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangePart */ "b"].Columns
9639
- && ev.data.action !== _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangeAction */ "a"].Modify
9637
+ if (ev.data
9638
+ && ((ev.data.part & _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangePart */ "b"].Columns) > 0)
9640
9639
  && !ev.data.aggregation) {
9641
- _this.aggrSettings.clear();
9640
+ if (_this._enableAggregation && _this.updateAggregationSettings()) {
9641
+ _this.fireChangedEvent({
9642
+ part: _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangePart */ "b"].Aggregation
9643
+ });
9644
+ }
9642
9645
  }
9643
9646
  });
9644
9647
  }
@@ -9659,19 +9662,6 @@ var Query = /** @class */ (function () {
9659
9662
  this.processQueryForAggregation();
9660
9663
  var aggrCols = this.columns.filter(function (c) { return c.enabled
9661
9664
  && c.expr.tag == _types_expr_tag__WEBPACK_IMPORTED_MODULE_8__[/* ExprTag */ "a"].AggregateFunction; });
9662
- // // query contains aggregate columns
9663
- // if (aggrCols.length) {
9664
- // for (const col of aggrCols) {
9665
- // const attr = this.model.getAttributeById(col.expr.args[0].value);
9666
- // this.changeColumnType(col, ExprTag.EntityAttribute, {
9667
- // caption: this.model.getAttributeText(attr, `{attr}`)
9668
- // });
9669
- // }
9670
- // this.fireChangedEvent({
9671
- // part: QueryChangePart.Columns,
9672
- // wasModified: true
9673
- // });
9674
- // }
9675
9665
  }
9676
9666
  if (!this._enableAggregation) {
9677
9667
  this.aggrSettings.clear();
@@ -9680,6 +9670,40 @@ var Query = /** @class */ (function () {
9680
9670
  enumerable: true,
9681
9671
  configurable: true
9682
9672
  });
9673
+ Query.prototype.updateAggregationSettings = function () {
9674
+ var hasChanged = false;
9675
+ var aggrSettings = this.getAggregationSettings();
9676
+ for (var i = aggrSettings.groups.length - 1; i >= 0; i--) {
9677
+ var group = aggrSettings.groups[i];
9678
+ var _loop_1 = function (j) {
9679
+ var colId = group.columns[j];
9680
+ if (!this_1.columns.find(function (col) { return col.id === colId; })) {
9681
+ group.columns.splice(j, 1);
9682
+ hasChanged = true;
9683
+ }
9684
+ };
9685
+ var this_1 = this;
9686
+ for (var j = group.columns.length - 1; j >= 0; j--) {
9687
+ _loop_1(j);
9688
+ }
9689
+ if (group.columns.length == 0) {
9690
+ aggrSettings.groups.slice(i, 1);
9691
+ }
9692
+ }
9693
+ var aggregates = aggrSettings.getAggregates();
9694
+ var _loop_2 = function (i) {
9695
+ var aggr = aggregates[i];
9696
+ if (!this_2.columns.find(function (col) { return col.id === aggr.colId; })) {
9697
+ aggregates.splice(i, 1);
9698
+ hasChanged = true;
9699
+ }
9700
+ };
9701
+ var this_2 = this;
9702
+ for (var i = aggregates.length - 1; i >= 0; i--) {
9703
+ _loop_2(i);
9704
+ }
9705
+ return hasChanged;
9706
+ };
9683
9707
  Query.prototype.createSubQuery = function () {
9684
9708
  return new Query(this.model);
9685
9709
  };
@@ -15342,21 +15366,6 @@ var EasyGridWidget = /** @class */ (function (_super) {
15342
15366
  this.grid.refresh();
15343
15367
  };
15344
15368
  EasyGridWidget.prototype.attachQueryObserver = function () {
15345
- var _this = this;
15346
- var query = this.getQuery();
15347
- this.queryEventCallbackId = query.addChangedCallback(function (event) {
15348
- //if something has changed, and that change is related to columns
15349
- var edata = event.data;
15350
- if (!edata || (edata.part != _easyquery_core__WEBPACK_IMPORTED_MODULE_0__["QueryChangePart"].Columns && edata.part != _easyquery_core__WEBPACK_IMPORTED_MODULE_0__["QueryChangePart"].All)) {
15351
- return;
15352
- }
15353
- if (event.data.source == _this) {
15354
- _this.grid.refresh();
15355
- }
15356
- else {
15357
- _this.refresh();
15358
- }
15359
- });
15360
15369
  };
15361
15370
  EasyGridWidget.prototype.destroyCore = function () {
15362
15371
  this.detachQueryObserver();
@@ -25869,6 +25878,12 @@ var AggrFunc;
25869
25878
  AggrFunc["Max"] = "MAX";
25870
25879
  AggrFunc["Count"] = "COUNT";
25871
25880
  })(AggrFunc || (AggrFunc = {}));
25881
+ var FormFieldType;
25882
+ (function (FormFieldType) {
25883
+ FormFieldType[FormFieldType["ColumnField"] = 0] = "ColumnField";
25884
+ FormFieldType[FormFieldType["RowField"] = 1] = "RowField";
25885
+ FormFieldType[FormFieldType["CellData"] = 2] = "CellData";
25886
+ })(FormFieldType || (FormFieldType = {}));
25872
25887
  var DFMT_REGEX = /{0:(.*?)}/g;
25873
25888
  var PivotTableFacet = /** @class */ (function (_super) {
25874
25889
  __extends(PivotTableFacet, _super);
@@ -25957,9 +25972,10 @@ var PivotTableFacet = /** @class */ (function (_super) {
25957
25972
  }
25958
25973
  return csb;
25959
25974
  };
25960
- PivotTableFacet.prototype.createColumnsSelectBuilder = function (allowedTypes, colName) {
25975
+ PivotTableFacet.prototype.createColumnsSelectBuilder = function (allowedTypes, colName, formFieldType) {
25961
25976
  var dataTable = this.getContextDataTable();
25962
25977
  var csb = Object(_easydata_ui__WEBPACK_IMPORTED_MODULE_0__["domel"])('select');
25978
+ var firstNumericColIndex = null;
25963
25979
  var _loop_2 = function (i) {
25964
25980
  var column = dataTable.columns.get(i);
25965
25981
  var colLabel = column.label;
@@ -25967,6 +25983,9 @@ var PivotTableFacet = /** @class */ (function (_super) {
25967
25983
  var colId = column.id;
25968
25984
  if (allowedTypes && allowedTypes.indexOf(colType) < 0)
25969
25985
  return "continue";
25986
+ if (firstNumericColIndex === null && _easydata_core__WEBPACK_IMPORTED_MODULE_1__["utils"].isNumericType(colType)) {
25987
+ firstNumericColIndex = i;
25988
+ }
25970
25989
  csb.addChild('option', function (b) {
25971
25990
  b
25972
25991
  .attr('value', colId)
@@ -25988,7 +26007,20 @@ var PivotTableFacet = /** @class */ (function (_super) {
25988
26007
  }
25989
26008
  }
25990
26009
  else {
25991
- csb.toDOM().value = options[0].value;
26010
+ switch (formFieldType) {
26011
+ case FormFieldType.ColumnField: {
26012
+ csb.toDOM().value = options[0].value;
26013
+ break;
26014
+ }
26015
+ case FormFieldType.RowField: {
26016
+ csb.toDOM().value = options.length > 1 ? options[1].value : options[0].value;
26017
+ break;
26018
+ }
26019
+ case FormFieldType.CellData: {
26020
+ csb.toDOM().value = firstNumericColIndex === null ? options[0].value : options[firstNumericColIndex].value;
26021
+ break;
26022
+ }
26023
+ }
25992
26024
  }
25993
26025
  }
25994
26026
  return csb;
@@ -26033,7 +26065,7 @@ var PivotTableFacet = /** @class */ (function (_super) {
26033
26065
  .addChild('div', function (b) { return b
26034
26066
  .addClass('kfrm-select')
26035
26067
  .attr('name', 'column_field')
26036
- .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.colName)
26068
+ .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.colName, FormFieldType.ColumnField)
26037
26069
  .id('pivotTableColFieldSelector')
26038
26070
  .toDOM()); })
26039
26071
  .addChild('button', function (b) { return b
@@ -26055,7 +26087,7 @@ var PivotTableFacet = /** @class */ (function (_super) {
26055
26087
  .addChild('div', function (b) { return b
26056
26088
  .addClass('kfrm-select')
26057
26089
  .attr('name', 'row_field')
26058
- .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.rowName)
26090
+ .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.rowName, FormFieldType.RowField)
26059
26091
  .id('pivotTableRowFieldSelector')
26060
26092
  .toDOM()); });
26061
26093
  current = getCurrent();
@@ -26075,7 +26107,7 @@ var PivotTableFacet = /** @class */ (function (_super) {
26075
26107
  .addChild('div', function (b) { return b
26076
26108
  .addClass('kfrm-select')
26077
26109
  .attr('name', 'data_column')
26078
- .addChildElement(_this.createColumnsSelectBuilder(fieldTypes, settings.fieldName)
26110
+ .addChildElement(_this.createColumnsSelectBuilder(fieldTypes, settings.fieldName, FormFieldType.CellData)
26079
26111
  .on('change', function (ev) {
26080
26112
  var colId = ev.target.value;
26081
26113
  _this.validateSelectedField(colId);
@@ -26842,7 +26874,7 @@ var AggrSettingsDialog = /** @class */ (function () {
26842
26874
  var ds = _this.context.getServices().getDialogService();
26843
26875
  _this.body = _this.renderBody();
26844
26876
  var dlg = ds.open({
26845
- title: 'Aggregation settings',
26877
+ title: _easyquery_core__WEBPACK_IMPORTED_MODULE_1__["i18n"].getText('AggrSettings', 'AggrDialogTitle'),
26846
26878
  body: _this.body,
26847
26879
  onSubmit: function () {
26848
26880
  if (_this.query.enableAggregation && !_this.renderer.isValid())
@@ -37296,6 +37328,7 @@ function addEasyQueryUITexts() {
37296
37328
  UnaggrBtn: 'Remove column aggregation',
37297
37329
  GrandTotalsLabel: 'Show grand totals',
37298
37330
  GroupCountsLabel: 'Show record count for groups',
37331
+ AggrDialogTitle: 'Aggregation/grouping',
37299
37332
  EnableAggrLabel: 'Enable aggregation',
37300
37333
  SelectedError: 'Complete the action with selected column(s)',
37301
37334
  NoGroupsOrAggrError: 'Add at least one group or aggregation',