flexmonster 2.9.23 → 2.9.26-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 (41) hide show
  1. package/flexmonster.css +11 -6
  2. package/flexmonster.es5.full.js +2798 -2789
  3. package/flexmonster.es5.js +2554 -2545
  4. package/flexmonster.full.js +2296 -2291
  5. package/flexmonster.js +2378 -2373
  6. package/flexmonster.min.css +1 -1
  7. package/package.json +1 -1
  8. package/theme/accessible/flexmonster.css +11 -6
  9. package/theme/accessible/flexmonster.min.css +1 -1
  10. package/theme/blackorange/flexmonster.css +11 -6
  11. package/theme/blackorange/flexmonster.min.css +1 -1
  12. package/theme/brightorange/flexmonster.css +11 -6
  13. package/theme/brightorange/flexmonster.min.css +1 -1
  14. package/theme/dark/flexmonster.css +11 -6
  15. package/theme/dark/flexmonster.min.css +1 -1
  16. package/theme/flexmonster-base.less +11 -6
  17. package/theme/green/flexmonster.css +11 -6
  18. package/theme/green/flexmonster.min.css +1 -1
  19. package/theme/lightblue/flexmonster.css +11 -6
  20. package/theme/lightblue/flexmonster.min.css +1 -1
  21. package/theme/macos/flexmonster.css +11 -6
  22. package/theme/macos/flexmonster.min.css +1 -1
  23. package/theme/midnight/flexmonster.css +11 -6
  24. package/theme/midnight/flexmonster.min.css +1 -1
  25. package/theme/old/flexmonster.css +11 -6
  26. package/theme/old/flexmonster.min.css +1 -1
  27. package/theme/orange/flexmonster.css +11 -6
  28. package/theme/orange/flexmonster.min.css +1 -1
  29. package/theme/purple/flexmonster.css +11 -6
  30. package/theme/purple/flexmonster.min.css +1 -1
  31. package/theme/softdefault/flexmonster.css +11 -6
  32. package/theme/softdefault/flexmonster.min.css +1 -1
  33. package/theme/stripedblue/flexmonster.css +11 -6
  34. package/theme/stripedblue/flexmonster.min.css +1 -1
  35. package/theme/stripedteal/flexmonster.css +11 -6
  36. package/theme/stripedteal/flexmonster.min.css +1 -1
  37. package/theme/teal/flexmonster.css +11 -6
  38. package/theme/teal/flexmonster.min.css +1 -1
  39. package/theme/yellow/flexmonster.css +11 -6
  40. package/theme/yellow/flexmonster.min.css +1 -1
  41. package/toolbar/flexmonster.toolbar.js +28 -17
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Flexmonster Pivot Table & Charts [https://www.flexmonster.com/]
3
- * April 2022 (v. 2.9.23)
3
+ * May 2022 (v. 2.9.26)
4
4
  * Copyright (c) 2022 Flexmonster. All rights reserved.
5
5
  *
6
6
  * Flexmonster Pivot Table & Charts commercial licenses may be obtained at
@@ -14,6 +14,7 @@ var FlexmonsterToolbar = function (pivotContainer, pivot, _, width, labels, data
14
14
  this.Labels = labels;
15
15
  this.dataSourceType = dataSourceType || 5;
16
16
  this.showShareReportTab = false;
17
+ this.singleAggregationFormatting = false;
17
18
  }
18
19
  FlexmonsterToolbar.prototype.getTabs = function () {
19
20
  var tabs = [];
@@ -474,7 +475,7 @@ FlexmonsterToolbar.prototype.init = function () {
474
475
  if (_this.toolbar.scrollLeft + luft * epsillon >= maxWidth && _this.rightScrollButton.classList.contains("fm-scroll-arrow")) {
475
476
  changeListWrapperWidth("remove");
476
477
  _this.rightScrollButton.classList.remove("fm-scroll-arrow");
477
- } else if (_this.toolbar.scrollLeft < maxWidth && !_this.rightScrollButton.classList.contains("fm-scroll-arrow")) {
478
+ } else if (_this.toolbar.scrollLeft + luft * epsillon < maxWidth && !_this.rightScrollButton.classList.contains("fm-scroll-arrow")) {
478
479
  changeListWrapperWidth("add");
479
480
  _this.addClass(_this.rightScrollButton, "fm-scroll-arrow");
480
481
  }
@@ -1574,7 +1575,9 @@ FlexmonsterToolbar.prototype.showFormatCellsDialog = function (measureName, meas
1574
1575
  var measure = null;
1575
1576
  for (var i = 0; i < measuresList.length; i++) {
1576
1577
  measure = getMeasureFromUniqueName(measuresList[i]);
1577
- self.pivot.setFormat(formatVO, (measure[0] == "" ? null : measure[0]), measure[1]);
1578
+ self.pivot.setFormat(formatVO,
1579
+ (measure[0] == "" ? null : measure[0]),
1580
+ (self.singleAggregationFormatting ? undefined : measure[1]));
1578
1581
  }
1579
1582
  // if (valuesDropDown.getValue() === "" && currentReport.hasOwnProperty("formats")) {
1580
1583
  // var reportMeasures = currentReport.slice.measures;
@@ -1603,7 +1606,7 @@ FlexmonsterToolbar.prototype.showFormatCellsDialog = function (measureName, meas
1603
1606
  var aggregation = aggregationLabelIndex === -1 || measure.aggregation === "none" || measure.calculated ?
1604
1607
  null :
1605
1608
  measure.availableAggregationsCaptions[aggregationLabelIndex];
1606
- return aggregation === null ?
1609
+ return aggregation === null || self.singleAggregationFormatting ?
1607
1610
  measure.name :
1608
1611
  measure.name + " (" + aggregation + ")";
1609
1612
  }
@@ -1638,7 +1641,7 @@ FlexmonsterToolbar.prototype.showFormatCellsDialog = function (measureName, meas
1638
1641
  var _measures = self.pivot.getMeasures();
1639
1642
  for (var i = 0; i < _measures.length; i++) {
1640
1643
  if (!_uniqueNames[_measures[i].uniqueName] ||
1641
- (_uniqueNames[_measures[i].uniqueName] && !_uniqueNames[_measures[i].uniqueName][_measures[i].aggregation])) {
1644
+ (_uniqueNames[_measures[i].uniqueName] && !_uniqueNames[_measures[i].uniqueName][_measures[i].aggregation] && !this.singleAggregationFormatting)) {
1642
1645
  if (!_uniqueNames[_measures[i].uniqueName]) _uniqueNames[_measures[i].uniqueName] = {};
1643
1646
  _uniqueNames[_measures[i].uniqueName][_measures[i].aggregation] = true;
1644
1647
  measuresDataProvider.push({
@@ -3190,29 +3193,37 @@ FlexmonsterToolbar.prototype.createTabMenu = function (dataProvider, parentTab)
3190
3193
 
3191
3194
  function show() {
3192
3195
  parentTab.classList.add("fm-opened");
3193
- parentTab.classList.remove("fm-align-right");
3194
3196
  menuList.classList.remove("fm-dropdown-scrollable-left");
3195
3197
  menuList.classList.remove("fm-dropdown-scrollable-right");
3196
3198
  menuContainer.style.right = menuContainer.style.left = null;
3199
+
3197
3200
  var menuRect = menuContainer.getBoundingClientRect();
3201
+ var parentRect = parentTab.getBoundingClientRect();
3198
3202
  var toolbarRect = _this.toolbarWrapper.getBoundingClientRect();
3199
3203
  var leftScrollArrow = _this.container.querySelector(".fm-left-scroll-button");
3204
+ var leftScrollArrowRect = leftScrollArrow ? leftScrollArrow.getBoundingClientRect() : null;
3200
3205
  var rightScrollArrow = _this.container.querySelector(".fm-right-scroll-button");
3201
3206
  var arrowWidth = (leftScrollArrow ? leftScrollArrow.offsetWidth : 0) + (rightScrollArrow ? rightScrollArrow.offsetWidth : 0);
3202
- if (menuRect.right > toolbarRect.right - arrowWidth) {
3203
- menuContainer.style.right = 0;
3204
- _this.addClass(parentTab, "fm-align-right");
3207
+
3208
+ if ((menuRect.left > parentRect.right - arrowWidth || menuRect.left < parentRect.left + arrowWidth)
3209
+ && parentRect.right + menuRect.width < toolbarRect.right && _this.toolbar.scrollLeft > 0) {// this case handles left positioning with scroll
3210
+ menuContainer.style.left = 0;
3205
3211
  menuRect = menuContainer.getBoundingClientRect();
3206
- if (menuRect.right > toolbarRect.right - (rightScrollArrow ? rightScrollArrow.offsetWidth : 0)) {
3207
- var luft = menuRect.right - rightScrollArrow.getBoundingClientRect().left + 5;
3208
- menuContainer.style.right = luft + "px";
3209
- _this.removeClass(parentTab, "fm-align-right");
3210
- menuList.classList.add("fm-dropdown-scrollable-right");
3211
- }
3212
- } else if (menuRect.left < toolbarRect.left + (leftScrollArrow ? leftScrollArrow.offsetWidth : 0)) { //this block handles cases when scrolling tabs are partly hidden
3213
- var luft = (leftScrollArrow ? leftScrollArrow.getBoundingClientRect().right : 0) - menuRect.left + 5;
3212
+
3213
+ var luft = Math.round(parentRect.right - menuRect.left - parentRect.width * 0.6);
3214
3214
  menuContainer.style.left = luft + "px";
3215
3215
  menuList.classList.add("fm-dropdown-scrollable-left");
3216
+ } else if (menuRect.right > toolbarRect.right - arrowWidth
3217
+ && parentRect.left + parentRect.width / 2 - menuRect.width > 0) {//this case handles right positioning
3218
+ menuContainer.style.right = 0;
3219
+ menuRect = menuContainer.getBoundingClientRect();
3220
+
3221
+ var luft = Math.round(menuRect.right - parentRect.left - parentRect.width * 0.6);
3222
+ menuContainer.style.right = luft + "px";
3223
+ menuList.classList.add("fm-dropdown-scrollable-right");
3224
+ } else if (leftScrollArrowRect && parentRect.left < leftScrollArrowRect.right) {// this case handles left positon on the edge
3225
+ menuContainer.style.left = 0;
3226
+ menuList.classList.add("fm-dropdown-scrollable-left");
3216
3227
  }
3217
3228
  setActiveItemAt(-2);
3218
3229
  parentTab.querySelector("a").setAttribute("aria-activedescendant", menuList.children.item(0).id);