@eclipse-scout/chart 25.2.16 → 26.1.0-beta.1

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.
Files changed (44) hide show
  1. package/README.md +2 -2
  2. package/dist/cyclonedx/bom.json +9 -9
  3. package/dist/cyclonedx/bom.xml +9 -9
  4. package/dist/d.ts/src/chart/AbstractSvgChartRenderer.d.ts +0 -1
  5. package/dist/d.ts/src/chart/AbstractSvgChartRenderer.d.ts.map +1 -1
  6. package/dist/d.ts/src/chart/ChartJsRenderer.d.ts +1 -1
  7. package/dist/d.ts/src/chart/ChartJsRenderer.d.ts.map +1 -1
  8. package/dist/d.ts/src/chart/VennChartRenderer.d.ts +0 -1
  9. package/dist/d.ts/src/chart/VennChartRenderer.d.ts.map +1 -1
  10. package/dist/d.ts/src/chart/chartJsDateAdapter.d.ts.map +1 -1
  11. package/dist/d.ts/src/index.d.ts +1 -0
  12. package/dist/d.ts/src/index.d.ts.map +1 -1
  13. package/dist/d.ts/src/table/controls/ChartTableControl.d.ts +15 -7
  14. package/dist/d.ts/src/table/controls/ChartTableControl.d.ts.map +1 -1
  15. package/dist/d.ts/src/table/controls/FocusFirstChartTypeKeyStroke.d.ts +12 -0
  16. package/dist/d.ts/src/table/controls/FocusFirstChartTypeKeyStroke.d.ts.map +1 -0
  17. package/dist/eclipse-scout-chart-a0ba2d4527b56d5f365b.min.js +3 -0
  18. package/dist/eclipse-scout-chart-a0ba2d4527b56d5f365b.min.js.map +1 -0
  19. package/dist/{eclipse-scout-chart-theme-dark-378a537154001198a741.min.css → eclipse-scout-chart-theme-dark-b66633525a81fd799cce.min.css} +1 -1
  20. package/dist/eclipse-scout-chart-theme-dark.css +20 -24
  21. package/dist/eclipse-scout-chart-theme-dark.css.map +1 -1
  22. package/dist/{eclipse-scout-chart-theme-03e8dfdce2c2cd602f40.min.css → eclipse-scout-chart-theme-f814f69e9d7fea0e5af7.min.css} +1 -1
  23. package/dist/eclipse-scout-chart-theme.css +20 -24
  24. package/dist/eclipse-scout-chart-theme.css.map +1 -1
  25. package/dist/eclipse-scout-chart.esm-93dfff2828c44625222f.min.js +3 -0
  26. package/dist/eclipse-scout-chart.esm-93dfff2828c44625222f.min.js.map +1 -0
  27. package/dist/eclipse-scout-chart.esm.js +341 -210
  28. package/dist/eclipse-scout-chart.esm.js.map +1 -1
  29. package/dist/eclipse-scout-chart.js +311 -180
  30. package/dist/eclipse-scout-chart.js.map +1 -1
  31. package/dist/file-list +6 -6
  32. package/dist/texts.json +28 -12
  33. package/package.json +11 -11
  34. package/src/chart/ChartJsRenderer.ts +13 -3
  35. package/src/chart/SalesfunnelChartRenderer.ts +7 -7
  36. package/src/chart/chartJsDateAdapter.ts +2 -2
  37. package/src/index.ts +1 -0
  38. package/src/table/controls/ChartTableControl.less +15 -28
  39. package/src/table/controls/ChartTableControl.ts +114 -57
  40. package/src/table/controls/FocusFirstChartTypeKeyStroke.ts +37 -0
  41. package/dist/eclipse-scout-chart-56b0db398b6cbb5db250.min.js +0 -3
  42. package/dist/eclipse-scout-chart-56b0db398b6cbb5db250.min.js.map +0 -1
  43. package/dist/eclipse-scout-chart.esm-d3fe89eef3a7e7a32596.min.js +0 -3
  44. package/dist/eclipse-scout-chart.esm-d3fe89eef3a7e7a32596.min.js.map +0 -1
@@ -2,11 +2,11 @@
2
2
  /******/ "use strict";
3
3
  /******/ var __webpack_modules__ = ({
4
4
 
5
- /***/ "./src/bookmark/ChartTableControlConfigHelperImpl.ts":
5
+ /***/ "./src/bookmark/ChartTableControlConfigHelperImpl.ts"
6
6
  /*!***********************************************************!*\
7
7
  !*** ./src/bookmark/ChartTableControlConfigHelperImpl.ts ***!
8
8
  \***********************************************************/
9
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10
10
 
11
11
  __webpack_require__.r(__webpack_exports__);
12
12
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -69,13 +69,13 @@ class ChartTableControlConfigHelperImpl extends _eclipse_scout_core__WEBPACK_IMP
69
69
  }
70
70
  }
71
71
 
72
- /***/ }),
72
+ /***/ },
73
73
 
74
- /***/ "./src/chart/AbstractChartRenderer.ts":
74
+ /***/ "./src/chart/AbstractChartRenderer.ts"
75
75
  /*!********************************************!*\
76
76
  !*** ./src/chart/AbstractChartRenderer.ts ***!
77
77
  \********************************************/
78
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
78
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
79
79
 
80
80
  __webpack_require__.r(__webpack_exports__);
81
81
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -265,13 +265,13 @@ class AbstractChartRenderer extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE
265
265
  }
266
266
  }
267
267
 
268
- /***/ }),
268
+ /***/ },
269
269
 
270
- /***/ "./src/chart/AbstractSvgChartRenderer.ts":
270
+ /***/ "./src/chart/AbstractSvgChartRenderer.ts"
271
271
  /*!***********************************************!*\
272
272
  !*** ./src/chart/AbstractSvgChartRenderer.ts ***!
273
273
  \***********************************************/
274
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
274
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
275
275
 
276
276
  __webpack_require__.r(__webpack_exports__);
277
277
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -674,13 +674,13 @@ class AbstractSvgChartRenderer extends _index__WEBPACK_IMPORTED_MODULE_2__.Abstr
674
674
  }
675
675
  }
676
676
 
677
- /***/ }),
677
+ /***/ },
678
678
 
679
- /***/ "./src/chart/Chart.ts":
679
+ /***/ "./src/chart/Chart.ts"
680
680
  /*!****************************!*\
681
681
  !*** ./src/chart/Chart.ts ***!
682
682
  \****************************/
683
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
683
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
684
684
 
685
685
  __webpack_require__.r(__webpack_exports__);
686
686
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -1079,13 +1079,13 @@ var ChartColorMode;
1079
1079
  ChartColorMode["DATA"] = "data";
1080
1080
  })(ChartColorMode || (ChartColorMode = {}));
1081
1081
 
1082
- /***/ }),
1082
+ /***/ },
1083
1083
 
1084
- /***/ "./src/chart/ChartAdapter.ts":
1084
+ /***/ "./src/chart/ChartAdapter.ts"
1085
1085
  /*!***********************************!*\
1086
1086
  !*** ./src/chart/ChartAdapter.ts ***!
1087
1087
  \***********************************/
1088
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1088
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1089
1089
 
1090
1090
  __webpack_require__.r(__webpack_exports__);
1091
1091
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -1116,24 +1116,24 @@ class ChartAdapter extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.Mode
1116
1116
  }
1117
1117
  }
1118
1118
 
1119
- /***/ }),
1119
+ /***/ },
1120
1120
 
1121
- /***/ "./src/chart/ChartEventMap.ts":
1121
+ /***/ "./src/chart/ChartEventMap.ts"
1122
1122
  /*!************************************!*\
1123
1123
  !*** ./src/chart/ChartEventMap.ts ***!
1124
1124
  \************************************/
1125
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1125
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1126
1126
 
1127
1127
  __webpack_require__.r(__webpack_exports__);
1128
1128
 
1129
1129
 
1130
- /***/ }),
1130
+ /***/ },
1131
1131
 
1132
- /***/ "./src/chart/ChartJsRenderer.ts":
1132
+ /***/ "./src/chart/ChartJsRenderer.ts"
1133
1133
  /*!**************************************!*\
1134
1134
  !*** ./src/chart/ChartJsRenderer.ts ***!
1135
1135
  \**************************************/
1136
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1136
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1137
1137
 
1138
1138
  __webpack_require__.r(__webpack_exports__);
1139
1139
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -3168,7 +3168,6 @@ class ChartJsRenderer extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractChartR
3168
3168
  }
3169
3169
  _onClick(event, items) {
3170
3170
  if (!items.length) {
3171
- this.chart.handleNonValueClick(event.native);
3172
3171
  return;
3173
3172
  }
3174
3173
  let relevantItem = this._selectRelevantItem(items);
@@ -3793,8 +3792,8 @@ class ChartJsRenderer extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractChartR
3793
3792
  yAxisDiffType.grid.drawTicks = true;
3794
3793
  let yAxisType = datasets[0].type || type,
3795
3794
  yAxisDiffTypeType = datasetsDiffType[0].type || type,
3796
- yAxisTypeLabel = this.chart.session.text('ui.' + yAxisType),
3797
- yAxisDiffTypeTypeLabel = this.chart.session.text('ui.' + yAxisDiffTypeType),
3795
+ yAxisTypeLabel = this._typeText(yAxisType),
3796
+ yAxisDiffTypeTypeLabel = this._typeText(yAxisDiffTypeType),
3798
3797
  yAxisScaleLabel = options.scaleLabelByTypeMap ? options.scaleLabelByTypeMap[yAxisType] : null,
3799
3798
  yAxisDiffTypeScaleLabel = options.scaleLabelByTypeMap ? options.scaleLabelByTypeMap[yAxisDiffTypeType] : null;
3800
3799
  yAxis.title.display = true;
@@ -3808,6 +3807,16 @@ class ChartJsRenderer extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractChartR
3808
3807
  dataset.yAxisID = 'yDiffType';
3809
3808
  });
3810
3809
  }
3810
+ _typeText(chartType) {
3811
+ if (chartType === _index__WEBPACK_IMPORTED_MODULE_0__.Chart.Type.BAR) {
3812
+ return this.chart.session.text('ui.ChartTypeBar');
3813
+ }
3814
+ if (chartType === _index__WEBPACK_IMPORTED_MODULE_0__.Chart.Type.LINE) {
3815
+ return this.chart.session.text('ui.ChartTypeLine');
3816
+ }
3817
+ // Not relevant for other types because the text is only used for the COMBO_BAR_LINE chart
3818
+ return '';
3819
+ }
3811
3820
  _adjustAxisMaxMin(axis, maxTicks, maxMinValue) {
3812
3821
  if (!axis) {
3813
3822
  return;
@@ -3836,13 +3845,13 @@ class ChartJsRenderer extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractChartR
3836
3845
  }
3837
3846
  }
3838
3847
 
3839
- /***/ }),
3848
+ /***/ },
3840
3849
 
3841
- /***/ "./src/chart/ChartLayout.ts":
3850
+ /***/ "./src/chart/ChartLayout.ts"
3842
3851
  /*!**********************************!*\
3843
3852
  !*** ./src/chart/ChartLayout.ts ***!
3844
3853
  \**********************************/
3845
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3854
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3846
3855
 
3847
3856
  __webpack_require__.r(__webpack_exports__);
3848
3857
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -3895,24 +3904,24 @@ class ChartLayout extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.Abstr
3895
3904
  }
3896
3905
  }
3897
3906
 
3898
- /***/ }),
3907
+ /***/ },
3899
3908
 
3900
- /***/ "./src/chart/ChartModel.ts":
3909
+ /***/ "./src/chart/ChartModel.ts"
3901
3910
  /*!*********************************!*\
3902
3911
  !*** ./src/chart/ChartModel.ts ***!
3903
3912
  \*********************************/
3904
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3913
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3905
3914
 
3906
3915
  __webpack_require__.r(__webpack_exports__);
3907
3916
 
3908
3917
 
3909
- /***/ }),
3918
+ /***/ },
3910
3919
 
3911
- /***/ "./src/chart/FulfillmentChartRenderer.ts":
3920
+ /***/ "./src/chart/FulfillmentChartRenderer.ts"
3912
3921
  /*!***********************************************!*\
3913
3922
  !*** ./src/chart/FulfillmentChartRenderer.ts ***!
3914
3923
  \***********************************************/
3915
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3924
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3916
3925
 
3917
3926
  __webpack_require__.r(__webpack_exports__);
3918
3927
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -4086,13 +4095,13 @@ class FulfillmentChartRenderer extends _index__WEBPACK_IMPORTED_MODULE_1__.Abstr
4086
4095
  }
4087
4096
  }
4088
4097
 
4089
- /***/ }),
4098
+ /***/ },
4090
4099
 
4091
- /***/ "./src/chart/SalesfunnelChartRenderer.ts":
4100
+ /***/ "./src/chart/SalesfunnelChartRenderer.ts"
4092
4101
  /*!***********************************************!*\
4093
4102
  !*** ./src/chart/SalesfunnelChartRenderer.ts ***!
4094
4103
  \***********************************************/
4095
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4104
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4096
4105
 
4097
4106
  __webpack_require__.r(__webpack_exports__);
4098
4107
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -4104,7 +4113,7 @@ __webpack_require__.r(__webpack_exports__);
4104
4113
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jquery */ "jquery");
4105
4114
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_2__);
4106
4115
  /*
4107
- * Copyright (c) 2010, 2025 BSI Business Systems Integration AG
4116
+ * Copyright (c) 2010, 2026 BSI Business Systems Integration AG
4108
4117
  *
4109
4118
  * This program and the accompanying materials are made
4110
4119
  * available under the terms of the Eclipse Public License 2.0
@@ -4394,12 +4403,12 @@ class SalesfunnelChartRenderer extends _index__WEBPACK_IMPORTED_MODULE_1__.Abstr
4394
4403
  }
4395
4404
  _analyzeData(valueGroups) {
4396
4405
  let result = {
4397
- labelCount: 0,
4398
- maxValue: null,
4399
- maxLengthFirstValueRow: 0,
4400
- maxLengthSecondValueRow: 0
4401
- },
4402
- labelClass = this._dynamicCssClass('salesfunnel-label');
4406
+ labelCount: 0,
4407
+ maxValue: null,
4408
+ maxLengthFirstValueRow: 0,
4409
+ maxLengthSecondValueRow: 0
4410
+ };
4411
+ let labelClass = this._dynamicCssClass('salesfunnel-label');
4403
4412
  for (let i = 0; i < valueGroups.length; i++) {
4404
4413
  let valueGroup = valueGroups[i];
4405
4414
  result.labelCount = Math.max(result.labelCount, valueGroup.values.length);
@@ -4463,13 +4472,13 @@ class SalesfunnelChartRenderer extends _index__WEBPACK_IMPORTED_MODULE_1__.Abstr
4463
4472
  }
4464
4473
  }
4465
4474
 
4466
- /***/ }),
4475
+ /***/ },
4467
4476
 
4468
- /***/ "./src/chart/SpeedoChartRenderer.ts":
4477
+ /***/ "./src/chart/SpeedoChartRenderer.ts"
4469
4478
  /*!******************************************!*\
4470
4479
  !*** ./src/chart/SpeedoChartRenderer.ts ***!
4471
4480
  \******************************************/
4472
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4481
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4473
4482
 
4474
4483
  __webpack_require__.r(__webpack_exports__);
4475
4484
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -4847,13 +4856,13 @@ class SpeedoChartRenderer extends _index__WEBPACK_IMPORTED_MODULE_1__.AbstractSv
4847
4856
  }
4848
4857
  _staticBlock();
4849
4858
 
4850
- /***/ }),
4859
+ /***/ },
4851
4860
 
4852
- /***/ "./src/chart/VennAsync3Calculator.ts":
4861
+ /***/ "./src/chart/VennAsync3Calculator.ts"
4853
4862
  /*!*******************************************!*\
4854
4863
  !*** ./src/chart/VennAsync3Calculator.ts ***!
4855
4864
  \*******************************************/
4856
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4865
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4857
4866
 
4858
4867
  __webpack_require__.r(__webpack_exports__);
4859
4868
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5059,13 +5068,13 @@ class VennAsync3Calculator {
5059
5068
  }
5060
5069
  }
5061
5070
 
5062
- /***/ }),
5071
+ /***/ },
5063
5072
 
5064
- /***/ "./src/chart/VennChartRenderer.ts":
5073
+ /***/ "./src/chart/VennChartRenderer.ts"
5065
5074
  /*!****************************************!*\
5066
5075
  !*** ./src/chart/VennChartRenderer.ts ***!
5067
5076
  \****************************************/
5068
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5077
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5069
5078
 
5070
5079
  __webpack_require__.r(__webpack_exports__);
5071
5080
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5442,13 +5451,13 @@ class VennChartRenderer extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractSvgC
5442
5451
  }
5443
5452
  }
5444
5453
 
5445
- /***/ }),
5454
+ /***/ },
5446
5455
 
5447
- /***/ "./src/chart/VennCircle.ts":
5456
+ /***/ "./src/chart/VennCircle.ts"
5448
5457
  /*!*********************************!*\
5449
5458
  !*** ./src/chart/VennCircle.ts ***!
5450
5459
  \*********************************/
5451
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5460
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5452
5461
 
5453
5462
  __webpack_require__.r(__webpack_exports__);
5454
5463
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5492,13 +5501,13 @@ class VennCircle {
5492
5501
  }
5493
5502
  }
5494
5503
 
5495
- /***/ }),
5504
+ /***/ },
5496
5505
 
5497
- /***/ "./src/chart/VennCircleHelper.ts":
5506
+ /***/ "./src/chart/VennCircleHelper.ts"
5498
5507
  /*!***************************************!*\
5499
5508
  !*** ./src/chart/VennCircleHelper.ts ***!
5500
5509
  \***************************************/
5501
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5510
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5502
5511
 
5503
5512
  __webpack_require__.r(__webpack_exports__);
5504
5513
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5583,13 +5592,13 @@ class VennCircleHelper {
5583
5592
  }
5584
5593
  }
5585
5594
 
5586
- /***/ }),
5595
+ /***/ },
5587
5596
 
5588
- /***/ "./src/chart/chartJsDateAdapter.ts":
5597
+ /***/ "./src/chart/chartJsDateAdapter.ts"
5589
5598
  /*!*****************************************!*\
5590
5599
  !*** ./src/chart/chartJsDateAdapter.ts ***!
5591
5600
  \*****************************************/
5592
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5601
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5593
5602
 
5594
5603
  __webpack_require__.r(__webpack_exports__);
5595
5604
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5772,13 +5781,13 @@ function _getNumberOfDays(month, year) {
5772
5781
  return 31;
5773
5782
  }
5774
5783
 
5775
- /***/ }),
5784
+ /***/ },
5776
5785
 
5777
- /***/ "./src/form/fields/chartfield/ChartField.ts":
5786
+ /***/ "./src/form/fields/chartfield/ChartField.ts"
5778
5787
  /*!**************************************************!*\
5779
5788
  !*** ./src/form/fields/chartfield/ChartField.ts ***!
5780
5789
  \**************************************************/
5781
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5790
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5782
5791
 
5783
5792
  __webpack_require__.r(__webpack_exports__);
5784
5793
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5825,13 +5834,13 @@ class ChartField extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.FormFi
5825
5834
  }
5826
5835
  }
5827
5836
 
5828
- /***/ }),
5837
+ /***/ },
5829
5838
 
5830
- /***/ "./src/form/fields/chartfield/ChartFieldAdapter.ts":
5839
+ /***/ "./src/form/fields/chartfield/ChartFieldAdapter.ts"
5831
5840
  /*!*********************************************************!*\
5832
5841
  !*** ./src/form/fields/chartfield/ChartFieldAdapter.ts ***!
5833
5842
  \*********************************************************/
5834
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5843
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5835
5844
 
5836
5845
  __webpack_require__.r(__webpack_exports__);
5837
5846
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5851,24 +5860,24 @@ __webpack_require__.r(__webpack_exports__);
5851
5860
 
5852
5861
  class ChartFieldAdapter extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.FormFieldAdapter {}
5853
5862
 
5854
- /***/ }),
5863
+ /***/ },
5855
5864
 
5856
- /***/ "./src/form/fields/chartfield/ChartFieldModel.ts":
5865
+ /***/ "./src/form/fields/chartfield/ChartFieldModel.ts"
5857
5866
  /*!*******************************************************!*\
5858
5867
  !*** ./src/form/fields/chartfield/ChartFieldModel.ts ***!
5859
5868
  \*******************************************************/
5860
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5869
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5861
5870
 
5862
5871
  __webpack_require__.r(__webpack_exports__);
5863
5872
 
5864
5873
 
5865
- /***/ }),
5874
+ /***/ },
5866
5875
 
5867
- /***/ "./src/index.ts":
5876
+ /***/ "./src/index.ts"
5868
5877
  /*!**********************!*\
5869
5878
  !*** ./src/index.ts ***!
5870
5879
  \**********************/
5871
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5880
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5872
5881
 
5873
5882
  __webpack_require__.r(__webpack_exports__);
5874
5883
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -5889,6 +5898,7 @@ __webpack_require__.r(__webpack_exports__);
5889
5898
  /* harmony export */ ChartTableControlConfigHelperImpl: () => (/* reexport safe */ _bookmark_ChartTableControlConfigHelperImpl__WEBPACK_IMPORTED_MODULE_3__.ChartTableControlConfigHelperImpl),
5890
5899
  /* harmony export */ ChartTableControlLayout: () => (/* reexport safe */ _table_controls_ChartTableControlLayout__WEBPACK_IMPORTED_MODULE_30__.ChartTableControlLayout),
5891
5900
  /* harmony export */ ChartTableUserFilter: () => (/* reexport safe */ _table_controls_ChartTableUserFilter__WEBPACK_IMPORTED_MODULE_32__.ChartTableUserFilter),
5901
+ /* harmony export */ FocusFirstChartTypeKeyStroke: () => (/* reexport safe */ _table_controls_FocusFirstChartTypeKeyStroke__WEBPACK_IMPORTED_MODULE_34__.FocusFirstChartTypeKeyStroke),
5892
5902
  /* harmony export */ FulfillmentChartRenderer: () => (/* reexport safe */ _chart_FulfillmentChartRenderer__WEBPACK_IMPORTED_MODULE_13__.FulfillmentChartRenderer),
5893
5903
  /* harmony export */ SalesfunnelChartRenderer: () => (/* reexport safe */ _chart_SalesfunnelChartRenderer__WEBPACK_IMPORTED_MODULE_15__.SalesfunnelChartRenderer),
5894
5904
  /* harmony export */ SpeedoChartRenderer: () => (/* reexport safe */ _chart_SpeedoChartRenderer__WEBPACK_IMPORTED_MODULE_14__.SpeedoChartRenderer),
@@ -5934,6 +5944,7 @@ __webpack_require__.r(__webpack_exports__);
5934
5944
  /* harmony import */ var _table_controls_ChartTableControlModel__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./table/controls/ChartTableControlModel */ "./src/table/controls/ChartTableControlModel.ts");
5935
5945
  /* harmony import */ var _table_controls_ChartTableUserFilter__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./table/controls/ChartTableUserFilter */ "./src/table/controls/ChartTableUserFilter.ts");
5936
5946
  /* harmony import */ var _table_controls_ChartTableUserFilterModel__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./table/controls/ChartTableUserFilterModel */ "./src/table/controls/ChartTableUserFilterModel.ts");
5947
+ /* harmony import */ var _table_controls_FocusFirstChartTypeKeyStroke__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./table/controls/FocusFirstChartTypeKeyStroke */ "./src/table/controls/FocusFirstChartTypeKeyStroke.ts");
5937
5948
  /*
5938
5949
  * Copyright (c) 2010, 2025 BSI Business Systems Integration AG
5939
5950
  *
@@ -5975,18 +5986,19 @@ __webpack_require__.r(__webpack_exports__);
5975
5986
 
5976
5987
 
5977
5988
 
5989
+
5978
5990
 
5979
5991
 
5980
5992
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index__WEBPACK_IMPORTED_MODULE_1__);
5981
5993
  _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.ObjectFactory.get().registerNamespace('scout', _index__WEBPACK_IMPORTED_MODULE_1__);
5982
5994
 
5983
- /***/ }),
5995
+ /***/ },
5984
5996
 
5985
- /***/ "./src/objectFactories.ts":
5997
+ /***/ "./src/objectFactories.ts"
5986
5998
  /*!********************************!*\
5987
5999
  !*** ./src/objectFactories.ts ***!
5988
6000
  \********************************/
5989
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6001
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5990
6002
 
5991
6003
  __webpack_require__.r(__webpack_exports__);
5992
6004
  /* harmony import */ var _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @eclipse-scout/core */ "@eclipse-scout/core");
@@ -6007,13 +6019,13 @@ _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.addObjectFactories({
6007
6019
  'ChartTableControlConfigHelper': () => new _index__WEBPACK_IMPORTED_MODULE_1__.ChartTableControlConfigHelperImpl()
6008
6020
  });
6009
6021
 
6010
- /***/ }),
6022
+ /***/ },
6011
6023
 
6012
- /***/ "./src/table/controls/ChartTableControl.ts":
6024
+ /***/ "./src/table/controls/ChartTableControl.ts"
6013
6025
  /*!*************************************************!*\
6014
6026
  !*** ./src/table/controls/ChartTableControl.ts ***!
6015
6027
  \*************************************************/
6016
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6028
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6017
6029
 
6018
6030
  __webpack_require__.r(__webpack_exports__);
6019
6031
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -6053,9 +6065,13 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6053
6065
  $yAxisSelect;
6054
6066
  $dataSelect;
6055
6067
  _chartTypeMap;
6068
+ _chartTypeTabbableCoordinator;
6056
6069
  _aggregationMap;
6070
+ _aggregationTabbableCoordinator;
6057
6071
  _chartGroup1Map;
6072
+ _chartGroup1TabbableCoordinator;
6058
6073
  _chartGroup2Map;
6074
+ _chartGroup2TabbableCoordinator;
6059
6075
  _tableUpdatedHandler;
6060
6076
  _tableColumnStructureChangedHandler;
6061
6077
  _chartValueClickedHandler;
@@ -6080,6 +6096,26 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6080
6096
  this.xAxis = null;
6081
6097
  this.yAxis = null;
6082
6098
  this.dateGroup = null;
6099
+ this._chartTypeTabbableCoordinator = _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.create(_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TabbableCoordinator, {
6100
+ parent: this,
6101
+ autoRegisterKeyStrokes: false,
6102
+ orientation: 'vertical'
6103
+ });
6104
+ this._chartGroup1TabbableCoordinator = _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.create(_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TabbableCoordinator, {
6105
+ parent: this,
6106
+ autoRegisterKeyStrokes: false,
6107
+ orientation: 'vertical'
6108
+ });
6109
+ this._chartGroup2TabbableCoordinator = _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.create(_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TabbableCoordinator, {
6110
+ parent: this,
6111
+ autoRegisterKeyStrokes: false,
6112
+ orientation: 'vertical'
6113
+ });
6114
+ this._aggregationTabbableCoordinator = _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.create(_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TabbableCoordinator, {
6115
+ parent: this,
6116
+ autoRegisterKeyStrokes: false,
6117
+ orientation: 'vertical'
6118
+ });
6083
6119
  this._tableUpdatedHandler = this._onTableUpdated.bind(this);
6084
6120
  this._tableColumnStructureChangedHandler = this._onTableColumnStructureChanged.bind(this);
6085
6121
  this._chartValueClickedHandler = this._onChartValueClick.bind(this);
@@ -6097,6 +6133,10 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6097
6133
  this.table.off('columnStructureChanged', this._tableColumnStructureChangedHandler);
6098
6134
  super._destroy();
6099
6135
  }
6136
+ _initKeyStrokeContext() {
6137
+ super._initKeyStrokeContext();
6138
+ this.tableControlKeyStrokeContext.registerKeyStroke(new _index__WEBPACK_IMPORTED_MODULE_1__.FocusFirstChartTypeKeyStroke(this));
6139
+ }
6100
6140
  _computeEnabled(inheritAccessibility, parentEnabled) {
6101
6141
  if (!this._hasColumns() && !this.selected) {
6102
6142
  return false;
@@ -6122,6 +6162,7 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6122
6162
  this.$yAxisSelect.data('scroll-shadow').setVisible(true);
6123
6163
  this.$yAxisSelect.removeClass('animated');
6124
6164
  });
6165
+ this._chartGroup2TabbableCoordinator.setItems(this.$yAxisSelect.hasClass('hide') ? [] : this.$yAxisSelect.children('.select-axis').map((i, item) => new _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TabbableItem(jquery__WEBPACK_IMPORTED_MODULE_2___default()(item))).get());
6125
6166
  if (this.contentRendered) {
6126
6167
  this.chart.$container.animateAVCSD('opacity', 0, () => {
6127
6168
  this.chart.$container.css('opacity', 1);
@@ -6130,10 +6171,10 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6130
6171
  }
6131
6172
  }
6132
6173
  _selectChartType() {
6133
- _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.objects.values(this._chartTypeMap).forEach($element => {
6134
- $element.removeClass('selected');
6174
+ _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.objects.values(this._chartTypeMap).forEach(action => {
6175
+ action.setSelected(false);
6135
6176
  });
6136
- this._chartTypeMap[this.chartType].addClass('selected');
6177
+ this._chartTypeMap[this.chartType].setSelected(true);
6137
6178
  }
6138
6179
  _renderChartGroup1() {
6139
6180
  this._renderChartGroup(1);
@@ -6150,8 +6191,8 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6150
6191
  let chartGroup = this[groupName];
6151
6192
  if (chartGroup) {
6152
6193
  let $element = this[map][chartGroup.id];
6153
- $element.siblings('.select-axis').animateAVCSD('height', 30);
6154
- $element.selectOne('selected');
6194
+ $element.siblings('.select-axis').setSelected(false).animateAVCSD('height', 30);
6195
+ $element.setSelected(true);
6155
6196
  if (chartGroup.modifier > 0) {
6156
6197
  let dateGroupIndex = chartGroup.modifier ^ ChartTableControl.DATE_GROUP_FLAG;
6157
6198
  $element.animateAVCSD('height', 42);
@@ -6165,8 +6206,8 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6165
6206
  _renderChartAggregation() {
6166
6207
  let $element = this._aggregationMap[this.chartAggregation.id || 'all'];
6167
6208
  if ($element) {
6168
- $element.selectOne();
6169
- $element.removeClass('data-sum').removeClass('data-avg');
6209
+ $element.siblings('.select-data').setSelected(false);
6210
+ $element.setSelected(true).removeClass('data-sum').removeClass('data-avg');
6170
6211
  $element.addClass(this._getAggregationCssClass());
6171
6212
  if (this.contentRendered) {
6172
6213
  this._drawChart();
@@ -6185,20 +6226,19 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6185
6226
  return null;
6186
6227
  }
6187
6228
  }
6188
- _renderChartSelect(cssClass, chartType, iconId) {
6189
- let icon = _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.create(_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.Icon, {
6229
+ _renderChartSelect(cssClass, chartType, iconId, tooltipText) {
6230
+ let action = _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.create(_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.Action, {
6190
6231
  parent: this,
6191
- iconDesc: iconId,
6192
- cssClass: cssClass
6232
+ iconId,
6233
+ cssClass,
6234
+ tooltipText
6193
6235
  });
6194
- icon.render(this.$chartSelect);
6195
- this.$contentContainer.one('remove', () => icon.destroy());
6196
- let $iconContainer = icon.$container;
6197
- $iconContainer.toggleClass('disabled', !this.enabledComputed || !this._hasColumns()).data('chartType', chartType);
6198
- if (this.enabledComputed && this._hasColumns()) {
6199
- $iconContainer.on('click', this._onClickChartType.bind(this));
6200
- }
6201
- this._chartTypeMap[chartType] = $iconContainer;
6236
+ action.render(this.$chartSelect);
6237
+ action.$container.addClass('chart-type menu-item').data('chartType', chartType);
6238
+ action.on('action', this._onChartTypeAction.bind(this));
6239
+ action.setEnabled(this._hasColumns());
6240
+ this.$contentContainer.one('remove', () => action.destroy());
6241
+ this._chartTypeMap[chartType] = action;
6202
6242
  }
6203
6243
  /**
6204
6244
  * Appends a chart selection divs to this.$contentContainer and sets the this.$chartSelect property.
@@ -6210,34 +6250,49 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6210
6250
  this._chartTypeMap = {};
6211
6251
  let supportedChartTypes = this._getSupportedChartTypes();
6212
6252
  if (_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(_index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR, supportedChartTypes)) {
6213
- this._renderChartSelect('chart-bar', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_BARS_VERTICAL);
6253
+ this._renderChartSelect('chart-bar', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_BARS_VERTICAL, this.session.text('ui.ChartTypeBar'));
6214
6254
  }
6215
6255
  if (_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(_index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR_HORIZONTAL, supportedChartTypes)) {
6216
- this._renderChartSelect('chart-stacked', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR_HORIZONTAL, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_BARS_HORIZONTAL);
6256
+ this._renderChartSelect('chart-stacked', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR_HORIZONTAL, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_BARS_HORIZONTAL, this.session.text('ui.ChartTypeBarHorizontal'));
6217
6257
  }
6218
6258
  if (_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(_index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.LINE, supportedChartTypes)) {
6219
- this._renderChartSelect('chart-line', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.LINE, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_LINE);
6259
+ this._renderChartSelect('chart-line', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.LINE, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_LINE, this.session.text('ui.ChartTypeLine'));
6220
6260
  }
6221
6261
  if (_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(_index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.PIE, supportedChartTypes)) {
6222
- this._renderChartSelect('chart-pie', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.PIE, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_PIE);
6262
+ this._renderChartSelect('chart-pie', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.PIE, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_PIE, this.session.text('ui.ChartTypePie'));
6223
6263
  }
6224
6264
  if (_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(_index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BUBBLE, supportedChartTypes)) {
6225
- this._renderChartSelect('chart-bubble', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BUBBLE, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_SCATTER);
6265
+ this._renderChartSelect('chart-bubble', _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BUBBLE, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.icons.DIAGRAM_SCATTER, this.session.text('ui.ChartTypeBubble'));
6226
6266
  }
6267
+ let keyStrokeContext = new _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.KeyStrokeContext({
6268
+ $bindTarget: this.$chartSelect,
6269
+ $scopeTarget: this.$chartSelect
6270
+ });
6271
+ this.session.keyStrokeManager.installKeyStrokeContext(keyStrokeContext);
6272
+ this._chartTypeTabbableCoordinator.registerKeyStrokes(this, keyStrokeContext);
6273
+ this._chartTypeTabbableCoordinator.setItems(Object.values(this._chartTypeMap));
6227
6274
  }
6228
6275
  _getSupportedChartTypes() {
6229
6276
  return [_index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR, _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BAR_HORIZONTAL, _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.LINE, _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.PIE, _index__WEBPACK_IMPORTED_MODULE_1__.Chart.Type.BUBBLE];
6230
6277
  }
6231
- _onClickChartType(event) {
6232
- let $target = jquery__WEBPACK_IMPORTED_MODULE_2___default()(event.currentTarget),
6233
- chartType = $target.data('chartType');
6278
+ _onChartTypeAction(event) {
6279
+ const chartType = event.source.$container.data('chartType');
6234
6280
  this.setChartType(chartType);
6235
6281
  }
6236
- _onClickChartGroup(event) {
6237
- let $target = jquery__WEBPACK_IMPORTED_MODULE_2___default()(event.currentTarget),
6238
- groupId = $target.parent().data('groupId'),
6239
- column = $target.data('column'),
6240
- origModifier = $target.data('modifier');
6282
+ _onChartGroupKeyDown(event) {
6283
+ if (_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(event.which, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.keys.ENTER, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.keys.SPACE)) {
6284
+ this._doChartGroupAction(jquery__WEBPACK_IMPORTED_MODULE_2___default()(event.currentTarget));
6285
+ event.stopPropagation();
6286
+ event.preventDefault(); // Don't scroll when pressing space
6287
+ }
6288
+ }
6289
+ _onChartGroupClick(event) {
6290
+ this._doChartGroupAction(jquery__WEBPACK_IMPORTED_MODULE_2___default()(event.currentTarget));
6291
+ }
6292
+ _doChartGroupAction($target) {
6293
+ let groupId = $target.parent().data('groupId');
6294
+ let column = $target.data('column');
6295
+ let origModifier = $target.data('modifier');
6241
6296
  // do nothing when item is disabled
6242
6297
  if (!$target.isEnabled()) {
6243
6298
  return;
@@ -6250,8 +6305,16 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6250
6305
  };
6251
6306
  this._setChartGroup(groupId, config);
6252
6307
  }
6253
- _onClickAggregation(event) {
6254
- let $target = jquery__WEBPACK_IMPORTED_MODULE_2___default()(event.currentTarget);
6308
+ _onAggregationKeyDown(event) {
6309
+ if (_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(event.which, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.keys.ENTER, _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.keys.SPACE)) {
6310
+ this._doAggregationAction(jquery__WEBPACK_IMPORTED_MODULE_2___default()(event.currentTarget));
6311
+ event.stopPropagation();
6312
+ }
6313
+ }
6314
+ _onAggregationClick(event) {
6315
+ this._doAggregationAction(jquery__WEBPACK_IMPORTED_MODULE_2___default()(event.currentTarget));
6316
+ }
6317
+ _doAggregationAction($target) {
6255
6318
  // update modifier
6256
6319
  let origModifier = $target.data('modifier');
6257
6320
  let modifier = $target.isSelected() ? this._nextModifier(origModifier) : origModifier;
@@ -6352,7 +6415,8 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6352
6415
  return text;
6353
6416
  }
6354
6417
  _renderContent($parent) {
6355
- this.$contentContainer = $parent.appendDiv('chart-container');
6418
+ this.$contentContainer = $parent.appendDiv('chart-container').attr('tabindex', '-1');
6419
+ this.$contentContainer[0].focus(); // Pressing tab should select first chart type action
6356
6420
  // scrollbars
6357
6421
  this._installScrollbars();
6358
6422
  this._renderChartSelectContainer();
@@ -6406,16 +6470,11 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6406
6470
  columnCount.sort((a, b) => {
6407
6471
  return Math.abs(a[1] - 8) - Math.abs(b[1] - 8);
6408
6472
  });
6409
- let axisCount,
6410
- enabled,
6411
- numberOfAxisItems = 0,
6412
- columns = matrix.columns(false); // filterNumberColumns false: number columns will be filtered below
6473
+ let axisCount, enabled;
6474
+ let columns = matrix.columns(false); // filterNumberColumns false: number columns will be filtered below
6413
6475
  // all x/y-axis for selection
6414
6476
  for (let c1 = 0; c1 < columns.length; c1++) {
6415
- let content,
6416
- $div,
6417
- $yDiv,
6418
- column1 = columns[c1];
6477
+ let column1 = columns[c1];
6419
6478
  // Check if data-spread is too large. This is a problem in large tables where a column has unique values.
6420
6479
  // We cannot create DOM elements for each unique value because this causes all browser to stop script
6421
6480
  // execution. May be in a later release we could implement some sort of data aggregation, but this is not
@@ -6430,8 +6489,8 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6430
6489
  axisCount = this._axisCount(columnCount, column1);
6431
6490
  enabled = axisCount <= ChartTableControl.MAX_AXIS_COUNT;
6432
6491
  }
6433
- content = this._axisContentForColumn(column1);
6434
- $div = this.$contentContainer.makeDiv('select-axis', this._plainAxisText(column1, content.text)).data('column', column1).setEnabled(enabled);
6492
+ let content = this._axisContentForColumn(column1);
6493
+ let $div = this.$contentContainer.makeDiv('select-axis prevent-initial-focus', this._plainAxisText(column1, content.text)).data('column', column1).unfocusable().setEnabled(enabled);
6435
6494
  if (!enabled) {
6436
6495
  if (this.chartGroup1 && this.chartGroup1.id === column1.id) {
6437
6496
  this.chartGroup1 = null;
@@ -6445,11 +6504,12 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6445
6504
  $div.addClass(content.icon.appendCssClass('font-icon'));
6446
6505
  }
6447
6506
  if (column1 instanceof _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.DateColumn) {
6448
- $div.data('modifier', _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TableMatrix.DateGroup.YEAR).appendDiv('select-axis-group', this.dateGroup[0][1]);
6507
+ $div.data('modifier', _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TableMatrix.DateGroup.YEAR).appendDiv('select-axis-group', String(this.dateGroup[0][1]));
6449
6508
  }
6450
6509
  // install click handler or tooltip
6451
6510
  if (enabled) {
6452
- $div.on('click', this._onClickChartGroup.bind(this));
6511
+ $div.on('click', this._onChartGroupClick.bind(this));
6512
+ $div.on('keydown', this._onChartGroupKeyDown.bind(this));
6453
6513
  _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.tooltips.installForEllipsis($div, {
6454
6514
  parent: this
6455
6515
  });
@@ -6459,13 +6519,26 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6459
6519
  text: this.session.text('ui.TooMuchData')
6460
6520
  });
6461
6521
  }
6462
- numberOfAxisItems++;
6463
- $yDiv = $div.clone(true);
6522
+ let $yDiv = $div.clone(true);
6464
6523
  this._chartGroup1Map[column1.id] = $div;
6465
6524
  this._chartGroup2Map[column1.id] = $yDiv;
6466
6525
  this.$xAxisSelect.append($div);
6467
6526
  this.$yAxisSelect.append($yDiv);
6468
6527
  }
6528
+ let chartGroup1KeyStrokeContext = new _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.KeyStrokeContext({
6529
+ $bindTarget: this.$xAxisSelect,
6530
+ $scopeTarget: this.$xAxisSelect
6531
+ });
6532
+ this.session.keyStrokeManager.installKeyStrokeContext(chartGroup1KeyStrokeContext);
6533
+ this._chartGroup1TabbableCoordinator.registerKeyStrokes(this, chartGroup1KeyStrokeContext);
6534
+ this._chartGroup1TabbableCoordinator.setItems(this.$xAxisSelect.children('.select-axis').map((i, item) => new _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TabbableItem(jquery__WEBPACK_IMPORTED_MODULE_2___default()(item))).get());
6535
+ let chartGroup2KeyStrokeContext = new _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.KeyStrokeContext({
6536
+ $bindTarget: this.$yAxisSelect,
6537
+ $scopeTarget: this.$yAxisSelect
6538
+ });
6539
+ this.session.keyStrokeManager.installKeyStrokeContext(chartGroup2KeyStrokeContext);
6540
+ this._chartGroup2TabbableCoordinator.registerKeyStrokes(this, chartGroup2KeyStrokeContext);
6541
+ // Items will be set in _renderChartType
6469
6542
  // map for selection (column id, $element)
6470
6543
  this._aggregationMap = {};
6471
6544
  if (this._hasColumns()) {
@@ -6478,7 +6551,7 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6478
6551
  });
6479
6552
  // add data-count for no column restriction (all columns)
6480
6553
  let countDesc = this.session.text('ui.Count');
6481
- this._aggregationMap.all = this.$dataSelect.appendDiv('select-data data-count', countDesc).data('column', null).data('modifier', _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TableMatrix.NumberGroup.COUNT);
6554
+ this._aggregationMap.all = this.$dataSelect.appendDiv('select-data data-count prevent-initial-focus', countDesc).unfocusable().data('column', null).data('modifier', _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TableMatrix.NumberGroup.COUNT);
6482
6555
  // all data for selection
6483
6556
  for (let c2 = 0; c2 < columns.length; c2++) {
6484
6557
  let column2 = columns[c2];
@@ -6492,11 +6565,18 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
6492
6565
  } else {
6493
6566
  columnText = '[' + fakeNumberLabelCol2 + ']';
6494
6567
  }
6495
- this._aggregationMap[column2.id] = this.$dataSelect.appendDiv('select-data data-sum', columnText).data('column', column2).data('modifier', _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TableMatrix.NumberGroup.SUM);
6568
+ this._aggregationMap[column2.id] = this.$dataSelect.appendDiv('select-data data-sum prevent-initial-focus', columnText).unfocusable().data('column', column2).data('modifier', _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TableMatrix.NumberGroup.SUM);
6496
6569
  }
6497
6570
  }
6498
6571
  // click handling for data
6499
- jquery__WEBPACK_IMPORTED_MODULE_2___default()('.select-data', this.$contentContainer).on('click', this._onClickAggregation.bind(this));
6572
+ jquery__WEBPACK_IMPORTED_MODULE_2___default()('.select-data', this.$contentContainer).on('click', this._onAggregationClick.bind(this)).on('keydown', this._onAggregationKeyDown.bind(this));
6573
+ let keyStrokeContext = new _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.KeyStrokeContext({
6574
+ $bindTarget: this.$dataSelect,
6575
+ $scopeTarget: this.$dataSelect
6576
+ });
6577
+ this.session.keyStrokeManager.installKeyStrokeContext(keyStrokeContext);
6578
+ this._aggregationTabbableCoordinator.registerKeyStrokes(this, keyStrokeContext);
6579
+ this._aggregationTabbableCoordinator.setItems(this.$dataSelect.children('.select-data').map((i, item) => new _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.TabbableItem(jquery__WEBPACK_IMPORTED_MODULE_2___default()(item))).get());
6500
6580
  }
6501
6581
  return columnCount;
6502
6582
  }
@@ -7111,13 +7191,13 @@ class ChartTableControl extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__
7111
7191
  }
7112
7192
  }
7113
7193
 
7114
- /***/ }),
7194
+ /***/ },
7115
7195
 
7116
- /***/ "./src/table/controls/ChartTableControlAdapter.ts":
7196
+ /***/ "./src/table/controls/ChartTableControlAdapter.ts"
7117
7197
  /*!********************************************************!*\
7118
7198
  !*** ./src/table/controls/ChartTableControlAdapter.ts ***!
7119
7199
  \********************************************************/
7120
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7200
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7121
7201
 
7122
7202
  __webpack_require__.r(__webpack_exports__);
7123
7203
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -7142,13 +7222,13 @@ class ChartTableControlAdapter extends _eclipse_scout_core__WEBPACK_IMPORTED_MOD
7142
7222
  }
7143
7223
  }
7144
7224
 
7145
- /***/ }),
7225
+ /***/ },
7146
7226
 
7147
- /***/ "./src/table/controls/ChartTableControlConfigDo.ts":
7227
+ /***/ "./src/table/controls/ChartTableControlConfigDo.ts"
7148
7228
  /*!*********************************************************!*\
7149
7229
  !*** ./src/table/controls/ChartTableControlConfigDo.ts ***!
7150
7230
  \*********************************************************/
7151
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7231
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7152
7232
 
7153
7233
  __webpack_require__.r(__webpack_exports__);
7154
7234
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -7193,24 +7273,24 @@ ChartTableControlConfigDo = __decorate([(0,_eclipse_scout_core__WEBPACK_IMPORTED
7193
7273
 
7194
7274
  window["scout"]["DataObjectInventory"].get().add(ChartTableControlConfigDo, "scout.ChartTableControlConfig", "ChartTableControlConfigDo");
7195
7275
 
7196
- /***/ }),
7276
+ /***/ },
7197
7277
 
7198
- /***/ "./src/table/controls/ChartTableControlEventMap.ts":
7278
+ /***/ "./src/table/controls/ChartTableControlEventMap.ts"
7199
7279
  /*!*********************************************************!*\
7200
7280
  !*** ./src/table/controls/ChartTableControlEventMap.ts ***!
7201
7281
  \*********************************************************/
7202
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7282
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7203
7283
 
7204
7284
  __webpack_require__.r(__webpack_exports__);
7205
7285
 
7206
7286
 
7207
- /***/ }),
7287
+ /***/ },
7208
7288
 
7209
- /***/ "./src/table/controls/ChartTableControlLayout.ts":
7289
+ /***/ "./src/table/controls/ChartTableControlLayout.ts"
7210
7290
  /*!*******************************************************!*\
7211
7291
  !*** ./src/table/controls/ChartTableControlLayout.ts ***!
7212
7292
  \*******************************************************/
7213
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7293
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7214
7294
 
7215
7295
  __webpack_require__.r(__webpack_exports__);
7216
7296
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -7245,24 +7325,24 @@ class ChartTableControlLayout extends _eclipse_scout_core__WEBPACK_IMPORTED_MODU
7245
7325
  }
7246
7326
  }
7247
7327
 
7248
- /***/ }),
7328
+ /***/ },
7249
7329
 
7250
- /***/ "./src/table/controls/ChartTableControlModel.ts":
7330
+ /***/ "./src/table/controls/ChartTableControlModel.ts"
7251
7331
  /*!******************************************************!*\
7252
7332
  !*** ./src/table/controls/ChartTableControlModel.ts ***!
7253
7333
  \******************************************************/
7254
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7334
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7255
7335
 
7256
7336
  __webpack_require__.r(__webpack_exports__);
7257
7337
 
7258
7338
 
7259
- /***/ }),
7339
+ /***/ },
7260
7340
 
7261
- /***/ "./src/table/controls/ChartTableUserFilter.ts":
7341
+ /***/ "./src/table/controls/ChartTableUserFilter.ts"
7262
7342
  /*!****************************************************!*\
7263
7343
  !*** ./src/table/controls/ChartTableUserFilter.ts ***!
7264
7344
  \****************************************************/
7265
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7345
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7266
7346
 
7267
7347
  __webpack_require__.r(__webpack_exports__);
7268
7348
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -7337,24 +7417,69 @@ class ChartTableUserFilter extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_
7337
7417
  }
7338
7418
  }
7339
7419
 
7340
- /***/ }),
7420
+ /***/ },
7341
7421
 
7342
- /***/ "./src/table/controls/ChartTableUserFilterModel.ts":
7422
+ /***/ "./src/table/controls/ChartTableUserFilterModel.ts"
7343
7423
  /*!*********************************************************!*\
7344
7424
  !*** ./src/table/controls/ChartTableUserFilterModel.ts ***!
7345
7425
  \*********************************************************/
7346
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7426
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7347
7427
 
7348
7428
  __webpack_require__.r(__webpack_exports__);
7349
7429
 
7350
7430
 
7351
- /***/ }),
7431
+ /***/ },
7352
7432
 
7353
- /***/ "./src/tile/ChartFieldTile.ts":
7433
+ /***/ "./src/table/controls/FocusFirstChartTypeKeyStroke.ts"
7434
+ /*!************************************************************!*\
7435
+ !*** ./src/table/controls/FocusFirstChartTypeKeyStroke.ts ***!
7436
+ \************************************************************/
7437
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7438
+
7439
+ __webpack_require__.r(__webpack_exports__);
7440
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7441
+ /* harmony export */ FocusFirstChartTypeKeyStroke: () => (/* binding */ FocusFirstChartTypeKeyStroke)
7442
+ /* harmony export */ });
7443
+ /* harmony import */ var _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @eclipse-scout/core */ "@eclipse-scout/core");
7444
+ /* harmony import */ var _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__);
7445
+ /*
7446
+ * Copyright (c) 2010, 2025 BSI Business Systems Integration AG
7447
+ *
7448
+ * This program and the accompanying materials are made
7449
+ * available under the terms of the Eclipse Public License 2.0
7450
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7451
+ *
7452
+ * SPDX-License-Identifier: EPL-2.0
7453
+ */
7454
+
7455
+ /**
7456
+ * Focuses the first chart type if the focus is on the content container of the chart table control (which is the case when the table control opens).
7457
+ */
7458
+ class FocusFirstChartTypeKeyStroke extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.KeyStroke {
7459
+ constructor(action) {
7460
+ super();
7461
+ this.field = action;
7462
+ this.which = [_eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.keys.DOWN];
7463
+ this.stopPropagation = true;
7464
+ }
7465
+ _accept(event) {
7466
+ if (!super._accept(event)) {
7467
+ return false;
7468
+ }
7469
+ return _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.focusUtils.isActiveElement(this.field.$contentContainer);
7470
+ }
7471
+ handle(event) {
7472
+ this.field.$chartSelect.children('.chart-type').first()[0]?.focus();
7473
+ }
7474
+ }
7475
+
7476
+ /***/ },
7477
+
7478
+ /***/ "./src/tile/ChartFieldTile.ts"
7354
7479
  /*!************************************!*\
7355
7480
  !*** ./src/tile/ChartFieldTile.ts ***!
7356
7481
  \************************************/
7357
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7482
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7358
7483
 
7359
7484
  __webpack_require__.r(__webpack_exports__);
7360
7485
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -7403,13 +7528,13 @@ class ChartFieldTile extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.Fo
7403
7528
  }
7404
7529
  }
7405
7530
 
7406
- /***/ }),
7531
+ /***/ },
7407
7532
 
7408
- /***/ "./src/tile/ChartFieldTileAdapter.ts":
7533
+ /***/ "./src/tile/ChartFieldTileAdapter.ts"
7409
7534
  /*!*******************************************!*\
7410
7535
  !*** ./src/tile/ChartFieldTileAdapter.ts ***!
7411
7536
  \*******************************************/
7412
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7537
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7413
7538
 
7414
7539
  __webpack_require__.r(__webpack_exports__);
7415
7540
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -7429,58 +7554,58 @@ __webpack_require__.r(__webpack_exports__);
7429
7554
 
7430
7555
  class ChartFieldTileAdapter extends _eclipse_scout_core__WEBPACK_IMPORTED_MODULE_0__.FormFieldTileAdapter {}
7431
7556
 
7432
- /***/ }),
7557
+ /***/ },
7433
7558
 
7434
- /***/ "./src/tile/ChartFieldTileModel.ts":
7559
+ /***/ "./src/tile/ChartFieldTileModel.ts"
7435
7560
  /*!*****************************************!*\
7436
7561
  !*** ./src/tile/ChartFieldTileModel.ts ***!
7437
7562
  \*****************************************/
7438
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7563
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7439
7564
 
7440
7565
  __webpack_require__.r(__webpack_exports__);
7441
7566
 
7442
7567
 
7443
- /***/ }),
7568
+ /***/ },
7569
+
7570
+ /***/ "@eclipse-scout/core"
7571
+ /*!************************!*\
7572
+ !*** external "scout" ***!
7573
+ \************************/
7574
+ (module) {
7575
+
7576
+ module.exports = scout;
7577
+
7578
+ /***/ },
7444
7579
 
7445
- /***/ "chart.js":
7580
+ /***/ "chart.js"
7446
7581
  /*!************************!*\
7447
7582
  !*** external "Chart" ***!
7448
7583
  \************************/
7449
- /***/ ((module) => {
7584
+ (module) {
7450
7585
 
7451
7586
  module.exports = Chart;
7452
7587
 
7453
- /***/ }),
7588
+ /***/ },
7454
7589
 
7455
- /***/ "chartjs-plugin-datalabels":
7590
+ /***/ "chartjs-plugin-datalabels"
7456
7591
  /*!**********************************!*\
7457
7592
  !*** external "ChartDataLabels" ***!
7458
7593
  \**********************************/
7459
- /***/ ((module) => {
7594
+ (module) {
7460
7595
 
7461
7596
  module.exports = ChartDataLabels;
7462
7597
 
7463
- /***/ }),
7598
+ /***/ },
7464
7599
 
7465
- /***/ "jquery":
7600
+ /***/ "jquery"
7466
7601
  /*!*************************!*\
7467
7602
  !*** external "jQuery" ***!
7468
7603
  \*************************/
7469
- /***/ ((module) => {
7604
+ (module) {
7470
7605
 
7471
7606
  module.exports = jQuery;
7472
7607
 
7473
- /***/ }),
7474
-
7475
- /***/ "@eclipse-scout/core":
7476
- /*!************************!*\
7477
- !*** external "scout" ***!
7478
- \************************/
7479
- /***/ ((module) => {
7480
-
7481
- module.exports = scout;
7482
-
7483
- /***/ })
7608
+ /***/ }
7484
7609
 
7485
7610
  /******/ });
7486
7611
  /************************************************************************/
@@ -7494,6 +7619,12 @@ module.exports = scout;
7494
7619
  /******/ if (cachedModule !== undefined) {
7495
7620
  /******/ return cachedModule.exports;
7496
7621
  /******/ }
7622
+ /******/ // Check if module exists (development only)
7623
+ /******/ if (__webpack_modules__[moduleId] === undefined) {
7624
+ /******/ var e = new Error("Cannot find module '" + moduleId + "'");
7625
+ /******/ e.code = 'MODULE_NOT_FOUND';
7626
+ /******/ throw e;
7627
+ /******/ }
7497
7628
  /******/ // Create a new module (and put it into the cache)
7498
7629
  /******/ var module = __webpack_module_cache__[moduleId] = {
7499
7630
  /******/ // no module.id needed