lightning-base-components 1.21.3-alpha → 1.21.4-alpha

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 (183) hide show
  1. package/metadata/raptor.json +49 -0
  2. package/package.json +88 -21
  3. package/scopedImports/@salesforce-label-LightningDatatable.showActions.js +1 -1
  4. package/scopedImports/@salesforce-label-LightningForm.controllerFieldsMessage.js +1 -0
  5. package/scopedImports/@salesforce-label-LightningForm.dependentFieldsHeader.js +1 -0
  6. package/scopedImports/@salesforce-label-LightningForm.dependentFieldsListHeading.js +1 -0
  7. package/scopedImports/@salesforce-label-LightningForm.generalDependentFieldsMessage.js +1 -0
  8. package/scopedImports/@salesforce-label-LightningForm.learnMore.js +1 -0
  9. package/scopedImports/@salesforce-label-LightningForm.okButton.js +1 -0
  10. package/scopedImports/@salesforce-label-LightningLookup.modalCancel.js +1 -0
  11. package/scopedImports/@salesforce-label-LightningLookup.modalSelect.js +1 -0
  12. package/scopedImports/@salesforce-label-LightningProgressIndicator.currentStage.js +1 -1
  13. package/scopedImports/@salesforce-label-LightningProgressIndicator.errorStage.js +1 -0
  14. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageComplete.js +1 -1
  15. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageNotStarted.js +1 -1
  16. package/src/lightning/avatar/avatar.html +1 -0
  17. package/src/lightning/badge/badge.html +3 -3
  18. package/src/lightning/baseCombobox/baseCombobox.html +4 -1
  19. package/src/lightning/baseCombobox/baseCombobox.js +3 -16
  20. package/src/lightning/button/__docs__/button.md +2 -1
  21. package/src/lightning/button/button.js +3 -4
  22. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +1 -0
  23. package/src/lightning/buttonIcon/buttonIcon.html +1 -1
  24. package/src/lightning/buttonIcon/buttonIcon.js +18 -17
  25. package/src/lightning/buttonMenu/buttonMenu.css +5 -0
  26. package/src/lightning/buttonMenu/buttonMenu.js +2 -0
  27. package/src/lightning/colorPickerCustom/colorPickerCustom.js +12 -0
  28. package/src/lightning/colorPickerPanel/colorPickerPanel.js +11 -1
  29. package/src/lightning/combobox/combobox.html +1 -0
  30. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.html +11 -0
  31. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.js +25 -0
  32. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/generateData.js +15 -0
  33. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/customInput.html +4 -0
  34. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/myCustomTypeDatatable.js +17 -0
  35. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/nestedSimpleComponentParent.html +7 -0
  36. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.html +9 -0
  37. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.js +6 -0
  38. package/src/lightning/datatable/autoWidthStrategy.js +8 -36
  39. package/src/lightning/datatable/columnResizer.js +51 -161
  40. package/src/lightning/datatable/columnWidthManager.js +25 -81
  41. package/src/lightning/datatable/columns.js +180 -302
  42. package/src/lightning/datatable/datatable.js +455 -441
  43. package/src/lightning/datatable/errors.js +17 -29
  44. package/src/lightning/datatable/fixedWidthStrategy.js +7 -22
  45. package/src/lightning/datatable/headerActions.js +8 -38
  46. package/src/lightning/datatable/indexes.js +42 -0
  47. package/src/lightning/datatable/infiniteLoading.js +16 -35
  48. package/src/lightning/datatable/inlineEdit.js +125 -156
  49. package/src/lightning/datatable/keyboard.js +226 -282
  50. package/src/lightning/datatable/renderManager.js +0 -4
  51. package/src/lightning/datatable/resizeObserver.js +4 -13
  52. package/src/lightning/datatable/rowLevelActions.js +2 -2
  53. package/src/lightning/datatable/rowNumber.js +21 -59
  54. package/src/lightning/datatable/rowSelection.js +95 -178
  55. package/src/lightning/datatable/rowSelectionShared.js +13 -27
  56. package/src/lightning/datatable/rows.js +171 -418
  57. package/src/lightning/datatable/sort.js +16 -75
  58. package/src/lightning/datatable/templates/div/div.html +12 -4
  59. package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +10 -16
  60. package/src/lightning/datatable/templates/table/table.html +15 -5
  61. package/src/lightning/datatable/tree.js +17 -35
  62. package/src/lightning/datatable/types.js +10 -31
  63. package/src/lightning/datatable/utils.js +49 -24
  64. package/src/lightning/datatable/virtualization.js +2 -5
  65. package/src/lightning/datatable/widthManagerShared.js +0 -20
  66. package/src/lightning/datatable/wrapText.js +29 -60
  67. package/src/lightning/dualListbox/dualListbox.js +7 -8
  68. package/src/lightning/formattedName/formattedName.js +3 -2
  69. package/src/lightning/formattedName/formattedName.js-meta.xml +3 -0
  70. package/src/lightning/formattedNumber/formattedNumber.js +3 -2
  71. package/src/lightning/formattedNumber/formattedNumber.js-meta.xml +3 -0
  72. package/src/lightning/formattedRichText/richTextConfig.js +1 -0
  73. package/src/lightning/helptext/helptext.css +7 -0
  74. package/src/lightning/helptext/helptext.js +3 -4
  75. package/src/lightning/icon/icon.html +1 -1
  76. package/src/lightning/input/input.html +5 -0
  77. package/src/lightning/inputAddress/addressFormat.js +31 -4
  78. package/src/lightning/inputAddress/fieldsLayout.js +6 -0
  79. package/src/lightning/inputAddress/inputAddress.html +19 -1
  80. package/src/lightning/inputAddress/inputAddress.js +74 -3
  81. package/src/lightning/internationalizationLibrary/address/AddressFormat.js +553 -610
  82. package/src/lightning/lookupAddress/lookupAddress.html +6 -1
  83. package/src/lightning/lookupAddress/lookupAddress.js +25 -0
  84. package/src/lightning/modal/__docs__/modal.md +10 -1
  85. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +3 -7
  86. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +39 -133
  87. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
  88. package/src/lightning/modal/modal.js +1 -1
  89. package/src/lightning/modalBase/modalBase.html +15 -10
  90. package/src/lightning/modalBase/modalBase.js +131 -146
  91. package/src/lightning/modalBody/modalBody.css +6 -0
  92. package/src/lightning/modalHeader/modalHeader.html +16 -4
  93. package/src/lightning/modalHeader/modalHeader.js +61 -14
  94. package/src/lightning/pill/link.html +1 -0
  95. package/src/lightning/pill/plain.html +1 -0
  96. package/src/lightning/pill/plainLink.html +1 -0
  97. package/src/lightning/primitiveBubble/primitiveBubble.js +42 -0
  98. package/src/lightning/primitiveDatatableCell/primitiveDatatableCell.js +1 -1
  99. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.html +1 -1
  100. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.js +13 -0
  101. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.html +19 -6
  102. package/src/lightning/primitiveHeaderFactory/sortableHeader.html +3 -1
  103. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.css +11 -0
  104. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.html +2 -1
  105. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.js +1 -0
  106. package/src/lightning/progressStep/base.html +5 -6
  107. package/src/lightning/progressStep/progressStep.js +14 -9
  108. package/src/lightning/prompt/__docs__/prompt.md +1 -1
  109. package/src/lightning/shadowBaseClassPrivate/shadowBaseClassPrivate.js +0 -2
  110. package/src/lightning/sldsCommon/sldsCommon.css +134 -98
  111. package/src/lightning/sldsUtilsAlignment/sldsUtilsAlignment.css +1 -1
  112. package/src/lightning/sldsUtilsBox/sldsUtilsBox.css +14 -13
  113. package/src/lightning/sldsUtilsGrid/sldsUtilsGrid.css +95 -92
  114. package/src/lightning/sldsUtilsHyphenation/sldsUtilsHyphenation.css +1 -1
  115. package/src/lightning/sldsUtilsMargin/sldsUtilsMargin.css +77 -75
  116. package/src/lightning/sldsUtilsPadding/sldsUtilsPadding.css +73 -73
  117. package/src/lightning/sldsUtilsSizing/sldsUtilsSizing.css +552 -558
  118. package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +2 -2
  119. package/src/lightning/staticMap/staticMap.js +3 -2
  120. package/src/lightning/tab/tab.js +6 -3
  121. package/src/lightning/tab/tab.js-meta.xml +3 -0
  122. package/src/lightning/tabBar/tabBar.js +10 -5
  123. package/src/lightning/tabset/tabset.html +2 -0
  124. package/src/lightning/tabset/tabset.js-meta.xml +3 -0
  125. package/src/lightning/textarea/textarea.js +6 -1
  126. package/src/lightning/toastContainer/__docs__/toastContainer.md +3 -2
  127. package/src/lightning/tooltipLibrary/tooltipLibrary.js +24 -15
  128. package/src/lightning/verticalNavigation/vertical-navigation.slds.css +14 -0
  129. package/src/lightning/verticalNavigation/verticalNavigation.css +1 -1
  130. package/src/lightning/verticalNavigation/verticalNavigation.html +1 -1
  131. package/src/lightning/verticalNavigation/verticalNavigation.js +66 -28
  132. package/src/lightning/verticalNavigation/verticalNavigation.js-meta.xml +3 -0
  133. package/src/lightning/verticalNavigationItem/vertical-navigation-item.slds.css +63 -0
  134. package/src/lightning/verticalNavigationItem/verticalNavigationItem.css +2 -3
  135. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js +29 -15
  136. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js-meta.xml +3 -0
  137. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.native.css +2 -0
  138. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.synthetic.css +3 -0
  139. package/src/lightning/verticalNavigationItemBadge/badge.slds.css +76 -0
  140. package/src/lightning/verticalNavigationItemBadge/vertical-navigation-item.slds.css +63 -0
  141. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.css +2 -3
  142. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.html +1 -1
  143. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js +28 -15
  144. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js-meta.xml +3 -0
  145. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.native.css +5 -0
  146. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.synthetic.css +3 -0
  147. package/src/lightning/verticalNavigationItemIcon/vertical-navigation-item.slds.css +63 -0
  148. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.css +2 -3
  149. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js +29 -15
  150. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js-meta.xml +3 -0
  151. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.native.css +3 -0
  152. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.synthetic.css +3 -0
  153. package/src/lightning/verticalNavigationOverflow/button.slds.css +503 -0
  154. package/src/lightning/verticalNavigationOverflow/vertical-navigation-item.slds.css +63 -0
  155. package/src/lightning/verticalNavigationOverflow/vertical-navigation-section.slds.css +17 -0
  156. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.css +2 -1
  157. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.html +2 -0
  158. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js +18 -13
  159. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js-meta.xml +3 -0
  160. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.lbc.native.css +5 -0
  161. package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +14 -14
  162. package/src/lightning/verticalNavigationSection/verticalNavigationSection.js-meta.xml +3 -0
  163. package/src/lightning/datatable/inlineEditShared.js +0 -26
  164. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatableWrapper/customDatatableWrapper.html +0 -0
  165. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatableWrapper/customDatatableWrapper.js +0 -0
  166. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +0 -0
  167. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.js +0 -0
  168. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeLink/customDatatypeLink.html +0 -0
  169. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeLink/customDatatypeLink.js +0 -0
  170. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.html +0 -0
  171. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.js +0 -0
  172. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html +0 -0
  173. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +0 -0
  174. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customDatatypeTable.js +0 -0
  175. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customLink.html +0 -0
  176. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customName.html +0 -0
  177. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customNumber.html +0 -0
  178. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customNumberEdit.html +0 -0
  179. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/deleteRow.html +0 -0
  180. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/iconPill.html +0 -0
  181. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/orderingButtons.html +0 -0
  182. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customNestedComponent/customNestedComponent.html +0 -0
  183. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customNestedComponent/customNestedComponent.js +0 -0
@@ -1,48 +1,25 @@
1
- import {
2
- getColumnsWidths,
3
- getResizerDefaultState,
4
- hasDefinedColumnsWidths,
5
- isTableRenderedVisible,
6
- } from './columnResizer';
1
+ import { RESIZER_DEFAULT_STATE, isTableRenderedVisible } from './columnResizer';
7
2
  import { AutoWidthStrategy } from './autoWidthStrategy';
8
3
  import { FixedWidthStrategy } from './fixedWidthStrategy';
4
+ import { getScrollerXFromScrollerY, getScrollerY } from './utils';
9
5
  import {
10
6
  getRowNumberColumnIndex,
11
7
  getAdjustedRowNumberColumnWidth,
12
8
  } from './rowNumber';
13
- import {
14
- getColumnWidth,
15
- getDomWidth,
16
- buildCSSWidthStyle,
17
- } from './widthManagerShared';
9
+ import { getColumnWidth } from './widthManagerShared';
18
10
  import { isRTL } from 'lightning/utilsPrivate';
19
11
 
20
12
  const AUTO_WIDTH_MODE = 'auto';
21
13
  const FIXED_WIDTH_MODE = 'fixed';
22
14
 
23
- const tableTypes = {
24
- default: {
25
- BASE: '.slds-table',
26
- CONTAINER: '.slds-scrollable_x',
27
- DATA_CELL: 'tbody tr:first-child td,tbody tr:first-child th',
28
- HEADER_CELL: 'thead tr th lightning-primitive-header-factory',
29
- },
30
- roleBased: {
31
- BASE: '.slds-table',
32
- CONTAINER: '.slds-scrollable_x',
33
- DATA_CELL: 'div[data-rowgroup-body] div[role="row"]:first-child div',
34
- HEADER_CELL: 'div.table-header lightning-primitive-header-factory',
35
- },
36
- };
37
-
38
15
  /**
39
16
  * Computes and updates the `widthsData` for a datatable.
40
17
  *
41
- * @param {Object} adjustedWidths The adjusted widths object
42
18
  * @param {Array} columns The column definitions
43
19
  * @param {Object} widthsData The widths data to update
20
+ * @param {Object} adjustedWidths The adjusted widths object
44
21
  */
45
- export function updateColumnWidths(adjustedWidths, columns, widthsData) {
22
+ export function updateColumnWidths(columns, widthsData, adjustedWidths) {
46
23
  const { columnWidths } = adjustedWidths;
47
24
  const { length: colCount } = columns;
48
25
  if (columnWidths.length !== colCount) {
@@ -55,8 +32,7 @@ export function updateColumnWidths(adjustedWidths, columns, widthsData) {
55
32
  const newWidth = columnWidths[colIndex];
56
33
  widthsData.columnWidths[colIndex] = newWidth;
57
34
  col.columnWidth = newWidth;
58
- col.style = buildCSSWidthStyle(newWidth);
59
-
35
+ col.style = newWidth ? `width: ${newWidth}px;` : '';
60
36
  // In RTL, we need to explicitly position the column headers.
61
37
  // We do this by providing the offset (in pixels) from the start of the table.
62
38
  if (rtl) {
@@ -76,7 +52,6 @@ export function updateColumnWidths(adjustedWidths, columns, widthsData) {
76
52
  * on `column-widths-mode`: "auto" or "fixed"
77
53
  */
78
54
  export class ColumnWidthManager {
79
- // Private variables
80
55
  columnWidthMode = FIXED_WIDTH_MODE;
81
56
  resizeObserverAvailable = typeof ResizeObserver === 'function';
82
57
 
@@ -92,11 +67,9 @@ export class ColumnWidthManager {
92
67
 
93
68
  constructor(widthsData) {
94
69
  const minColumnWidth =
95
- widthsData.minColumnWidth ||
96
- getResizerDefaultState().minColumnWidth;
70
+ widthsData.minColumnWidth || RESIZER_DEFAULT_STATE.minColumnWidth;
97
71
  const maxColumnWidth =
98
- widthsData.maxColumnWidth ||
99
- getResizerDefaultState().maxColumnWidth;
72
+ widthsData.maxColumnWidth || RESIZER_DEFAULT_STATE.maxColumnWidth;
100
73
  const fixedWidthStrategy = new FixedWidthStrategy(
101
74
  minColumnWidth,
102
75
  maxColumnWidth
@@ -163,15 +136,6 @@ export class ColumnWidthManager {
163
136
 
164
137
  /************************* HELPER FUNCTIONS **************************/
165
138
 
166
- /**
167
- * Sets the datatable's configured render mode.
168
- *
169
- * @param {String} mode Either "table" or "role-based"
170
- */
171
- setRenderMode(mode) {
172
- this._renderMode = mode;
173
- }
174
-
175
139
  /**
176
140
  * Determines if we should fire the resize event based on the previous
177
141
  * widths data and the column definition. The event is only fired when
@@ -184,8 +148,8 @@ export class ColumnWidthManager {
184
148
  */
185
149
  shouldFireResizeEvent(previousWidthsData, columns) {
186
150
  return (
187
- this._columnWidthMode === FIXED_WIDTH_MODE &&
188
- getColumnsWidths(previousWidthsData).length !== columns.length
151
+ this.columnWidthMode === FIXED_WIDTH_MODE &&
152
+ previousWidthsData.columnWidths.length !== columns.length
189
153
  );
190
154
  }
191
155
 
@@ -193,14 +157,14 @@ export class ColumnWidthManager {
193
157
  * Adjusts all the column sizes based on the supplied widths data.
194
158
  *
195
159
  * @param {Node} template The datatable template
196
- * @param {Array} columnDefs The column definitions
160
+ * @param {Array} columns The column definitions
197
161
  * @param {Object} widthsData The widths data object
198
162
  */
199
163
  adjustColumnsSize(template, columns, widthsData) {
200
164
  const {
201
- isResizingUpdateQueued,
202
- isAutoResizingUpdateQueued,
203
165
  columnWidthStrategy,
166
+ isAutoResizingUpdateQueued,
167
+ isResizingUpdateQueued,
204
168
  } = this;
205
169
  if (isResizingUpdateQueued) {
206
170
  let adjustedWidths;
@@ -217,11 +181,11 @@ export class ColumnWidthManager {
217
181
  // Otherwise update from previous widths
218
182
  adjustedWidths = {
219
183
  columnWidths: widthsData.columnWidths,
220
- expectedTableWidth: widthsData.tableWidth,
221
184
  };
222
185
  }
223
- updateColumnWidths(adjustedWidths, columns, widthsData);
186
+ updateColumnWidths(columns, widthsData, adjustedWidths);
224
187
  }
188
+
225
189
  this.isAutoResizingUpdateQueued = false;
226
190
  this.isResizingUpdateQueued = false;
227
191
  }
@@ -238,7 +202,7 @@ export class ColumnWidthManager {
238
202
  this.getDatatableInterface(template),
239
203
  columns
240
204
  );
241
- updateColumnWidths(adjustedWidths, columns, widthsData);
205
+ updateColumnWidths(columns, widthsData, adjustedWidths);
242
206
  }
243
207
 
244
208
  /**
@@ -294,13 +258,13 @@ export class ColumnWidthManager {
294
258
  */
295
259
  handleRowNumberOffsetChange(state, widthsData) {
296
260
  const colIndex = getRowNumberColumnIndex(state);
297
- if (colIndex > -1) {
261
+ if (colIndex !== -1) {
298
262
  const { columns } = state;
299
263
  const col = columns[colIndex];
300
264
  const newWidth = getAdjustedRowNumberColumnWidth(state);
301
265
  if (col.initialWidth !== newWidth) {
302
266
  col.initialWidth = Math.max(newWidth, col.minWidth);
303
- if (hasDefinedColumnsWidths(widthsData)) {
267
+ if (widthsData.columnWidths.length > 0) {
304
268
  // When columns are resized with the resizer, a horizontal scroller appears.
305
269
  // Adjusting the columns size will respect widths already set and try to fit this column.
306
270
  this.isResizingUpdateQueued = true;
@@ -357,7 +321,7 @@ export class ColumnWidthManager {
357
321
  }
358
322
 
359
323
  /**
360
- * Evalutes if there is a change between two sets of data.
324
+ * Evaluates if there is a change between two sets of data.
361
325
  *
362
326
  * @param {Array} previousData An array of previous data
363
327
  * @param {Array} newData An array of new data
@@ -381,7 +345,7 @@ export class ColumnWidthManager {
381
345
  * @returns {Boolean} Whether the column should resize with an update
382
346
  */
383
347
  shouldResizeWithUpdate(template, widthsData) {
384
- if (hasDefinedColumnsWidths(widthsData)) {
348
+ if (widthsData.columnWidths.length > 0) {
385
349
  // Can resize from DOM when table is visible.
386
350
  // Otherwise, only when `ResizeObserver` is available in browser.
387
351
  return (
@@ -391,19 +355,6 @@ export class ColumnWidthManager {
391
355
  return true;
392
356
  }
393
357
 
394
- /**
395
- * @private
396
- * Determines the appropriate selectors to use based on the datatable render mode.
397
- *
398
- * @returns {Object} Selectors based on datatable render mode
399
- */
400
- _getTableSelectors() {
401
- if (this._renderMode === 'role-based') {
402
- return tableTypes.roleBased;
403
- }
404
- return tableTypes.default;
405
- }
406
-
407
358
  /**
408
359
  * Retrieves the datatable interface from the DOM
409
360
  *
@@ -411,17 +362,14 @@ export class ColumnWidthManager {
411
362
  * @returns {Object} The datatable interface
412
363
  */
413
364
  getDatatableInterface(template) {
414
- const datatableSelectors = this._getTableSelectors();
415
365
  return {
416
366
  getAvailableWidthFromDom() {
417
- const container = template.querySelector(
418
- datatableSelectors.CONTAINER
419
- );
420
- return getDomWidth(container);
367
+ const scrollerY = getScrollerY(template);
368
+ return getScrollerXFromScrollerY(scrollerY).offsetWidth;
421
369
  },
422
370
  getDataCellWidths() {
423
371
  const cellElements = template.querySelectorAll(
424
- datatableSelectors.DATA_CELL
372
+ '[data-rowgroup-body] [role="row"]:first-child > *'
425
373
  );
426
374
  const { length } = cellElements;
427
375
  const result = Array(length);
@@ -432,7 +380,7 @@ export class ColumnWidthManager {
432
380
  },
433
381
  getHeaderCellWidths() {
434
382
  const headerElements = template.querySelectorAll(
435
- datatableSelectors.HEADER_CELL
383
+ '[role="columnheader"] lightning-primitive-header-factory'
436
384
  );
437
385
  const result = [];
438
386
  for (let i = 0; i < headerElements.length; i += 1) {
@@ -444,11 +392,7 @@ export class ColumnWidthManager {
444
392
  return result;
445
393
  },
446
394
  getTableElementWidth() {
447
- const tableElement =
448
- template.querySelector(datatableSelectors.BASE) ||
449
- template.querySelector('[role="grid"]') ||
450
- template.querySelector('[role="treegrid"]');
451
- return getDomWidth(tableElement);
395
+ return template.querySelector('.slds-table').offsetWidth;
452
396
  },
453
397
  };
454
398
  }