lightning-base-components 1.13.6-alpha → 1.13.10-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 (189) hide show
  1. package/metadata/raptor.json +104 -2
  2. package/package.json +37 -1
  3. package/scopedImports/@salesforce-label-LightningAlert.defaultLabel.js +1 -0
  4. package/scopedImports/@salesforce-label-LightningConfirm.defaultLabel.js +1 -0
  5. package/scopedImports/@salesforce-label-LightningDateTimePicker.selectDateFor.js +1 -0
  6. package/scopedImports/@salesforce-label-LightningInteractiveDialogBase.cancel.js +1 -0
  7. package/scopedImports/@salesforce-label-LightningInteractiveDialogBase.ok.js +1 -0
  8. package/scopedImports/@salesforce-label-LightningLookup.recentItems.js +1 -0
  9. package/scopedImports/@salesforce-label-LightningModalBase.close.js +1 -0
  10. package/scopedImports/@salesforce-label-LightningModalBase.waitstate.js +1 -0
  11. package/scopedImports/@salesforce-label-LightningPrompt.defaultLabel.js +1 -0
  12. package/src/lightning/baseCombobox/baseCombobox.html +50 -24
  13. package/src/lightning/baseCombobox/baseCombobox.js +53 -28
  14. package/src/lightning/card/card.html +7 -1
  15. package/src/lightning/card/card.js +30 -2
  16. package/src/lightning/card/utils.js +14 -0
  17. package/src/lightning/combobox/combobox.css +12 -0
  18. package/src/lightning/combobox/combobox.html +1 -0
  19. package/src/lightning/datatable/__docs__/datatable.md +40 -13
  20. package/src/lightning/datatable/columnWidthManager.js +8 -4
  21. package/src/lightning/datatable/columns-shared.js +8 -7
  22. package/src/lightning/datatable/columns.js +38 -4
  23. package/src/lightning/datatable/datatable.js +932 -727
  24. package/src/lightning/datatable/datatableResizeObserver.js +1 -1
  25. package/src/lightning/datatable/inlineEdit.js +15 -3
  26. package/src/lightning/datatable/keyboard.js +1078 -935
  27. package/src/lightning/datatable/resizer.js +92 -109
  28. package/src/lightning/datatable/rows.js +245 -59
  29. package/src/lightning/datatable/sort.js +83 -28
  30. package/src/lightning/datatable/{normalizer.js → state.js} +16 -28
  31. package/src/lightning/datatable/templates/div/div.css +53 -0
  32. package/src/lightning/datatable/templates/div/div.html +272 -0
  33. package/src/lightning/datatable/{datatable.css → templates/table/table.css} +0 -0
  34. package/src/lightning/datatable/templates/table/table.html +260 -0
  35. package/src/lightning/datatable/widthManagerShared.js +1 -1
  36. package/src/lightning/datepicker/datepicker.html +3 -3
  37. package/src/lightning/datepicker/datepicker.js +6 -2
  38. package/src/lightning/datetimepicker/datetimepicker.html +3 -4
  39. package/src/lightning/datetimepicker/datetimepicker.js +0 -2
  40. package/src/lightning/formattedRichText/__docs__/formattedRichText.md +1 -0
  41. package/src/lightning/helptext/helptext.js +8 -0
  42. package/src/lightning/iconSvgTemplates/buildTemplates/standard/asset_audit.html +7 -0
  43. package/src/lightning/iconSvgTemplates/buildTemplates/standard/attach.html +7 -0
  44. package/src/lightning/iconSvgTemplates/buildTemplates/standard/contract_payment.html +10 -0
  45. package/src/lightning/iconSvgTemplates/buildTemplates/standard/field_sales.html +8 -0
  46. package/src/lightning/iconSvgTemplates/buildTemplates/standard/historical_adherence.html +9 -0
  47. package/src/lightning/iconSvgTemplates/buildTemplates/standard/med_rec_recommendation.html +8 -0
  48. package/src/lightning/iconSvgTemplates/buildTemplates/standard/med_rec_statement_recommendation.html +7 -0
  49. package/src/lightning/iconSvgTemplates/buildTemplates/standard/medication_dispense.html +11 -0
  50. package/src/lightning/iconSvgTemplates/buildTemplates/standard/medication_reconciliation.html +7 -0
  51. package/src/lightning/iconSvgTemplates/buildTemplates/standard/report_type.html +9 -0
  52. package/src/lightning/iconSvgTemplates/buildTemplates/standard/story.html +2 -4
  53. package/src/lightning/iconSvgTemplates/buildTemplates/standard/tour.html +9 -0
  54. package/src/lightning/iconSvgTemplates/buildTemplates/standard/tour_check.html +8 -0
  55. package/src/lightning/iconSvgTemplates/buildTemplates/standard/travel_mode.html +2 -2
  56. package/src/lightning/iconSvgTemplates/buildTemplates/standard/unified_health_score.html +7 -0
  57. package/src/lightning/iconSvgTemplates/buildTemplates/standard/workforce_engagement.html +8 -0
  58. package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +26 -1
  59. package/src/lightning/iconSvgTemplates/buildTemplates/utility/asset_audit.html +9 -0
  60. package/src/lightning/iconSvgTemplates/buildTemplates/utility/collection_alt.html +8 -0
  61. package/src/lightning/iconSvgTemplates/buildTemplates/utility/contract_doc.html +8 -0
  62. package/src/lightning/iconSvgTemplates/buildTemplates/utility/contract_payment.html +10 -0
  63. package/src/lightning/iconSvgTemplates/buildTemplates/utility/einstein.html +2 -1
  64. package/src/lightning/iconSvgTemplates/buildTemplates/utility/entitlement.html +7 -0
  65. package/src/lightning/iconSvgTemplates/buildTemplates/utility/field_sales.html +8 -0
  66. package/src/lightning/iconSvgTemplates/buildTemplates/utility/signature.html +9 -0
  67. package/src/lightning/iconSvgTemplates/buildTemplates/utility/tour.html +9 -0
  68. package/src/lightning/iconSvgTemplates/buildTemplates/utility/tour_check.html +8 -0
  69. package/src/lightning/iconSvgTemplates/buildTemplates/utility/truck.html +10 -0
  70. package/src/lightning/iconSvgTemplates/buildTemplates/utility/workforce_engagement.html +8 -0
  71. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/asset_audit.html +7 -0
  72. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/attach.html +7 -0
  73. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/contract_payment.html +10 -0
  74. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/field_sales.html +8 -0
  75. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/historical_adherence.html +9 -0
  76. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/med_rec_recommendation.html +8 -0
  77. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/med_rec_statement_recommendation.html +7 -0
  78. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/medication_dispense.html +11 -0
  79. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/medication_reconciliation.html +7 -0
  80. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/report_type.html +9 -0
  81. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/story.html +2 -4
  82. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tour.html +9 -0
  83. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tour_check.html +8 -0
  84. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/travel_mode.html +2 -2
  85. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/unified_health_score.html +7 -0
  86. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/workforce_engagement.html +8 -0
  87. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +26 -1
  88. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/asset_audit.html +9 -0
  89. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/collection_alt.html +8 -0
  90. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/contract_doc.html +8 -0
  91. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/contract_payment.html +10 -0
  92. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/einstein.html +2 -1
  93. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/entitlement.html +7 -0
  94. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/field_sales.html +8 -0
  95. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/signature.html +9 -0
  96. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tour.html +9 -0
  97. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tour_check.html +8 -0
  98. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/truck.html +10 -0
  99. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/workforce_engagement.html +8 -0
  100. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/asset_audit.html +7 -0
  101. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/attach.html +7 -0
  102. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/contract_payment.html +10 -0
  103. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/field_sales.html +8 -0
  104. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/historical_adherence.html +9 -0
  105. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/med_rec_recommendation.html +8 -0
  106. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/med_rec_statement_recommendation.html +7 -0
  107. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/medication_dispense.html +11 -0
  108. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/medication_reconciliation.html +7 -0
  109. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/report_type.html +9 -0
  110. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/story.html +2 -4
  111. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tour.html +9 -0
  112. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tour_check.html +8 -0
  113. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/travel_mode.html +2 -2
  114. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/unified_health_score.html +7 -0
  115. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/workforce_engagement.html +8 -0
  116. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +15 -1
  117. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/asset_audit.html +7 -0
  118. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/attach.html +7 -0
  119. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/contract_payment.html +10 -0
  120. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/field_sales.html +8 -0
  121. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/historical_adherence.html +9 -0
  122. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/med_rec_recommendation.html +8 -0
  123. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/med_rec_statement_recommendation.html +7 -0
  124. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/medication_dispense.html +11 -0
  125. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/medication_reconciliation.html +7 -0
  126. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/report_type.html +9 -0
  127. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/story.html +2 -4
  128. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tour.html +9 -0
  129. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tour_check.html +8 -0
  130. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/travel_mode.html +2 -2
  131. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/unified_health_score.html +7 -0
  132. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/workforce_engagement.html +8 -0
  133. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +15 -1
  134. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +12 -1
  135. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/asset_audit.html +9 -0
  136. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/collection_alt.html +8 -0
  137. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/contract_doc.html +8 -0
  138. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/contract_payment.html +10 -0
  139. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/einstein.html +2 -1
  140. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/entitlement.html +7 -0
  141. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/field_sales.html +8 -0
  142. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/signature.html +9 -0
  143. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tour.html +9 -0
  144. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tour_check.html +8 -0
  145. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/truck.html +10 -0
  146. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/workforce_engagement.html +8 -0
  147. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +12 -1
  148. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/asset_audit.html +9 -0
  149. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/collection_alt.html +8 -0
  150. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/contract_doc.html +8 -0
  151. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/contract_payment.html +10 -0
  152. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/einstein.html +2 -1
  153. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/entitlement.html +7 -0
  154. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/field_sales.html +8 -0
  155. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/signature.html +9 -0
  156. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tour.html +9 -0
  157. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tour_check.html +8 -0
  158. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/truck.html +10 -0
  159. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/workforce_engagement.html +8 -0
  160. package/src/lightning/input/__docs__/input.md +4 -0
  161. package/src/lightning/input/input.js +11 -6
  162. package/src/lightning/pill/link.html +1 -1
  163. package/src/lightning/pill/pill.js +18 -0
  164. package/src/lightning/pill/plainLink.html +2 -0
  165. package/src/lightning/pillContainer/barePillContainer.html +5 -5
  166. package/src/lightning/pillContainer/pillContainer.js +5 -4
  167. package/src/lightning/pillContainer/standardPillContainer.html +5 -5
  168. package/src/lightning/positionLibrary/__component__/positionLibraryBounding.spec.js +8 -6
  169. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.html +1 -1
  170. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.js +6 -9
  171. package/src/lightning/positionLibrary/direction.js +17 -5
  172. package/src/lightning/primitiveDatatableIeditPanel/primitiveDatatableIeditPanel.js +20 -0
  173. package/src/lightning/primitiveDatatableIeditTypeFactory/primitiveDatatableIeditTypeFactory.js +10 -0
  174. package/src/lightning/primitiveDatatableStatusBar/primitiveDatatableStatusBar.js +17 -3
  175. package/src/lightning/primitiveDatatableTooltip/primitiveDatatableTooltip.js +1 -0
  176. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.html +5 -4
  177. package/src/lightning/primitiveHeaderFactory/primitiveHeaderFactory.js +255 -94
  178. package/src/lightning/primitiveHeaderFactory/selectableHeader.html +25 -23
  179. package/src/lightning/primitiveHeaderFactory/sortableHeader.html +13 -9
  180. package/src/lightning/progressIndicator/progressIndicator.js +30 -9
  181. package/src/lightning/progressRing/progressRing.html +6 -0
  182. package/src/lightning/progressRing/progressRing.js +98 -3
  183. package/src/lightning/progressStep/progressStep.js +6 -3
  184. package/src/lightning/timepicker/timepicker.html +1 -0
  185. package/src/lightning/utilsPrivate/aria.js +30 -0
  186. package/src/lightning/utilsPrivate/contentMutation.js +24 -2
  187. package/src/lightning/utilsPrivate/utilsPrivate.js +1 -1
  188. package/src/lightning/datatable/datatable.html +0 -237
  189. package/src/lightning/datatable/keys.js +0 -32
@@ -1,10 +1,11 @@
1
1
  import { normalizeBoolean, isRTL } from 'lightning/utilsPrivate';
2
- import { isCustomerColumn } from './columns-shared';
2
+ import { isCustomerColumn } from './columns';
3
3
  import { clamp, normalizeNumberAttribute } from './utils';
4
+ import { buildCSSWidthStyle } from './widthManagerShared';
4
5
 
5
6
  /**
6
- * It return the default portion of state use it for the resizer
7
- * @returns {{resizer: {columnWidths: Array}}} - resizer default state
7
+ * Returns the default state/values of the resizer metadata
8
+ * @returns {Object} - resizer default state
8
9
  */
9
10
  export function getResizerDefaultState() {
10
11
  return {
@@ -18,13 +19,9 @@ export function getResizerDefaultState() {
18
19
  };
19
20
  }
20
21
 
21
- // *******************************
22
- // states Getters/Setters
23
- // *******************************
22
+ /***************** GETTERS / SETTERS for Resizer Metadata (widthsData) *****************/
24
23
 
25
- /**
26
- * resizeColumnDisabled
27
- */
24
+ /************* resizeColumnDisabled *************/
28
25
 
29
26
  export function isResizeColumnDisabled(widthsData) {
30
27
  return widthsData.resizeColumnDisabled;
@@ -33,9 +30,11 @@ export function setResizeColumnDisabled(widthsData, value) {
33
30
  widthsData.resizeColumnDisabled = normalizeBoolean(value);
34
31
  }
35
32
 
36
- /**
37
- * resizeStep
38
- */
33
+ /************* resizeStep *************/
34
+
35
+ export function getResizeStep(widthsData) {
36
+ return widthsData.resizeStep;
37
+ }
39
38
 
40
39
  export function setResizeStep(widthsData, value) {
41
40
  widthsData.resizeStep = normalizeNumberAttribute(
@@ -45,24 +44,11 @@ export function setResizeStep(widthsData, value) {
45
44
  getResizerDefaultState().resizeStep
46
45
  );
47
46
  }
48
- export function getResizeStep(widthsData) {
49
- return widthsData.resizeStep;
50
- }
51
47
 
52
- /**
53
- * columnWidths
54
- */
48
+ /************* columnWidths *************/
55
49
 
56
50
  /**
57
- * It return true if there are widths store in the state
58
- * @param {object} widthsData - data regarding column and table widths
59
- * @returns {boolean} - true if there are widths store in the state
60
- */
61
- export function hasDefinedColumnsWidths(widthsData) {
62
- return widthsData.columnWidths.length > 0;
63
- }
64
- /**
65
- * It return the columnsWidths saved in the state
51
+ * Returns the columnsWidths saved in the state
66
52
  * @param {object} widthsData - data regarding column and table widths
67
53
  * @returns {Array|*} - list of column widths
68
54
  */
@@ -70,16 +56,22 @@ export function getColumnsWidths(widthsData) {
70
56
  return widthsData.columnWidths;
71
57
  }
72
58
  /**
73
- * It set columnWidths to empty array
59
+ * Sets columnWidths to empty array
74
60
  * @param {object} widthsData - data regarding column and table widths
75
61
  */
76
62
  export function resetColumnWidths(widthsData) {
77
63
  widthsData.columnWidths = [];
78
64
  }
79
-
80
65
  /**
81
- * tableWidth
66
+ * Returns true if there are widths stored in the state
67
+ * @param {object} widthsData - data regarding column and table widths
68
+ * @returns {boolean} - true if there are widths store in the state
82
69
  */
70
+ export function hasDefinedColumnsWidths(widthsData) {
71
+ return widthsData.columnWidths.length > 0;
72
+ }
73
+
74
+ /************* tableWidth *************/
83
75
 
84
76
  /**
85
77
  * Get the full width of table
@@ -93,11 +85,13 @@ function setTableWidth(widthsData, tableWidth) {
93
85
  widthsData.tableWidth = tableWidth;
94
86
  }
95
87
 
96
- /**
97
- * minColumnWidth
98
- */
88
+ /************* minColumnWidth *************/
89
+
90
+ export function getMinColumnWidth(widthsData) {
91
+ return widthsData.minColumnWidth;
92
+ }
99
93
 
100
- export function setMinColumnWidth(state, widthsData, value) {
94
+ export function setMinColumnWidth(columns, widthsData, value) {
101
95
  widthsData.minColumnWidth = normalizeNumberAttribute(
102
96
  'minColumnWidth',
103
97
  value,
@@ -105,20 +99,15 @@ export function setMinColumnWidth(state, widthsData, value) {
105
99
  getResizerDefaultState().minColumnWidth
106
100
  );
107
101
 
108
- updateColumnWidthsMetadata(state, widthsData);
109
- }
110
- export function getMinColumnWidth(widthsData) {
111
- return widthsData.minColumnWidth;
102
+ updateColumnWidthsMetadata(columns, widthsData);
112
103
  }
113
104
 
114
- /**
115
- * maxColumnWidth
116
- */
105
+ /************* maxColumnWidth *************/
117
106
 
118
107
  export function getMaxColumnWidth(widthsData) {
119
108
  return widthsData.maxColumnWidth;
120
109
  }
121
- export function setMaxColumnWidth(state, widthsData, value) {
110
+ export function setMaxColumnWidth(columns, widthsData, value) {
122
111
  widthsData.maxColumnWidth = normalizeNumberAttribute(
123
112
  'maxColumnWidth',
124
113
  value,
@@ -126,20 +115,18 @@ export function setMaxColumnWidth(state, widthsData, value) {
126
115
  getResizerDefaultState().maxColumnWidth
127
116
  );
128
117
 
129
- updateColumnWidthsMetadata(state, widthsData);
118
+ updateColumnWidthsMetadata(columns, widthsData);
130
119
  }
131
120
 
132
- // *******************************
133
- // Logics
134
- // *******************************
121
+ /***************************** RESIZE LOGIC *****************************/
135
122
 
136
123
  /**
137
124
  * Get the style to match the full width of table
138
125
  * @param {object} widthsData - data regarding column and table widths
139
126
  * @returns {string} - style string
140
127
  */
141
- export function getTableWidthStyle(widthsData) {
142
- return getWidthStyle(getTableWidth(widthsData));
128
+ export function getCSSWidthStyleOfTable(widthsData) {
129
+ return buildCSSWidthStyle(getTableWidth(widthsData));
143
130
  }
144
131
 
145
132
  /**
@@ -149,7 +136,7 @@ export function getTableWidthStyle(widthsData) {
149
136
  *
150
137
  * @param {object} state - table state
151
138
  */
152
- export const adjustColumnsSizeFromState = function (state) {
139
+ export function adjustColumnsSizeFromState(state) {
153
140
  const columnsWidths = getColumnsWidths(state);
154
141
  let columnsWidthSum = 0;
155
142
  getColumns(state).forEach((column, colIndex) => {
@@ -160,80 +147,64 @@ export const adjustColumnsSizeFromState = function (state) {
160
147
  }
161
148
  columnsWidthSum += width;
162
149
  column.columnWidth = columnsWidths[colIndex];
163
- column.style = getWidthStyle(columnsWidths[colIndex]);
150
+ column.style = buildCSSWidthStyle(columnsWidths[colIndex]);
164
151
  }
165
152
  });
166
153
  setTableWidth(state, columnsWidthSum);
167
- };
154
+ }
168
155
 
169
156
  /**
170
- * It resize a column width
171
- * @param {object} state - table state
157
+ * Resizes a column width
158
+ * @param {object} columns - all columns on the table
159
+ * @param {object} widthsData - object containing the resizer metadata
172
160
  * @param {number} colIndex - the index of the column based on state.columns
173
161
  * @param {number} width - the new width is gonna be applied
174
162
  */
175
- export const resizeColumn = function (state, widthsData, colIndex, width) {
176
- const column = getColumns(state)[colIndex];
163
+ export function resizeColumn(columns, widthsData, colIndex, width) {
164
+ const columnToResize = columns[colIndex];
177
165
  const columnsWidths = getColumnsWidths(widthsData);
178
166
  const currentWidth = columnsWidths[colIndex];
179
- const { minWidth, maxWidth } = column;
167
+ const { minWidth, maxWidth } = columnToResize;
180
168
 
181
169
  const newWidth = clamp(width, minWidth, maxWidth);
182
170
  if (currentWidth !== newWidth) {
183
171
  const newDelta = newWidth - currentWidth;
184
172
  setTableWidth(widthsData, getTableWidth(widthsData) + newDelta);
185
- updateColumnWidth(state, widthsData, colIndex, newWidth);
173
+ updateColumnWidth(columns, widthsData, colIndex, newWidth);
186
174
  // Workaround for header positioning issues in RTL
187
- updateColumnOffsets(state, colIndex + 1, newDelta);
188
- column.isResized = true;
175
+ updateColumnOffsets(columns, colIndex + 1, newDelta);
176
+ columnToResize.isResized = true;
189
177
  }
190
- };
178
+ }
191
179
 
192
180
  /**
193
- * It resize a column width
194
- * @param {object} state - table state
181
+ * Resize a column width with an additional delta
182
+ * @param {object} columns - all columns of the table
195
183
  * @param {object} widthsData - data regarding column and table widths
196
184
  * @param {number} colIndex - the index of the column based on state.columns
197
185
  * @param {number} widthDelta - the delta that creates the new width
198
186
  */
199
- export const resizeColumnWithDelta = function (
200
- state,
187
+ export function resizeColumnWithDelta(
188
+ columns,
201
189
  widthsData,
202
190
  colIndex,
203
191
  widthDelta
204
192
  ) {
205
193
  const currentWidth = getColumnsWidths(widthsData)[colIndex];
206
- resizeColumn(state, widthsData, colIndex, currentWidth + widthDelta);
207
- };
194
+ resizeColumn(columns, widthsData, colIndex, currentWidth + widthDelta);
195
+ }
208
196
 
209
- function updateColumnWidth(state, widthsData, colIndex, newWidth) {
197
+ function updateColumnWidth(columns, widthsData, colIndex, newWidth) {
210
198
  const columnsWidths = getColumnsWidths(widthsData);
211
199
  columnsWidths[colIndex] = newWidth;
212
200
 
213
- const column = getColumns(state)[colIndex];
201
+ const column = columns[colIndex];
214
202
  column.columnWidth = newWidth;
215
- column.style = getWidthStyle(newWidth);
216
- }
217
-
218
- /**
219
- * It return the current widths for customer columns
220
- * @param {object} state - table state
221
- * @param {object} widthsData - data regarding column and table widths
222
- * @returns {Array} - the widths collection, every element
223
- * belong to a column with the same index in column prop
224
- */
225
- export function getCustomerColumnWidths(state, widthsData) {
226
- const columns = getColumns(state);
227
- return columns.reduce((prev, column, index) => {
228
- if (isCustomerColumn(column)) {
229
- prev.push(widthsData.columnWidths[index]);
230
- }
231
- return prev;
232
- }, []);
203
+ column.style = buildCSSWidthStyle(newWidth);
233
204
  }
234
205
 
235
- export function updateColumnWidthsMetadata(state, widthsData) {
236
- getColumns(state).forEach((col) => {
206
+ export function updateColumnWidthsMetadata(columns, widthsData) {
207
+ columns.forEach((col) => {
237
208
  if (!col.internal) {
238
209
  col.minWidth = getMinColumnWidth(widthsData);
239
210
  col.maxWidth = getMaxColumnWidth(widthsData);
@@ -249,6 +220,39 @@ export function updateColumnWidthsMetadata(state, widthsData) {
249
220
  });
250
221
  }
251
222
 
223
+ /**
224
+ * Updates the column offsets based on the specified delta, starting from the specified index.
225
+ * This is used to position the column headers properly in RTL.
226
+ *
227
+ * @param {object} columns - All columns of the table
228
+ * @param {number} colIndex - The first index to start applying the change in column width
229
+ * @param {number} newDelta - The change in column width to apply to
230
+ */
231
+ function updateColumnOffsets(columns, colIndex, newDelta) {
232
+ if (isRTL()) {
233
+ const offsetColumns = columns.slice(colIndex);
234
+ offsetColumns.forEach((column) => {
235
+ column.offset += newDelta;
236
+ });
237
+ }
238
+ }
239
+
240
+ /**
241
+ * Returns the current widths for customer columns
242
+ * @param {object} columns - all columns of the table
243
+ * @param {object} widthsData - data regarding column and table widths
244
+ * @returns {Array} - the widths collection, every element
245
+ * belong to a column with the same index in column prop
246
+ */
247
+ export function getCustomerColumnWidths(columns, widthsData) {
248
+ return columns.reduce((prev, column, index) => {
249
+ if (isCustomerColumn(column)) {
250
+ prev.push(widthsData.columnWidths[index]);
251
+ }
252
+ return prev;
253
+ }, []);
254
+ }
255
+
252
256
  /**
253
257
  * It returns if table is rendered and not hidden
254
258
  * @param {node} root - table root element
@@ -262,27 +266,6 @@ export function isTableRenderedVisible(root) {
262
266
  );
263
267
  }
264
268
 
265
- function getWidthStyle(pixels) {
266
- return pixels > 0 ? `width:${pixels}px` : '';
267
- }
268
-
269
269
  function getColumns(state) {
270
270
  return state.columns;
271
271
  }
272
-
273
- /**
274
- * Updates the column offsets based on the specified delta, starting from the specified index.
275
- * This is used to position the column headers properly in RTL.
276
- *
277
- * @param {object} state
278
- * @param {number} colIndex - The first index to start applying the change in column width
279
- * @param {number} newDelta - The change in column width to apply to
280
- */
281
- function updateColumnOffsets(state, colIndex, newDelta) {
282
- if (isRTL()) {
283
- const columns = getColumns(state).slice(colIndex);
284
- columns.forEach((column) => {
285
- column.offset += newDelta;
286
- });
287
- }
288
- }