@easyquery/ui 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 Community 7.2.0-rc04 (https://korzh.com/easyquery/javascript)
2
+ * EasyQuery.JS Community 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
@@ -294,6 +294,7 @@ var meta_entity_MetaEntityAttr = /** @class */ (function () {
294
294
  this.lookupEntity = dto.lent;
295
295
  this.dataAttr = dto.dattr;
296
296
  this.lookupDataAttr = dto.ldattr;
297
+ this.defaultValue = dto.defVal;
297
298
  this.isNullable = utils["a" /* utils */].getIfDefined(dto.nul, this.isNullable);
298
299
  this.isEditable = utils["a" /* utils */].getIfDefined(dto.ied, this.isEditable);
299
300
  this.showOnView = utils["a" /* utils */].getIfDefined(dto.ivis || dto.sov, this.showOnView);
@@ -9619,8 +9620,6 @@ var Query = /** @class */ (function () {
9619
9620
  }
9620
9621
  this.setDefaultName();
9621
9622
  this.description = "";
9622
- this.modelId = "";
9623
- this.modelName = "";
9624
9623
  this.model = (model) ? model : new _dm_data_model__WEBPACK_IMPORTED_MODULE_2__[/* DataModel */ "a"]();
9625
9624
  if (data) {
9626
9625
  this.loadFromData(data);
@@ -9634,10 +9633,14 @@ var Query = /** @class */ (function () {
9634
9633
  this.parentQuery = options.parent;
9635
9634
  }
9636
9635
  this.addChangedCallback(function (ev) {
9637
- if (ev.data && ev.data.part === _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangePart */ "b"].Columns
9638
- && ev.data.action !== _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangeAction */ "a"].Modify
9636
+ if (ev.data
9637
+ && ((ev.data.part & _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangePart */ "b"].Columns) > 0)
9639
9638
  && !ev.data.aggregation) {
9640
- _this.aggrSettings.clear();
9639
+ if (_this._enableAggregation && _this.updateAggregationSettings()) {
9640
+ _this.fireChangedEvent({
9641
+ part: _query_events__WEBPACK_IMPORTED_MODULE_10__[/* QueryChangePart */ "b"].Aggregation
9642
+ });
9643
+ }
9641
9644
  }
9642
9645
  });
9643
9646
  }
@@ -9658,19 +9661,6 @@ var Query = /** @class */ (function () {
9658
9661
  this.processQueryForAggregation();
9659
9662
  var aggrCols = this.columns.filter(function (c) { return c.enabled
9660
9663
  && c.expr.tag == _types_expr_tag__WEBPACK_IMPORTED_MODULE_8__[/* ExprTag */ "a"].AggregateFunction; });
9661
- // // query contains aggregate columns
9662
- // if (aggrCols.length) {
9663
- // for (const col of aggrCols) {
9664
- // const attr = this.model.getAttributeById(col.expr.args[0].value);
9665
- // this.changeColumnType(col, ExprTag.EntityAttribute, {
9666
- // caption: this.model.getAttributeText(attr, `{attr}`)
9667
- // });
9668
- // }
9669
- // this.fireChangedEvent({
9670
- // part: QueryChangePart.Columns,
9671
- // wasModified: true
9672
- // });
9673
- // }
9674
9664
  }
9675
9665
  if (!this._enableAggregation) {
9676
9666
  this.aggrSettings.clear();
@@ -9679,6 +9669,40 @@ var Query = /** @class */ (function () {
9679
9669
  enumerable: true,
9680
9670
  configurable: true
9681
9671
  });
9672
+ Query.prototype.updateAggregationSettings = function () {
9673
+ var hasChanged = false;
9674
+ var aggrSettings = this.getAggregationSettings();
9675
+ for (var i = aggrSettings.groups.length - 1; i >= 0; i--) {
9676
+ var group = aggrSettings.groups[i];
9677
+ var _loop_1 = function (j) {
9678
+ var colId = group.columns[j];
9679
+ if (!this_1.columns.find(function (col) { return col.id === colId; })) {
9680
+ group.columns.splice(j, 1);
9681
+ hasChanged = true;
9682
+ }
9683
+ };
9684
+ var this_1 = this;
9685
+ for (var j = group.columns.length - 1; j >= 0; j--) {
9686
+ _loop_1(j);
9687
+ }
9688
+ if (group.columns.length == 0) {
9689
+ aggrSettings.groups.slice(i, 1);
9690
+ }
9691
+ }
9692
+ var aggregates = aggrSettings.getAggregates();
9693
+ var _loop_2 = function (i) {
9694
+ var aggr = aggregates[i];
9695
+ if (!this_2.columns.find(function (col) { return col.id === aggr.colId; })) {
9696
+ aggregates.splice(i, 1);
9697
+ hasChanged = true;
9698
+ }
9699
+ };
9700
+ var this_2 = this;
9701
+ for (var i = aggregates.length - 1; i >= 0; i--) {
9702
+ _loop_2(i);
9703
+ }
9704
+ return hasChanged;
9705
+ };
9682
9706
  Query.prototype.createSubQuery = function () {
9683
9707
  return new Query(this.model);
9684
9708
  };
@@ -15341,21 +15365,6 @@ var EasyGridWidget = /** @class */ (function (_super) {
15341
15365
  this.grid.refresh();
15342
15366
  };
15343
15367
  EasyGridWidget.prototype.attachQueryObserver = function () {
15344
- var _this = this;
15345
- var query = this.getQuery();
15346
- this.queryEventCallbackId = query.addChangedCallback(function (event) {
15347
- //if something has changed, and that change is related to columns
15348
- var edata = event.data;
15349
- if (!edata || (edata.part != _easyquery_core__WEBPACK_IMPORTED_MODULE_0__["QueryChangePart"].Columns && edata.part != _easyquery_core__WEBPACK_IMPORTED_MODULE_0__["QueryChangePart"].All)) {
15350
- return;
15351
- }
15352
- if (event.data.source == _this) {
15353
- _this.grid.refresh();
15354
- }
15355
- else {
15356
- _this.refresh();
15357
- }
15358
- });
15359
15368
  };
15360
15369
  EasyGridWidget.prototype.destroyCore = function () {
15361
15370
  this.detachQueryObserver();
@@ -25652,6 +25661,12 @@ var AggrFunc;
25652
25661
  AggrFunc["Max"] = "MAX";
25653
25662
  AggrFunc["Count"] = "COUNT";
25654
25663
  })(AggrFunc || (AggrFunc = {}));
25664
+ var FormFieldType;
25665
+ (function (FormFieldType) {
25666
+ FormFieldType[FormFieldType["ColumnField"] = 0] = "ColumnField";
25667
+ FormFieldType[FormFieldType["RowField"] = 1] = "RowField";
25668
+ FormFieldType[FormFieldType["CellData"] = 2] = "CellData";
25669
+ })(FormFieldType || (FormFieldType = {}));
25655
25670
  var DFMT_REGEX = /{0:(.*?)}/g;
25656
25671
  var PivotTableFacet = /** @class */ (function (_super) {
25657
25672
  __extends(PivotTableFacet, _super);
@@ -25740,9 +25755,10 @@ var PivotTableFacet = /** @class */ (function (_super) {
25740
25755
  }
25741
25756
  return csb;
25742
25757
  };
25743
- PivotTableFacet.prototype.createColumnsSelectBuilder = function (allowedTypes, colName) {
25758
+ PivotTableFacet.prototype.createColumnsSelectBuilder = function (allowedTypes, colName, formFieldType) {
25744
25759
  var dataTable = this.getContextDataTable();
25745
25760
  var csb = Object(_easydata_ui__WEBPACK_IMPORTED_MODULE_0__["domel"])('select');
25761
+ var firstNumericColIndex = null;
25746
25762
  var _loop_2 = function (i) {
25747
25763
  var column = dataTable.columns.get(i);
25748
25764
  var colLabel = column.label;
@@ -25750,6 +25766,9 @@ var PivotTableFacet = /** @class */ (function (_super) {
25750
25766
  var colId = column.id;
25751
25767
  if (allowedTypes && allowedTypes.indexOf(colType) < 0)
25752
25768
  return "continue";
25769
+ if (firstNumericColIndex === null && _easydata_core__WEBPACK_IMPORTED_MODULE_1__["utils"].isNumericType(colType)) {
25770
+ firstNumericColIndex = i;
25771
+ }
25753
25772
  csb.addChild('option', function (b) {
25754
25773
  b
25755
25774
  .attr('value', colId)
@@ -25771,7 +25790,20 @@ var PivotTableFacet = /** @class */ (function (_super) {
25771
25790
  }
25772
25791
  }
25773
25792
  else {
25774
- csb.toDOM().value = options[0].value;
25793
+ switch (formFieldType) {
25794
+ case FormFieldType.ColumnField: {
25795
+ csb.toDOM().value = options[0].value;
25796
+ break;
25797
+ }
25798
+ case FormFieldType.RowField: {
25799
+ csb.toDOM().value = options.length > 1 ? options[1].value : options[0].value;
25800
+ break;
25801
+ }
25802
+ case FormFieldType.CellData: {
25803
+ csb.toDOM().value = firstNumericColIndex === null ? options[0].value : options[firstNumericColIndex].value;
25804
+ break;
25805
+ }
25806
+ }
25775
25807
  }
25776
25808
  }
25777
25809
  return csb;
@@ -25816,7 +25848,7 @@ var PivotTableFacet = /** @class */ (function (_super) {
25816
25848
  .addChild('div', function (b) { return b
25817
25849
  .addClass('kfrm-select')
25818
25850
  .attr('name', 'column_field')
25819
- .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.colName)
25851
+ .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.colName, FormFieldType.ColumnField)
25820
25852
  .id('pivotTableColFieldSelector')
25821
25853
  .toDOM()); })
25822
25854
  .addChild('button', function (b) { return b
@@ -25838,7 +25870,7 @@ var PivotTableFacet = /** @class */ (function (_super) {
25838
25870
  .addChild('div', function (b) { return b
25839
25871
  .addClass('kfrm-select')
25840
25872
  .attr('name', 'row_field')
25841
- .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.rowName)
25873
+ .addChildElement(_this.createColumnsSelectBuilder(colTypes, settings.rowName, FormFieldType.RowField)
25842
25874
  .id('pivotTableRowFieldSelector')
25843
25875
  .toDOM()); });
25844
25876
  current = getCurrent();
@@ -25858,7 +25890,7 @@ var PivotTableFacet = /** @class */ (function (_super) {
25858
25890
  .addChild('div', function (b) { return b
25859
25891
  .addClass('kfrm-select')
25860
25892
  .attr('name', 'data_column')
25861
- .addChildElement(_this.createColumnsSelectBuilder(fieldTypes, settings.fieldName)
25893
+ .addChildElement(_this.createColumnsSelectBuilder(fieldTypes, settings.fieldName, FormFieldType.CellData)
25862
25894
  .on('change', function (ev) {
25863
25895
  var colId = ev.target.value;
25864
25896
  _this.validateSelectedField(colId);
@@ -26625,7 +26657,7 @@ var AggrSettingsDialog = /** @class */ (function () {
26625
26657
  var ds = _this.context.getServices().getDialogService();
26626
26658
  _this.body = _this.renderBody();
26627
26659
  var dlg = ds.open({
26628
- title: 'Aggregation settings',
26660
+ title: _easyquery_core__WEBPACK_IMPORTED_MODULE_1__["i18n"].getText('AggrSettings', 'AggrDialogTitle'),
26629
26661
  body: _this.body,
26630
26662
  onSubmit: function () {
26631
26663
  if (_this.query.enableAggregation && !_this.renderer.isValid())
@@ -35705,6 +35737,7 @@ function addEasyQueryUITexts() {
35705
35737
  UnaggrBtn: 'Remove column aggregation',
35706
35738
  GrandTotalsLabel: 'Show grand totals',
35707
35739
  GroupCountsLabel: 'Show record count for groups',
35740
+ AggrDialogTitle: 'Aggregation/grouping',
35708
35741
  EnableAggrLabel: 'Enable aggregation',
35709
35742
  SelectedError: 'Complete the action with selected column(s)',
35710
35743
  NoGroupsOrAggrError: 'Add at least one group or aggregation',