lightning-base-components 1.21.2-alpha → 1.21.3-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.
- package/metadata/raptor.json +28 -1
- package/package.json +28 -2
- package/scopedImports/@salesforce-label-LightningRichTextEditor.colorPicker.js +1 -0
- package/src/lightning/accordion/accordion-section.slds.css +3 -3
- package/src/lightning/accordion/accordion.slds.css +1 -2
- package/src/lightning/accordionSection/accordion-section.slds.css +3 -3
- package/src/lightning/accordionSection/accordionSection.js +3 -1
- package/src/lightning/accordionSection/button.slds.css +1 -1
- package/src/lightning/badge/badge.js +1 -0
- package/src/lightning/badge/badge.js-meta.xml +3 -0
- package/src/lightning/baseCombobox/base-combobox.slds.css +11 -6
- package/src/lightning/baseCombobox/baseCombobox.html +1 -1
- package/src/lightning/baseCombobox/baseCombobox.js +2 -2
- package/src/lightning/baseCombobox/baseCombobox.js-meta.xml +6 -0
- package/src/lightning/baseCombobox/input-text.slds.css +41 -68
- package/src/lightning/baseCombobox/keyboard.js +12 -4
- package/src/lightning/baseCombobox/listbox.slds.css +51 -99
- package/src/lightning/baseCombobox/spinner.slds.css +62 -62
- package/src/lightning/baseComboboxFormattedText/baseComboboxFormattedText.js-meta.xml +6 -0
- package/src/lightning/baseComboboxItem/baseComboboxItem.js +10 -6
- package/src/lightning/baseComboboxItem/baseComboboxItem.js-meta.xml +6 -0
- package/src/lightning/baseComboboxItem/listbox.slds.css +51 -99
- package/src/lightning/baseFormattedText/baseFormattedText.js +2 -2
- package/src/lightning/button/button.js +2 -1
- package/src/lightning/button/button.slds.css +1 -1
- package/src/lightning/buttonIcon/button-icon.slds.css +1 -1
- package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +4 -2
- package/src/lightning/buttonIconStateful/button-icon.slds.css +1 -1
- package/src/lightning/buttonIconStateful/button.slds.css +1 -1
- package/src/lightning/buttonMenu/button-icon.slds.css +1 -1
- package/src/lightning/buttonMenu/button-menu.slds.css +8 -2
- package/src/lightning/buttonMenu/button.slds.css +1 -1
- package/src/lightning/buttonStateful/button-stateful.slds.css +6 -2
- package/src/lightning/buttonStateful/button.slds.css +1 -1
- package/src/lightning/buttonStateful/buttonStateful.js +4 -1
- package/src/lightning/calendar/calendar.js-meta.xml +6 -0
- package/src/lightning/calendar/calendar.slds.css +9 -2
- package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +22 -23
- package/src/lightning/colorPickerCustom/input-text.slds.css +41 -68
- package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +9 -10
- package/src/lightning/colorPickerPanel/popover.slds.css +0 -2
- package/src/lightning/combobox/combobox.slds.css +1 -2
- package/src/lightning/combobox/form-element.slds.css +54 -54
- package/src/lightning/datatable/__examples__/customDatatableWrapper/customDatatableWrapper.js +0 -69
- package/src/lightning/datatable/__examples__/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +1 -1
- package/src/lightning/datatable/__examples__/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.js +1 -16
- package/src/lightning/datatable/__examples__/customDatatypeLink/customDatatypeLink.html +3 -3
- package/src/lightning/datatable/__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html +1 -8
- package/src/lightning/datatable/__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +2 -39
- package/src/lightning/datatable/__examples__/customDatatypeTable/customNumber.html +1 -1
- package/src/lightning/datatable/__examples__/customDatatypeTable/customNumberEdit.html +2 -0
- package/src/lightning/datatable/__examples__/customDatatypeTable/deleteRow.html +3 -2
- package/src/lightning/datatable/__examples__/customDatatypeTable/iconPill.html +1 -1
- package/src/lightning/datatable/__examples__/customNestedComponent/customNestedComponent.html +10 -0
- package/src/lightning/datatable/__examples__/customNestedComponent/customNestedComponent.js +12 -0
- package/src/lightning/datatable/autoWidthStrategy.js +147 -191
- package/src/lightning/datatable/columnResizer.js +35 -35
- package/src/lightning/datatable/columnWidthManager.js +118 -177
- package/src/lightning/datatable/columns.js +90 -59
- package/src/lightning/datatable/datagrid.slds.css +187 -0
- package/src/lightning/datatable/datatable.js +248 -229
- package/src/lightning/datatable/errors.js +3 -0
- package/src/lightning/datatable/fixedWidthStrategy.js +22 -29
- package/src/lightning/datatable/headerActions.js +7 -9
- package/src/lightning/datatable/infiniteLoading.js +15 -15
- package/src/lightning/datatable/inlineEdit.js +255 -235
- package/src/lightning/datatable/keyboard.js +318 -282
- package/src/lightning/datatable/renderManager.js +10 -7
- package/src/lightning/datatable/resizeObserver.js +11 -59
- package/src/lightning/datatable/rowLevelActions.js +6 -5
- package/src/lightning/datatable/rowNumber.js +23 -23
- package/src/lightning/datatable/rowSelection.js +173 -145
- package/src/lightning/datatable/rowSelectionShared.js +13 -6
- package/src/lightning/datatable/rows.js +231 -196
- package/src/lightning/datatable/sort.js +26 -22
- package/src/lightning/datatable/templates/div/div.css +2 -57
- package/src/lightning/datatable/templates/div/div.html +13 -6
- package/src/lightning/datatable/templates/div/div.lbc.native.css +3 -0
- package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +86 -0
- package/src/lightning/datatable/templates/table/table.html +1 -0
- package/src/lightning/datatable/utils.js +5 -5
- package/src/lightning/datatable/widthManagerShared.js +24 -21
- package/src/lightning/datatable/wrapText.js +25 -26
- package/src/lightning/datepicker/datepicker.js +32 -9
- package/src/lightning/datepicker/datepicker.js-meta.xml +6 -0
- package/src/lightning/datepicker/form-element.slds.css +54 -54
- package/src/lightning/datepicker/input-text.slds.css +41 -68
- package/src/lightning/datetimepicker/datetimepicker.js-meta.xml +6 -0
- package/src/lightning/datetimepicker/form-element.slds.css +54 -54
- package/src/lightning/datetimepicker/input-text.slds.css +41 -68
- package/src/lightning/dualListbox/dual-listbox.slds.css +7 -2
- package/src/lightning/dualListbox/form-element.slds.css +54 -54
- package/src/lightning/dualListbox/listbox.slds.css +51 -99
- package/src/lightning/dynamicIcon/dynamic-icon-strength.slds.css +1 -2
- package/src/lightning/dynamicIcon/dynamic-icon-trend.slds.css +1 -2
- package/src/lightning/formattedDateTime/formattedDateTime.js +7 -62
- package/src/lightning/formattedDateTime/formattedDateTime.js-meta.xml +3 -0
- package/src/lightning/formattedLocation/formattedLocation.html +1 -3
- package/src/lightning/formattedLocation/formattedLocation.js +3 -25
- package/src/lightning/formattedLookup/events.js +2 -4
- package/src/lightning/formattedNumber/formattedNumber.js +2 -49
- package/src/lightning/formattedRichText/formattedRichText.js +5 -5
- package/src/lightning/formattedRichText/linkTextNodes.js +58 -0
- package/src/lightning/groupedCombobox/form-element.slds.css +54 -54
- package/src/lightning/groupedCombobox/grouped-combobox.slds.css +0 -2
- package/src/lightning/groupedCombobox/groupedCombobox.js-meta.xml +1 -1
- package/src/lightning/groupedCombobox/input-text.slds.css +41 -68
- package/src/lightning/helptext/button-icon.slds.css +1 -1
- package/src/lightning/helptext/form-element.slds.css +54 -54
- package/src/lightning/icon/icon.slds.css +12 -25
- package/src/lightning/input/form-element.slds.css +54 -54
- package/src/lightning/inputAddress/form-element.slds.css +54 -54
- package/src/lightning/inputAddress/input-address.slds.css +1 -2
- package/src/lightning/inputAddress/input-text.slds.css +41 -68
- package/src/lightning/inputAddress/inputAddress.js +1 -0
- package/src/lightning/inputAddress/inputAddress.js-meta.xml +3 -0
- package/src/lightning/inputLocation/form-element.slds.css +54 -54
- package/src/lightning/inputLocation/input-location.slds.css +1 -2
- package/src/lightning/inputLocation/input-text.slds.css +41 -68
- package/src/lightning/inputName/form-element.slds.css +54 -54
- package/src/lightning/inputName/input-text.slds.css +41 -68
- package/src/lightning/interactiveDialogBase/interactive-dialog-base.slds.css +0 -3
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.js-meta.xml +6 -0
- package/src/lightning/lookupAddress/form-element.slds.css +54 -54
- package/src/lightning/lookupAddress/listbox.slds.css +51 -99
- package/src/lightning/lookupAddress/location.js +2 -0
- package/src/lightning/lookupAddress/lookup-address.slds.css +0 -2
- package/src/lightning/lookupAddress/lookupAddress.js +15 -10
- package/src/lightning/menuDivider/menu-divider.slds.css +0 -2
- package/src/lightning/menuItem/menu-item.slds.css +8 -2
- package/src/lightning/menuSubheader/menu-subheader.slds.css +1 -2
- package/src/lightning/modalBase/modal-base.slds.css +3 -3
- package/src/lightning/modalBase/modalBase.js +0 -8
- package/src/lightning/modalBase/modalBase.js-meta.xml +6 -0
- package/src/lightning/modalBody/modal-body.slds.css +1 -2
- package/src/lightning/modalFooter/modal-footer.slds.css +2 -2
- package/src/lightning/modalFooter/modalFooter.js +0 -21
- package/src/lightning/modalHeader/modal-header.slds.css +1 -2
- package/src/lightning/modalHeader/modalHeader.js +0 -22
- package/src/lightning/overlay/overlay.js-meta.xml +6 -0
- package/src/lightning/pill/pill.slds.css +32 -58
- package/src/lightning/pillContainer/button.slds.css +1 -1
- package/src/lightning/pillContainer/listbox.slds.css +51 -99
- package/src/lightning/pillContainer/pill-container.slds.css +6 -10
- package/src/lightning/pillContainer/pill.slds.css +32 -58
- package/src/lightning/popup/popover.slds.css +0 -2
- package/src/lightning/primitiveBubble/primitiveBubble.js-meta.xml +6 -0
- package/src/lightning/primitiveButton/primitiveButoon.js-meta.xml +6 -0
- package/src/lightning/primitiveCellCheckbox/checkbox.css +2 -0
- package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +16 -38
- package/src/lightning/primitiveCustomCell/primitiveCustomCell.js +26 -1
- package/src/lightning/primitiveHeaderFactory/nonsortableHeader.css +1 -0
- package/src/lightning/primitiveHeaderFactory/selectableHeader.css +2 -0
- package/src/lightning/primitiveIcon/icon.slds.css +12 -25
- package/src/lightning/primitiveIcon/primitiveIcon.js-meta.xml +6 -0
- package/src/lightning/primitiveIframe/primitiveIframe.js +3 -1
- package/src/lightning/primitiveInputCheckbox/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +5 -2
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js-meta.xml +6 -0
- package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -4
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +5 -2
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js-meta.xml +6 -0
- package/src/lightning/primitiveInputColor/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputColor/input-color.slds.css +2 -3
- package/src/lightning/primitiveInputColor/input-text.slds.css +41 -68
- package/src/lightning/primitiveInputColor/primitiveInputColor.js +5 -2
- package/src/lightning/primitiveInputColor/primitiveInputColor.js-meta.xml +6 -0
- package/src/lightning/primitiveInputFile/button.slds.css +1 -1
- package/src/lightning/primitiveInputFile/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputFile/input-file.slds.css +1 -4
- package/src/lightning/primitiveInputFile/primitiveInputFile.js +4 -2
- package/src/lightning/primitiveInputFile/primitiveInputFile.js-meta.xml +6 -0
- package/src/lightning/primitiveInputRadio/primitiveInputRadio.js +4 -2
- package/src/lightning/primitiveInputSimple/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputSimple/input-text.slds.css +41 -68
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.js-meta.xml +6 -0
- package/src/lightning/primitiveInputToggle/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputToggle/input-toggle.slds.css +50 -27
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +5 -2
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.js-meta.xml +6 -0
- package/src/lightning/progressBar/progress-bar.slds.css +8 -10
- package/src/lightning/progressRing/progress-ring.slds.css +0 -23
- package/src/lightning/progressStep/progressStep.js +1 -14
- package/src/lightning/radioGroup/form-element.slds.css +54 -54
- package/src/lightning/radioGroup/radioGroup.html +1 -2
- package/src/lightning/radioGroup/radioGroup.js +1 -0
- package/src/lightning/routingService/routingService.js +31 -5
- package/src/lightning/select/form-element.slds.css +54 -54
- package/src/lightning/select/select.slds.css +4 -2
- package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +4 -0
- package/src/lightning/spinner/spinner.slds.css +62 -62
- package/src/lightning/tab/tab.js +4 -2
- package/src/lightning/tab/tab.slds.css +14 -7
- package/src/lightning/tabBar/tab-bar.slds.css +16 -6
- package/src/lightning/tabset/__docs__/tabset.md +24 -1
- package/src/lightning/tabset/tabset.js +25 -38
- package/src/lightning/tabset/tabset.slds.css +0 -2
- package/src/lightning/textarea/form-element.slds.css +54 -54
- package/src/lightning/textarea/textarea.js +5 -1
- package/src/lightning/textarea/textarea.slds.css +22 -9
- package/src/lightning/timepicker/form-element.slds.css +54 -54
- package/src/lightning/timepicker/timepicker.js-meta.xml +6 -0
- package/src/lightning/timepicker/timepicker.slds.css +2 -2
- package/src/lightning/toast/__docs__/toast.md +20 -22
- package/src/lightning/toast/button-icon.slds.css +1 -1
- package/src/lightning/toast/icon.slds.css +12 -25
- package/src/lightning/toast/toast.js +15 -12
- package/src/lightning/toast/toast.slds.css +6 -18
- package/src/lightning/toastContainer/toast.slds.css +6 -18
- package/src/lightning/toastContainer/toastContainer.js +25 -17
- package/src/lightning/tooltipLibrary/tooltipLibrary.js +12 -9
- package/src/lightning/tree/tree.js +2 -0
- package/src/lightning/utils/classSet.js +9 -3
- package/src/lightning/utilsPrivate/formatUtils.js +158 -0
- package/src/lightning/utilsPrivate/textUtils.js +16 -0
- package/src/lightning/utilsPrivate/utilsPrivate.js +56 -15
- package/src/lightning/utilsPrivate/validationUtils.js +59 -0
- package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +0 -2
- package/src/lightning/datatable/resizeSensor.js +0 -244
- package/src/lightning/formattedRichText/linkify.js +0 -43
- package/src/lightning/utilsPrivate/smartSetAttribute.js +0 -19
|
@@ -66,9 +66,10 @@ export class RenderManager {
|
|
|
66
66
|
/**
|
|
67
67
|
* Updates and normalizes configuration for RenderManager
|
|
68
68
|
* Used when setting renderConfig for datatable
|
|
69
|
-
*
|
|
70
|
-
* @param {
|
|
71
|
-
* @param {
|
|
69
|
+
*
|
|
70
|
+
* @param {Object} state - The datatable state
|
|
71
|
+
* @param {Function} getWrapperHeight - A function to get height of datatable wrapper
|
|
72
|
+
* @param {RenderManagerConfig} config - The render management config
|
|
72
73
|
*/
|
|
73
74
|
configure(state, getWrapperHeight, config) {
|
|
74
75
|
const {
|
|
@@ -282,8 +283,9 @@ export class RenderManager {
|
|
|
282
283
|
* @param {Node} resizeTarget
|
|
283
284
|
*/
|
|
284
285
|
connectResizeObserver(resizeTarget) {
|
|
285
|
-
|
|
286
|
-
|
|
286
|
+
const { _heightResizeObserver } = this;
|
|
287
|
+
if (_heightResizeObserver) {
|
|
288
|
+
_heightResizeObserver.observe(resizeTarget);
|
|
287
289
|
this._resizeObserverConnected = true;
|
|
288
290
|
}
|
|
289
291
|
}
|
|
@@ -292,9 +294,10 @@ export class RenderManager {
|
|
|
292
294
|
* Disconnect the resize observer
|
|
293
295
|
*/
|
|
294
296
|
disconnectResizeObserver() {
|
|
295
|
-
|
|
297
|
+
const { _heightResizeObserver } = this;
|
|
298
|
+
if (_heightResizeObserver) {
|
|
296
299
|
this._resizeObserverConnected = false;
|
|
297
|
-
|
|
300
|
+
_heightResizeObserver.disconnect();
|
|
298
301
|
}
|
|
299
302
|
}
|
|
300
303
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { LightningResizeObserver } from 'lightning/resizeObserver';
|
|
2
2
|
import { isTableRenderedVisible } from './columnResizer';
|
|
3
|
-
import { ResizeSensor } from './resizeSensor';
|
|
4
|
-
import { debounce } from 'lightning/inputUtils';
|
|
5
3
|
import { getColumns } from './columns';
|
|
6
4
|
|
|
7
5
|
const WIDTH_OBSERVER_SELECTOR = '.dt-width-observer';
|
|
@@ -17,31 +15,19 @@ export class LightningDatatableResizeObserver {
|
|
|
17
15
|
constructor(template, state, widthsData, columnWidthManager) {
|
|
18
16
|
const resizeTarget = template.querySelector(WIDTH_OBSERVER_SELECTOR);
|
|
19
17
|
|
|
20
|
-
//
|
|
18
|
+
// Create ResizeObserver and begin observing for changes.
|
|
21
19
|
// Calculate and modify the column widths when there are changes to the dimensions
|
|
22
20
|
// and when the table is rendered and visible on screen
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this._resizeObserver.observe(resizeTarget);
|
|
34
|
-
} else {
|
|
35
|
-
// fallback behavior for IE11 using existing resize sensor functionality (less performant)
|
|
36
|
-
this._resizeSensor = createResizeSensorForIE11(
|
|
37
|
-
this,
|
|
38
|
-
columnWidthManager,
|
|
39
|
-
template,
|
|
40
|
-
state,
|
|
41
|
-
widthsData,
|
|
42
|
-
resizeTarget
|
|
43
|
-
);
|
|
44
|
-
}
|
|
21
|
+
this._resizeObserver = new LightningResizeObserver(() => {
|
|
22
|
+
if (this._connected && isTableRenderedVisible(template)) {
|
|
23
|
+
columnWidthManager.adjustColumnsSizeAfterResize(
|
|
24
|
+
template,
|
|
25
|
+
getColumns(state),
|
|
26
|
+
widthsData
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
this._resizeObserver.observe(resizeTarget);
|
|
45
31
|
|
|
46
32
|
this._connected = true;
|
|
47
33
|
}
|
|
@@ -75,37 +61,3 @@ export class LightningDatatableResizeObserver {
|
|
|
75
61
|
return this._connected;
|
|
76
62
|
}
|
|
77
63
|
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Creates a ResizeSensor which is used to observe the dimensions of an element.
|
|
81
|
-
*
|
|
82
|
-
* This ResizeSensor is only used in the event that the standard ResizeObserver
|
|
83
|
-
* is NOT available on the browser.
|
|
84
|
-
* Currently only IE11 does not support the ResizeObserver. We should be able to
|
|
85
|
-
* remove this once we fully drop support of IE11.
|
|
86
|
-
*/
|
|
87
|
-
function createResizeSensorForIE11(
|
|
88
|
-
dtObserver,
|
|
89
|
-
columnWidthManager,
|
|
90
|
-
template,
|
|
91
|
-
state,
|
|
92
|
-
widthsData,
|
|
93
|
-
resizeTarget
|
|
94
|
-
) {
|
|
95
|
-
return new ResizeSensor(
|
|
96
|
-
resizeTarget,
|
|
97
|
-
debounce(() => {
|
|
98
|
-
// since this event handler is debounced, it might be the case that at the time the handler is called,
|
|
99
|
-
// the element is disconnected (this.hasDetachedListeners)
|
|
100
|
-
// the scroll event which the ResizeSensor uses can happen when table is hidden (as in console when switching tabs)
|
|
101
|
-
// and hence the need for isTableRenderedVisible check
|
|
102
|
-
if (dtObserver.isConnected() && isTableRenderedVisible(template)) {
|
|
103
|
-
columnWidthManager.adjustColumnsSizeAfterResize(
|
|
104
|
-
template,
|
|
105
|
-
getColumns(state),
|
|
106
|
-
widthsData
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
}, 200)
|
|
110
|
-
);
|
|
111
|
-
}
|
|
@@ -60,16 +60,17 @@ export function handleLoadDynamicActions(event) {
|
|
|
60
60
|
export function handleCellButtonClick(event) {
|
|
61
61
|
event.stopPropagation();
|
|
62
62
|
|
|
63
|
+
const { state } = this;
|
|
63
64
|
const { colKeyValue, rowKeyValue } = event.detail;
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
const
|
|
65
|
+
const selectedRow = getUserRowByCellKeys(state, rowKeyValue, colKeyValue);
|
|
66
|
+
const colIndex = getUserColumnIndex(state, colKeyValue);
|
|
67
|
+
const col = this._columns[colIndex];
|
|
67
68
|
|
|
68
69
|
this.dispatchEvent(
|
|
69
70
|
new CustomEvent('rowaction', {
|
|
70
71
|
detail: {
|
|
71
|
-
action: unwrap(
|
|
72
|
-
row: unwrap(
|
|
72
|
+
action: unwrap(col.typeAttributes),
|
|
73
|
+
row: unwrap(selectedRow),
|
|
73
74
|
},
|
|
74
75
|
})
|
|
75
76
|
);
|
|
@@ -4,15 +4,16 @@ import labelRowNumber from '@salesforce/label/LightningDatatable.rowNumber';
|
|
|
4
4
|
import { formatLabel } from 'lightning/utils';
|
|
5
5
|
import { normalizeBoolean } from 'lightning/utilsPrivate';
|
|
6
6
|
|
|
7
|
-
export const TOOLTIP_ALLOWANCE = 20;
|
|
8
7
|
const CHAR_WIDTH = 10;
|
|
9
|
-
const
|
|
8
|
+
const ROW_NUMBER_PADDING = 12;
|
|
10
9
|
const ROW_NUMBER_COLUMN_TYPE = 'rowNumber';
|
|
11
10
|
const i18n = {
|
|
12
11
|
rowLevelErrorAssistiveText: labelRowLevelErrorAssistiveText,
|
|
13
12
|
rowNumber: labelRowNumber,
|
|
14
13
|
};
|
|
15
14
|
|
|
15
|
+
export const TOOLTIP_ALLOWANCE = 20;
|
|
16
|
+
|
|
16
17
|
/**
|
|
17
18
|
* Returns the initial default column definition
|
|
18
19
|
* for the row number column
|
|
@@ -74,22 +75,22 @@ export function isRowNumberColumn(column) {
|
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
/**
|
|
77
|
-
* Calculates the width of the row number column
|
|
78
|
+
* Calculates the width of the row number column.
|
|
78
79
|
* This takes into account the number of digits in the row number
|
|
79
80
|
* (ex. 3 for 100 rows), padding in the cell and
|
|
80
|
-
* space allowance for the error tooltip which is rendered in this cell
|
|
81
|
+
* space allowance for the error tooltip which is rendered in this cell.
|
|
81
82
|
*
|
|
82
|
-
* @param {Object} state - datatable
|
|
83
|
+
* @param {Object} state - The datatable state
|
|
83
84
|
* @returns
|
|
84
85
|
*/
|
|
85
86
|
export function getAdjustedRowNumberColumnWidth(state) {
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
const numberOfChars = String(
|
|
88
|
+
state.rows.length + state.rowNumberOffset
|
|
89
|
+
).length;
|
|
89
90
|
return Math.max(
|
|
90
91
|
CHAR_WIDTH * numberOfChars +
|
|
91
|
-
|
|
92
|
-
TOOLTIP_ALLOWANCE /* primitive-
|
|
92
|
+
ROW_NUMBER_PADDING /* padding */ +
|
|
93
|
+
TOOLTIP_ALLOWANCE /* primitive-tooltip */,
|
|
93
94
|
getRowNumberColumnDef().initialWidth
|
|
94
95
|
);
|
|
95
96
|
}
|
|
@@ -98,15 +99,14 @@ export function getAdjustedRowNumberColumnWidth(state) {
|
|
|
98
99
|
* Retrieves the column index of the row number column
|
|
99
100
|
* Returns -1 if the row number column is not present
|
|
100
101
|
*
|
|
101
|
-
* @param {Object} state - datatable
|
|
102
|
+
* @param {Object} state - The datatable state
|
|
102
103
|
* @returns {Number} index of row number column. Returns -1 if not present
|
|
103
104
|
*/
|
|
104
105
|
export function getRowNumberColumnIndex(state) {
|
|
105
|
-
if (hasRowNumberColumn(state)
|
|
106
|
-
const columns = state
|
|
107
|
-
for (let i = 0; i <
|
|
108
|
-
|
|
109
|
-
if (column.type === ROW_NUMBER_COLUMN_TYPE) {
|
|
106
|
+
if (hasRowNumberColumn(state)) {
|
|
107
|
+
const { columns } = state;
|
|
108
|
+
for (let i = 0, { length } = columns; i < length; i += 1) {
|
|
109
|
+
if (columns[i].type === ROW_NUMBER_COLUMN_TYPE) {
|
|
110
110
|
return i;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -124,13 +124,13 @@ export function getRowNumberColumnIndex(state) {
|
|
|
124
124
|
* @returns
|
|
125
125
|
*/
|
|
126
126
|
export function getRowNumberErrorColumnDef(rowErrors, rowTitle) {
|
|
127
|
-
const {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
const { cells, fieldNames, messages, title } = rowErrors || {};
|
|
128
|
+
let numberOfErrors = 0;
|
|
129
|
+
if (cells) {
|
|
130
|
+
numberOfErrors = Object.keys(cells).length;
|
|
131
|
+
} else if (fieldNames) {
|
|
132
|
+
numberOfErrors = fieldNames.length;
|
|
133
|
+
}
|
|
134
134
|
|
|
135
135
|
const alternativeText = formatLabel(
|
|
136
136
|
i18n.rowLevelErrorAssistiveText,
|