@syncfusion/ej2-gantt 22.1.34 → 22.1.37

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.
@@ -1528,6 +1528,7 @@ class DateProcessor {
1528
1528
  setValue('minStartDate', minStartDate, editArgs);
1529
1529
  setValue('maxEndDate', maxEndDate, editArgs);
1530
1530
  }
1531
+ this.parent['isProjectDateUpdated'] = true;
1531
1532
  }
1532
1533
  /**
1533
1534
  *
@@ -2070,7 +2071,7 @@ class TaskProcessor extends DateProcessor {
2070
2071
  endDate = this.getEndDate(startDate, duration, data.ganttProperties.durationUnit, data.ganttProperties, false);
2071
2072
  }
2072
2073
  else if (!taskSettings.duration && taskSettings.endDate) {
2073
- endDate = (!isNullOrUndefined(data.ganttProperties.endDate)) && endDate.getTime() >
2074
+ endDate = (!isNullOrUndefined(data.ganttProperties.endDate)) && endDate.getTime() <
2074
2075
  data.ganttProperties.endDate.getTime() && i !== segments.length - 1 ? endDate : data.ganttProperties.endDate;
2075
2076
  duration = this.getDuration(startDate, endDate, data.ganttProperties.durationUnit, data.ganttProperties.isAutoSchedule, data.ganttProperties.isMilestone);
2076
2077
  if (ganttSegments.length > 0 && endDate.getTime() < startDate.getTime()
@@ -2713,38 +2714,59 @@ class TaskProcessor extends DateProcessor {
2713
2714
  modifiedsDate = new Date(modifiedsDate.getTime() + ganttData.duration * 60 * 60 * 1000);
2714
2715
  }
2715
2716
  if (ganttData && ganttData.durationUnit == 'minute') {
2716
- modifiedsDate = new Date(modifiedsDate.getTime() + ganttData.duration * 60 * 60 * 60 * 1000);
2717
+ modifiedsDate = new Date(modifiedsDate.getTime() + ganttData.duration * 60 * 1000);
2717
2718
  }
2718
2719
  for (let i = 0; i < this.parent.dayWorkingTime.length; i++) {
2719
2720
  hour = hour + this.parent.dayWorkingTime[i].to - this.parent.dayWorkingTime[i].from;
2720
2721
  }
2721
2722
  let dateDiff = modifiedsDate.getTime() - sDate.getTime();
2722
- if (tierMode === 'Day') {
2723
- if ((Math.floor((dateDiff / (1000 * 60 * 60)) % 24) >= hour || dateDiff === 0)) {
2724
- isValid = true;
2723
+ if (ganttData && ganttData.durationUnit == 'minute' && ganttData.duration < (hour * 60)) {
2724
+ if (tierMode === 'Day') {
2725
+ if ((Math.floor((dateDiff / (1000 * 60 * 60)) % 24) >= hour || dateDiff === 0)) {
2726
+ isValid = true;
2727
+ }
2728
+ if (this.getSecondsInDecimal(sDate) === this.parent.defaultStartTime && isValid) {
2729
+ sDate.setHours(0, 0, 0, 0);
2730
+ }
2731
+ if (this.getSecondsInDecimal(eDate) === this.parent.defaultEndTime) {
2732
+ eDate.setHours(24);
2733
+ }
2734
+ if (this.getSecondsInDecimal(eDate) === this.parent.defaultStartTime) {
2735
+ eDate.setHours(0, 0, 0, 0);
2736
+ }
2725
2737
  }
2726
- if (this.getSecondsInDecimal(sDate) === this.parent.defaultStartTime && isValid) {
2727
- sDate.setHours(0, 0, 0, 0);
2738
+ else {
2739
+ isValid = true;
2728
2740
  }
2729
- if (this.getSecondsInDecimal(eDate) === this.parent.defaultEndTime) {
2730
- eDate.setHours(24);
2741
+ if ((sDate).getTime() === (eDate).getTime()) {
2742
+ return (this.parent.perDayWidth);
2731
2743
  }
2732
- if (this.getSecondsInDecimal(eDate) === this.parent.defaultStartTime) {
2733
- eDate.setHours(0, 0, 0, 0);
2744
+ else {
2745
+ if (isValid) {
2746
+ return ((this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * 24)) * this.parent.perDayWidth);
2747
+ }
2748
+ else {
2749
+ return ((this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * hour)) * this.parent.perDayWidth);
2750
+ }
2734
2751
  }
2735
2752
  }
2736
2753
  else {
2737
- isValid = true;
2738
- }
2739
- if ((sDate).getTime() === (eDate).getTime()) {
2740
- return (this.parent.perDayWidth);
2741
- }
2742
- else {
2743
- if (isValid) {
2744
- return ((this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * 24)) * this.parent.perDayWidth);
2754
+ if (tierMode === 'Day') {
2755
+ if (this.getSecondsInDecimal(sDate) === this.parent.defaultStartTime) {
2756
+ sDate.setHours(0, 0, 0, 0);
2757
+ }
2758
+ if (this.getSecondsInDecimal(eDate) === this.parent.defaultEndTime) {
2759
+ eDate.setHours(24);
2760
+ }
2761
+ if (this.getSecondsInDecimal(eDate) === this.parent.defaultStartTime) {
2762
+ eDate.setHours(0, 0, 0, 0);
2763
+ }
2764
+ }
2765
+ if ((sDate).getTime() === (eDate).getTime()) {
2766
+ return (this.parent.perDayWidth);
2745
2767
  }
2746
2768
  else {
2747
- return ((this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * hour)) * this.parent.perDayWidth);
2769
+ return ((this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * 24)) * this.parent.perDayWidth);
2748
2770
  }
2749
2771
  }
2750
2772
  }
@@ -4465,9 +4487,9 @@ class GanttChart {
4465
4487
  }
4466
4488
  }
4467
4489
  }
4468
- if (this.parent.enableCriticalPath) {
4469
- let crtiticalModule = this.parent.criticalPathModule;
4470
- this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
4490
+ let criticalModule = this.parent.criticalPathModule;
4491
+ if (this.parent.enableCriticalPath && criticalModule && criticalModule.criticalPathCollection) {
4492
+ this.parent.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, criticalModule.predecessorCollectionTaskIds);
4471
4493
  }
4472
4494
  if (this.parent.viewType === 'ResourceView' && this.parent.showOverAllocation) {
4473
4495
  this.renderOverAllocationContainer();
@@ -5066,8 +5088,8 @@ class GanttChart {
5066
5088
  this.parent.updatedConnectorLineCollection = [];
5067
5089
  this.parent.predecessorModule.createConnectorLinesCollection();
5068
5090
  this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
5069
- if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
5070
- const criticalModule = this.parent.criticalPathModule;
5091
+ const criticalModule = this.parent.criticalPathModule;
5092
+ if (this.parent.enableCriticalPath && criticalModule && criticalModule.criticalPathCollection) {
5071
5093
  criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
5072
5094
  }
5073
5095
  }
@@ -5894,6 +5916,9 @@ class Timeline {
5894
5916
  */
5895
5917
  processZooming(isZoomIn) {
5896
5918
  this.isZoomToFit = false;
5919
+ if (!this.parent['isProjectDateUpdated']) {
5920
+ this.parent.dateValidationModule.calculateProjectDates();
5921
+ }
5897
5922
  if (!isNullOrUndefined(this.parent.zoomingProjectStartDate)) {
5898
5923
  this.parent.cloneProjectStartDate = this.parent.cloneProjectStartDate.getTime() < this.parent.zoomingProjectStartDate.getTime()
5899
5924
  ? this.parent.cloneProjectStartDate : this.parent.zoomingProjectStartDate;
@@ -6011,10 +6036,10 @@ class Timeline {
6011
6036
  this.parent.zoomingProjectStartDate = this.parent.cloneProjectStartDate;
6012
6037
  this.parent.zoomingProjectEndDate = this.parent.cloneProjectEndDate;
6013
6038
  }
6014
- this.parent.dataOperation.calculateProjectDates();
6015
6039
  if (this.parent.zoomingProjectStartDate > this.parent.cloneProjectStartDate) {
6016
6040
  this.parent.cloneProjectStartDate = new Date(this.parent.allowUnscheduledTasks ? this.parent.zoomingProjectStartDate : this.parent.cloneProjectStartDate);
6017
6041
  }
6042
+ this.parent.dataOperation.calculateProjectDates();
6018
6043
  const timeDifference = (this.parent.cloneProjectEndDate.getTime() - this.parent.cloneProjectStartDate.getTime());
6019
6044
  const totalDays = (timeDifference / (1000 * 3600 * 24));
6020
6045
  const chartWidth = this.parent.ganttChartModule.chartElement.offsetWidth;
@@ -7455,6 +7480,9 @@ class GanttTreeGrid {
7455
7480
  const root = 'root';
7456
7481
  this.parent.treeGrid[root] = this.parent[root] ? this.parent[root] : this.parent;
7457
7482
  this.parent.treeGrid.appendTo(this.treeGridElement);
7483
+ if (this.parent.treeGrid.grid && this.parent.toolbarModule && this.parent.isReact) {
7484
+ this.parent.treeGrid.grid.portals = this.parent.portals;
7485
+ }
7458
7486
  this.wireEvents();
7459
7487
  }
7460
7488
  composeProperties() {
@@ -7892,7 +7920,9 @@ class GanttTreeGrid {
7892
7920
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
7893
7921
  column.format = column.format ? column.format : { type: 'date', format: this.parent.getDateFormat() };
7894
7922
  column.width = column.width ? column.width : 150;
7895
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
7923
+ if (!column.edit || (column.edit && !column.edit.create)) {
7924
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
7925
+ }
7896
7926
  }
7897
7927
  else if (taskSettings.endDate === column.field) {
7898
7928
  if (this.parent.isLocaleChanged && previousColumn) {
@@ -7905,7 +7935,9 @@ class GanttTreeGrid {
7905
7935
  column.editType = column.editType ? column.editType :
7906
7936
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
7907
7937
  column.width = column.width ? column.width : 150;
7908
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
7938
+ if (!column.edit || (column.edit && !column.edit.create)) {
7939
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
7940
+ }
7909
7941
  }
7910
7942
  else if (taskSettings.duration === column.field) {
7911
7943
  column.width = column.width ? column.width : 150;
@@ -9527,7 +9559,7 @@ class ChartRows extends DateProcessor {
9527
9559
  if (this.taskLabelTemplateFunction) {
9528
9560
  const parentTaskLabelNode = this.taskLabelTemplateFunction(extend({ index: i }, data), this.parent, 'TaskLabelTemplate', this.getTemplateID('TaskLabelTemplate'), false, undefined, progressBarInnerDiv[0]);
9529
9561
  if (parentTaskLabelNode && parentTaskLabelNode.length > 0) {
9530
- div.appendChild(parentTaskLabelNode[0]);
9562
+ append(parentTaskLabelNode, div);
9531
9563
  labelString = div.innerHTML;
9532
9564
  }
9533
9565
  }
@@ -10115,7 +10147,7 @@ class ChartRows extends DateProcessor {
10115
10147
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
10116
10148
  this.templateData.ganttProperties.baselineEndDate) {
10117
10149
  taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
10118
- && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
10150
+ && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.getTime() === this.templateData.ganttProperties.endDate.getTime())) &&
10119
10151
  this.templateData.ganttProperties.isMilestone))
10120
10152
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
10121
10153
  }
@@ -10128,7 +10160,7 @@ class ChartRows extends DateProcessor {
10128
10160
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
10129
10161
  this.templateData.ganttProperties.baselineEndDate) {
10130
10162
  taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
10131
- && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
10163
+ && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.getTime() === this.templateData.ganttProperties.endDate.getTime())) &&
10132
10164
  this.templateData.ganttProperties.isMilestone))
10133
10165
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
10134
10166
  }
@@ -10176,7 +10208,7 @@ class ChartRows extends DateProcessor {
10176
10208
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
10177
10209
  this.templateData.ganttProperties.baselineEndDate) {
10178
10210
  taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
10179
- && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
10211
+ && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.getTime() === this.templateData.ganttProperties.endDate.getTime())) &&
10180
10212
  this.templateData.ganttProperties.isMilestone))
10181
10213
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
10182
10214
  }
@@ -12551,6 +12583,7 @@ class Splitter$1 {
12551
12583
  this.parent.splitterElement = createElement('div', { className: splitter });
12552
12584
  this.parent.treeGridPane = createElement('div', { className: treeGridPane });
12553
12585
  this.parent.chartPane = createElement('div', { className: ganttChartPane });
12586
+ addClass([this.parent.chartPane], 'e-droppable');
12554
12587
  if (this.parent.enableRtl) {
12555
12588
  this.parent.splitterElement.appendChild(this.parent.chartPane);
12556
12589
  this.parent.splitterElement.appendChild(this.parent.treeGridPane);
@@ -12801,7 +12834,11 @@ class Tooltip$1 {
12801
12834
  if (parent.tooltipSettings.taskbar) {
12802
12835
  taskbarTemplateNode = parent.tooltipModule.templateCompiler(parent.tooltipSettings.taskbar, parent, data, 'TooltipTaskbarTemplate');
12803
12836
  }
12804
- argsData.content = this.toolTipObj.content = taskbarTemplateNode ? taskbarTemplateNode[0] :
12837
+ let tooltipTemplate = document.createElement('div');
12838
+ if (taskbarTemplateNode) {
12839
+ append(taskbarTemplateNode, tooltipTemplate);
12840
+ }
12841
+ argsData.content = this.toolTipObj.content = taskbarTemplateNode ? tooltipTemplate :
12805
12842
  parent.tooltipModule.getTooltipContent((data.ganttProperties.isMilestone ? 'milestone' : 'taskbar'), data, parent, args);
12806
12843
  }
12807
12844
  else if (args.target.classList.contains('e-baseline-bar') ||
@@ -12810,7 +12847,11 @@ class Tooltip$1 {
12810
12847
  if ((parent.tooltipSettings.baseline)) {
12811
12848
  baseLineTemplateNode = parent.tooltipModule.templateCompiler(parent.tooltipSettings.baseline, parent, data, 'TooltipBaselineTemplate');
12812
12849
  }
12813
- argsData.content = this.toolTipObj.content = baseLineTemplateNode ? baseLineTemplateNode[0] :
12850
+ let baselineTemplate = document.createElement('div');
12851
+ if (baseLineTemplateNode) {
12852
+ append(baseLineTemplateNode, baselineTemplate);
12853
+ }
12854
+ argsData.content = this.toolTipObj.content = baseLineTemplateNode ? baselineTemplate :
12814
12855
  parent.tooltipModule.getTooltipContent((data.ganttProperties.isMilestone ? 'milestone' : 'baseline'), data, parent, args);
12815
12856
  }
12816
12857
  else if (args.target.classList.contains('e-event-markers')) {
@@ -14339,8 +14380,8 @@ let Gantt = class Gantt extends Component {
14339
14380
  this.updateRowHeightInConnectorLine(this.updatedConnectorLineCollection);
14340
14381
  this.connectorLineModule.renderConnectorLines(this.updatedConnectorLineCollection);
14341
14382
  }
14342
- if (this.enableCriticalPath) {
14343
- let criticalModule = this.criticalPathModule;
14383
+ let criticalModule = this.criticalPathModule;
14384
+ if (this.enableCriticalPath && criticalModule && criticalModule.criticalPathCollection) {
14344
14385
  this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
14345
14386
  }
14346
14387
  }
@@ -14777,8 +14818,8 @@ let Gantt = class Gantt extends Component {
14777
14818
  document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children[j].children[0].setAttribute('tabindex', '-1');
14778
14819
  }
14779
14820
  }
14780
- if (this.enableCriticalPath && this.criticalPathModule) {
14781
- let criticalModule = this.criticalPathModule;
14821
+ let criticalModule = this.criticalPathModule;
14822
+ if (this.enableCriticalPath && criticalModule && criticalModule.criticalPathCollection) {
14782
14823
  this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
14783
14824
  }
14784
14825
  this.initialChartRowElements = this.ganttChartModule.getChartRows();
@@ -14880,7 +14921,9 @@ let Gantt = class Gantt extends Component {
14880
14921
  if (this.enableCriticalPath && this.criticalPathModule) {
14881
14922
  this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
14882
14923
  let criticalModule = this.criticalPathModule;
14883
- this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
14924
+ if (criticalModule.criticalPathCollection) {
14925
+ this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
14926
+ }
14884
14927
  }
14885
14928
  else {
14886
14929
  this.removeCriticalPathStyles();
@@ -19817,6 +19860,7 @@ class TaskbarEdit extends DateProcessor {
19817
19860
  }
19818
19861
  }
19819
19862
  }
19863
+ this.parent['isProjectDateUpdated'] = false;
19820
19864
  }
19821
19865
  /**
19822
19866
  * To cancel the taskbar edt action.
@@ -28374,6 +28418,7 @@ class Selection$1 {
28374
28418
  */
28375
28419
  mouseUpHandler(e) {
28376
28420
  let isTaskbarEdited = false;
28421
+ var elements = document.querySelectorAll('.e-drag-item');
28377
28422
  let targetElement = null;
28378
28423
  if (e.target.closest('.e-rowcell')) {
28379
28424
  targetElement = e.target;
@@ -28391,7 +28436,7 @@ class Selection$1 {
28391
28436
  isTaskbarEdited = true;
28392
28437
  }
28393
28438
  }
28394
- if (!isTaskbarEdited && this.parent.element.contains(e.target)) {
28439
+ if (!isTaskbarEdited && this.parent.element.contains(e.target) && !(elements.length === 1)) {
28395
28440
  const parent = parentsUntil(e.target, 'e-chart-row');
28396
28441
  const isSelected = e.target.classList.contains('e-rowcell') ||
28397
28442
  e.target.classList.contains('e-row') ||
@@ -28541,6 +28586,12 @@ class Toolbar$3 {
28541
28586
  this.createToolbar();
28542
28587
  }
28543
28588
  }
28589
+ addReactToolbarPortals(args) {
28590
+ if (this.parent.isReact && args) {
28591
+ this.parent.portals = this.parent.portals.concat(args);
28592
+ this.parent.renderTemplates();
28593
+ }
28594
+ }
28544
28595
  createToolbar() {
28545
28596
  const items = this.getItems();
28546
28597
  this.toolbar = new Toolbar$1({
@@ -28550,6 +28601,8 @@ class Toolbar$3 {
28550
28601
  height: this.parent.isAdaptive ? 48 : 'auto'
28551
28602
  });
28552
28603
  this.toolbar.isStringTemplate = true;
28604
+ this.toolbar.isReact = this.parent.isReact;
28605
+ this.toolbar.on('render-react-toolbar-template', this.addReactToolbarPortals, this);
28553
28606
  this.toolbar.appendTo(this.element);
28554
28607
  const cancelItem = this.element.querySelector('#' + this.parent.element.id + '_cancel');
28555
28608
  const updateItem = this.element.querySelector('#' + this.parent.element.id + '_update');
@@ -28962,6 +29015,7 @@ class Toolbar$3 {
28962
29015
  if (this.parent.isDestroyed) {
28963
29016
  return;
28964
29017
  }
29018
+ this.toolbar.off('render-react-toolbar-template', this.addReactToolbarPortals);
28965
29019
  this.toolbar.destroy();
28966
29020
  if (this.parent.filterModule) {
28967
29021
  this.unWireEvent();