@syncfusion/ej2-treemap 22.2.5 → 23.2.4

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.
@@ -1558,6 +1558,7 @@ function drawSymbol(location, shape, size, url, options, label) {
1558
1558
  const temp = renderLegendShape(location, size, shape, options, url);
1559
1559
  const htmlElement = svgRenderer['draw' + temp.functionName](temp.renderOption);
1560
1560
  htmlElement.setAttribute('aria-label', label);
1561
+ htmlElement.setAttribute('role', 'region');
1561
1562
  return htmlElement;
1562
1563
  }
1563
1564
  /**
@@ -2228,6 +2229,7 @@ class LayoutPanel {
2228
2229
  this.calculateLayoutItems(parentItemGroupname, totalRect);
2229
2230
  this.renderLayoutItems();
2230
2231
  }
2232
+ // eslint-disable-next-line valid-jsdoc
2231
2233
  /** @private */
2232
2234
  renderLayoutItems() {
2233
2235
  let position;
@@ -2366,8 +2368,15 @@ class LayoutPanel {
2366
2368
  }
2367
2369
  }
2368
2370
  itemGroup.setAttribute('aria-label', item['name']);
2369
- itemGroup.setAttribute('role', '');
2370
- itemGroup.setAttribute('tabindex', (this.treemap.tabIndex + i + 2).toString());
2371
+ if ((this.treemap.enableDrillDown && isLeafItem) || (this.treemap.selectionSettings.enable || this.treemap.highlightSettings.enable)) {
2372
+ itemGroup.setAttribute('role', 'button');
2373
+ itemGroup.setAttribute('tabindex', (this.treemap.tabIndex + i + 2).toString());
2374
+ itemGroup.style.cursor = this.treemap.highlightSettings.enable && !this.treemap.selectionSettings.enable && (this.treemap.enableDrillDown && item['groupIndex'] == (this.treemap.levels.length - 1)) ? 'default' :
2375
+ this.treemap.highlightSettings.enable && !this.treemap.selectionSettings.enable && !this.treemap.enableDrillDown ? 'default' : 'pointer';
2376
+ }
2377
+ else {
2378
+ itemGroup.setAttribute('role', 'region');
2379
+ }
2371
2380
  maintainSelection(this.treemap, itemGroup, 'treeMapSelection');
2372
2381
  this.layoutGroup.appendChild(itemGroup);
2373
2382
  }
@@ -2485,7 +2494,7 @@ class LayoutPanel {
2485
2494
  return contrast >= 128 ? 'black' : 'white';
2486
2495
  }
2487
2496
  renderTemplate(
2488
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2497
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, max-len
2489
2498
  secondaryEle, groupId, rect, position, template, item, isLeafItem) {
2490
2499
  const templateId = isLeafItem ? groupId + '_LabelTemplate' : groupId + '_HeaderTemplate';
2491
2500
  const baseTemplateId = isLeafItem ? '_LabelTemplate' : '_HeaderTemplate';
@@ -3198,9 +3207,22 @@ let TreeMap = class TreeMap extends Component {
3198
3207
  else if (this.dataSource instanceof TreeMapAjax) {
3199
3208
  localAjax = this.dataSource;
3200
3209
  fetchApiModule = new Fetch(localAjax.dataOptions, localAjax.type, localAjax.contentType);
3210
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3201
3211
  fetchApiModule.onSuccess = (args) => {
3202
- this.dataSource = args;
3203
- this.renderTreeMapElements();
3212
+ if (!isNullOrUndefined(args.type) && args.type === 'application/octet-stream') {
3213
+ let reader = new FileReader();
3214
+ let treemap = this;
3215
+ reader.onload = function (data) {
3216
+ args = JSON.parse(reader.result.toString());
3217
+ treemap.dataSource = args;
3218
+ treemap.renderTreeMapElements();
3219
+ };
3220
+ reader.readAsText(args);
3221
+ }
3222
+ else {
3223
+ this.dataSource = args;
3224
+ this.renderTreeMapElements();
3225
+ }
3204
3226
  };
3205
3227
  fetchApiModule.send(localAjax.sendData);
3206
3228
  }
@@ -3553,7 +3575,7 @@ let TreeMap = class TreeMap extends Component {
3553
3575
  currentData['isDrilled'] = false;
3554
3576
  currentData['groupName'] = groupPath;
3555
3577
  currentData['data'] = this.dataSource[j];
3556
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3578
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, max-len
3557
3579
  this.treemapLevelData.levelsData[(this.treemapLevelData.levelsData.length - 1)][groupPath].push(currentData);
3558
3580
  orderNames.push((childName) ? childName : name);
3559
3581
  }
@@ -3688,8 +3710,14 @@ let TreeMap = class TreeMap extends Component {
3688
3710
  */
3689
3711
  addTabIndex() {
3690
3712
  this.element.setAttribute('aria-label', this.description || 'TreeMap Element');
3691
- this.element.setAttribute('role', '');
3692
- this.element.setAttribute('tabindex', this.tabIndex.toString());
3713
+ if (this.enableDrillDown || (this.selectionSettings.enable || this.highlightSettings.enable)) {
3714
+ this.element.setAttribute('role', 'button');
3715
+ this.element.setAttribute('tabindex', this.tabIndex.toString());
3716
+ this.element.style.cursor = this.highlightSettings.enable && !this.selectionSettings.enable && !this.enableDrillDown ? 'default' : 'pointer';
3717
+ }
3718
+ else {
3719
+ this.element.setAttribute('role', 'region');
3720
+ }
3693
3721
  }
3694
3722
  /**
3695
3723
  * This method handles the window resize event on treemap.
@@ -4461,6 +4489,7 @@ class TreeMapLegend {
4461
4489
  }
4462
4490
  });
4463
4491
  }
4492
+ // eslint-disable-next-line valid-jsdoc
4464
4493
  /** @private */
4465
4494
  calculateLegendBounds() {
4466
4495
  const treemap = this.treemap;
@@ -5302,6 +5331,7 @@ class TreeMapLegend {
5302
5331
  this.translate = new Location(x, y);
5303
5332
  }
5304
5333
  }
5334
+ // eslint-disable-next-line valid-jsdoc
5305
5335
  /** @private */
5306
5336
  mouseUpHandler(e) {
5307
5337
  this.renderInteractivePointer(e);
@@ -6077,6 +6107,7 @@ class TreeMapTooltip {
6077
6107
  enable: true,
6078
6108
  header: '',
6079
6109
  data: args['data'],
6110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6080
6111
  template: args['template'],
6081
6112
  content: args['text'],
6082
6113
  shapes: [],