lightning-base-components 1.22.2-alpha → 1.22.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/README.md +2 -0
- package/metadata/raptor.json +31 -2
- package/package.json +12 -1
- package/scopedImports/@salesforce-label-LightningRecordPicker.actionIconAlternativeText.js +1 -0
- package/src/lightning/ariaObserver/ariaObserver.js +1 -1
- package/src/lightning/baseCombobox/baseCombobox.html +1 -1
- package/src/lightning/baseCombobox/baseCombobox.js +1 -0
- package/src/lightning/baseCombobox/input-text.slds.css +6 -7
- package/src/lightning/baseComboboxItem/card.lbc.native.css +1 -0
- package/src/lightning/baseComboboxItem/inline.lbc.native.css +1 -0
- package/src/lightning/buttonIcon/button-icon.slds.css +5 -5
- package/src/lightning/buttonIconStateful/button-icon.slds.css +5 -5
- package/src/lightning/buttonMenu/button-icon.slds.css +5 -5
- package/src/lightning/calendar/calendar.slds.css +10 -13
- package/src/lightning/checkboxGroup/checkboxGroup.js +21 -10
- package/src/lightning/checkboxGroup/checkboxGroup.js-meta.xml +3 -0
- package/src/lightning/colorPickerCustom/input-text.slds.css +6 -7
- package/src/lightning/combobox/form-element.slds.css +1 -1
- package/src/lightning/datatable/__docs__/datatable.md +10 -5
- package/src/lightning/datatable/columnResizer.js +3 -2
- package/src/lightning/datatable/columnWidthManager.js +16 -10
- package/src/lightning/datatable/datatable.js +101 -38
- package/src/lightning/datatable/infiniteLoading.js +8 -20
- package/src/lightning/datatable/inlineEdit.js +11 -6
- package/src/lightning/datatable/keyboard.js +58 -55
- package/src/lightning/datatable/resizeObserver.js +10 -5
- package/src/lightning/datatable/rows.js +1 -2
- package/src/lightning/datatable/rowsInlining.js +5 -4
- package/src/lightning/datatable/state.js +1 -2
- package/src/lightning/datatable/templates/div/div.html +150 -43
- package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +8 -7
- package/src/lightning/datatable/templates/table/table.html +153 -46
- package/src/lightning/datatable/utils.js +10 -4
- package/src/lightning/datatable/virtualization.js +6 -4
- package/src/lightning/datatable/wrapText.js +16 -15
- package/src/lightning/datepicker/form-element.slds.css +1 -1
- package/src/lightning/datepicker/input-text.slds.css +6 -7
- package/src/lightning/datetimepicker/form-element.slds.css +1 -1
- package/src/lightning/datetimepicker/input-text.slds.css +6 -7
- package/src/lightning/dualListbox/form-element.slds.css +1 -1
- package/src/lightning/groupedCombobox/form-element.slds.css +1 -1
- package/src/lightning/groupedCombobox/input-text.slds.css +6 -7
- package/src/lightning/helptext/button-icon.slds.css +5 -5
- package/src/lightning/helptext/form-element.slds.css +1 -1
- package/src/lightning/input/form-element.slds.css +1 -1
- package/src/lightning/input/input.html +0 -1
- package/src/lightning/inputAddress/form-element.slds.css +1 -1
- package/src/lightning/inputAddress/input-text.slds.css +6 -7
- package/src/lightning/inputLocation/form-element.slds.css +1 -1
- package/src/lightning/inputLocation/input-text.slds.css +6 -7
- package/src/lightning/inputName/form-element.slds.css +1 -1
- package/src/lightning/inputName/input-text.slds.css +6 -7
- package/src/lightning/lookupAddress/form-element.slds.css +1 -1
- package/src/lightning/modal/__docs__/modal.md +2 -0
- package/src/lightning/modalBase/modalBase.html +2 -0
- package/src/lightning/modalBase/modalBase.js +30 -31
- package/src/lightning/modalBody/modalBody.html +1 -0
- package/src/lightning/modalBody/modalBody.js +3 -0
- package/src/lightning/modalFooter/modalFooter.html +5 -1
- package/src/lightning/modalFooter/modalFooter.js +3 -0
- package/src/lightning/modalHeader/modalHeader.html +4 -1
- package/src/lightning/modalHeader/modalHeader.js +3 -0
- package/src/lightning/overlayManager/overlayManager.js +1 -1
- package/src/lightning/positionLibrary/elementProxy.js +13 -6
- package/src/lightning/positionLibrary/util.js +20 -2
- package/src/lightning/primitiveCellActions/primitiveCellActions.html +1 -0
- package/src/lightning/primitiveCellActions/primitiveCellActions.js +3 -5
- package/src/lightning/primitiveCellButton/primitiveCellButton.html +2 -0
- package/src/lightning/primitiveCellButton/primitiveCellButton.js +3 -5
- package/src/lightning/primitiveCellCheckbox/checkbox.html +3 -2
- package/src/lightning/primitiveCellCheckbox/primitiveCellCheckbox.js +6 -3
- package/src/lightning/primitiveCellCheckbox/radio.html +5 -4
- package/src/lightning/primitiveCellEditableButton/primitiveCellEditableButton.html +1 -1
- package/src/lightning/primitiveCellEditableButton/primitiveCellEditableButton.js +1 -1
- package/src/lightning/primitiveCellFactory/bareCustomCell.html +1 -0
- package/src/lightning/primitiveCellFactory/cellWithStandardLayout.html +1 -0
- package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +4 -6
- package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +1 -1
- package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.html +1 -0
- package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.js +1 -1
- package/src/lightning/primitiveDatatableIeditPanel/primitiveDatatableIeditPanel.html +3 -1
- package/src/lightning/primitiveDatatableIeditPanel/primitiveDatatableIeditPanel.js +3 -3
- package/src/lightning/primitiveDatatableStatusBar/primitiveDatatableStatusBar.html +1 -0
- package/src/lightning/primitiveDatatableStatusBar/primitiveDatatableStatusBar.js +1 -3
- package/src/lightning/primitiveDatatableTooltip/primitiveDatatableTooltip.html +1 -0
- package/src/lightning/primitiveDatatableTooltip/primitiveDatatableTooltip.js +1 -1
- package/src/lightning/primitiveDatatableTooltipBubble/primitiveDatatableTooltipBubble.html +1 -1
- package/src/lightning/primitiveDatatableTooltipBubble/primitiveDatatableTooltipBubble.js +1 -1
- package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.html +1 -0
- package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.js +2 -4
- package/src/lightning/primitiveHeaderFactory/nonsortableHeader.html +8 -3
- package/src/lightning/primitiveHeaderFactory/primitiveHeaderFactory.js +43 -13
- package/src/lightning/primitiveHeaderFactory/selectableHeader.html +3 -2
- package/src/lightning/primitiveHeaderFactory/sortableHeader.html +8 -3
- package/src/lightning/primitiveHeaderFactory/sortingMenuHeader.html +1 -1
- package/src/lightning/primitiveIcon/primitiveIcon.css +0 -1
- package/src/lightning/primitiveInputCheckbox/form-element.slds.css +1 -1
- package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +1 -1
- package/src/lightning/primitiveInputColor/form-element.slds.css +1 -1
- package/src/lightning/primitiveInputColor/input-text.slds.css +6 -7
- package/src/lightning/primitiveInputFile/form-element.slds.css +1 -1
- package/src/lightning/primitiveInputSimple/form-element.slds.css +1 -1
- package/src/lightning/primitiveInputSimple/input-text.slds.css +6 -7
- package/src/lightning/primitiveInputToggle/form-element.slds.css +1 -1
- package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.html +4 -2
- package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.js +2 -2
- package/src/lightning/primitiveTreegridCellToggle/primitiveTreegridCellToggle.html +1 -1
- package/src/lightning/primitiveTreegridCellToggle/primitiveTreegridCellToggle.js +1 -1
- package/src/lightning/progressIndicator/progressIndicator.css +1 -1
- package/src/lightning/progressIndicator/progressIndicator.js +14 -6
- package/src/lightning/progressIndicator/progressIndicator.js-meta.xml +3 -0
- package/src/lightning/progressIndicator/progressIndicator.lbc.native.css +2 -0
- package/src/lightning/progressStep/__examples__/basic/basic.html +11 -0
- package/src/lightning/progressStep/__examples__/basic/basic.js +3 -0
- package/src/lightning/progressStep/__examples__/shaded/shaded.html +11 -0
- package/src/lightning/progressStep/__examples__/shaded/shaded.js +3 -0
- package/src/lightning/progressStep/base.html +2 -1
- package/src/lightning/progressStep/progressStep.css +1 -0
- package/src/lightning/progressStep/progressStep.js +40 -29
- package/src/lightning/progressStep/progressStep.js-meta.xml +3 -0
- package/src/lightning/progressStep/progressStep.lbc.native.css +3 -0
- package/src/lightning/prompt/form-element.slds.css +1 -1
- package/src/lightning/prompt/input-text.slds.css +6 -7
- package/src/lightning/radioGroup/form-element.slds.css +1 -1
- package/src/lightning/select/form-element.slds.css +1 -1
- package/src/lightning/select/select.slds.css +1 -1
- package/src/lightning/sldsCommon/sldsCommon.css +1 -1
- package/src/lightning/textarea/form-element.slds.css +1 -1
- package/src/lightning/tile/mediaTile.css +2 -0
- package/src/lightning/tile/standardTile.css +2 -1
- package/src/lightning/tile/tile.js +5 -2
- package/src/lightning/tile/tile.js-meta.xml +3 -0
- package/src/lightning/tile/tile.lbc.native.css +4 -0
- package/src/lightning/timepicker/form-element.slds.css +1 -1
- package/src/lightning/toast/button-icon.slds.css +5 -5
- package/src/lightning/primitiveIcon/primitiveIcon.lbc.synthetic.css +0 -9
- /package/src/lightning/tile/{standardTile.lbc.synthetic.css → tile.lbc.synthetic.css} +0 -0
|
@@ -26,7 +26,7 @@ export default class PrimitiveCellCheckbox extends PrimitiveDatatableCell {
|
|
|
26
26
|
this._columnHeaderId = id || '';
|
|
27
27
|
const labelId = this.computedLabelId;
|
|
28
28
|
if (labelId) {
|
|
29
|
-
synchronizeAttrs(this.
|
|
29
|
+
synchronizeAttrs(this.refs.input, {
|
|
30
30
|
'aria-labelledby': `${labelId} ${this._columnHeaderId}`,
|
|
31
31
|
});
|
|
32
32
|
}
|
|
@@ -41,13 +41,16 @@ export default class PrimitiveCellCheckbox extends PrimitiveDatatableCell {
|
|
|
41
41
|
|
|
42
42
|
renderedCallback() {
|
|
43
43
|
//give input the correct aria-labelledby value
|
|
44
|
-
synchronizeAttrs(this.
|
|
44
|
+
synchronizeAttrs(this.refs.input, {
|
|
45
45
|
'aria-labelledby': `${this.computedLabelId} ${this.columnHeaderId}`,
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
get computedLabelId() {
|
|
50
|
-
|
|
50
|
+
if (this.isConnected && this.refs) {
|
|
51
|
+
return getRealDOMId(this.refs.label);
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
get selectItemAssistiveText() {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<span class="slds-radio">
|
|
3
|
-
<input
|
|
3
|
+
<input lwc:ref="input"
|
|
4
|
+
type="radio"
|
|
4
5
|
name={computedOptionName}
|
|
5
6
|
id="primitive-checkbox-radio-id"
|
|
6
7
|
tabindex={internalTabIndex}
|
|
@@ -11,9 +12,9 @@
|
|
|
11
12
|
disabled={isDisabled}
|
|
12
13
|
onkeydown={handleRadioKeyDown}
|
|
13
14
|
checked={isSelected}>
|
|
14
|
-
<label
|
|
15
|
-
id={labelId}
|
|
16
|
-
class="slds-radio__label"
|
|
15
|
+
<label lwc:ref="label"
|
|
16
|
+
id={labelId}
|
|
17
|
+
class="slds-radio__label"
|
|
17
18
|
for="primitive-checkbox-radio-id">
|
|
18
19
|
<span class="slds-radio_faux"></span>
|
|
19
20
|
<span class="slds-form-element__label slds-assistive-text">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<button tabindex={tabIndex} class="slds-button slds-button_icon slds-cell-edit__button slds-m-left_x-small">
|
|
2
|
+
<button lwc:ref="button" tabindex={tabIndex} class="slds-button slds-button_icon slds-cell-edit__button slds-m-left_x-small">
|
|
3
3
|
<lightning-primitive-icon
|
|
4
4
|
icon-name="utility:edit"
|
|
5
5
|
size="xx-small"
|
|
@@ -38,7 +38,7 @@ export default class PrivateCellEditableButton extends LightningElement {
|
|
|
38
38
|
|
|
39
39
|
get htmlButton() {
|
|
40
40
|
if (!this._htmlButton) {
|
|
41
|
-
this._htmlButton = this.
|
|
41
|
+
this._htmlButton = this.refs.button;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
return this._htmlButton;
|
|
@@ -93,9 +93,7 @@ export default class PrivateCellFactory extends PrimitiveDatatableCell {
|
|
|
93
93
|
this.template.querySelectorAll('[data-navigation="enable"]')
|
|
94
94
|
);
|
|
95
95
|
|
|
96
|
-
const customType = this.
|
|
97
|
-
'lightning-primitive-custom-cell'
|
|
98
|
-
);
|
|
96
|
+
const customType = this.refs.customCell;
|
|
99
97
|
|
|
100
98
|
if (customType) {
|
|
101
99
|
const wrapperActionableElements =
|
|
@@ -283,7 +281,7 @@ export default class PrivateCellFactory extends PrimitiveDatatableCell {
|
|
|
283
281
|
'slds-truncate':
|
|
284
282
|
columnType !== 'button-icon' && !isActionType && !_wrapText,
|
|
285
283
|
'slds-hyphenate': _wrapText,
|
|
286
|
-
'slds-line-clamp': _wrapText
|
|
284
|
+
'slds-line-clamp': _wrapText,
|
|
287
285
|
'ltr-content-in-rtl': document.dir === 'rtl' && this.isLtrType(),
|
|
288
286
|
});
|
|
289
287
|
}
|
|
@@ -357,8 +355,8 @@ export default class PrivateCellFactory extends PrimitiveDatatableCell {
|
|
|
357
355
|
}
|
|
358
356
|
|
|
359
357
|
get computedCssStyles() {
|
|
360
|
-
if (this._wrapText
|
|
361
|
-
return `${'--lwc-lineClamp'}: ${this.wrapTextMaxLines}`;
|
|
358
|
+
if (this._wrapText) {
|
|
359
|
+
return `${'--lwc-lineClamp'}: ${this.wrapTextMaxLines || 'none'}`;
|
|
362
360
|
}
|
|
363
361
|
return null;
|
|
364
362
|
}
|
|
@@ -69,7 +69,7 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
|
69
69
|
--slds-c-icon-color-foreground: var(--slds-g-color-disabled-1);
|
|
70
70
|
|
|
71
71
|
pointer-events: none;
|
|
72
|
-
border-color:
|
|
72
|
+
border-color: var(--slds-g-color-border-disabled-2);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
/* TO DO: .panel and .panel-open should be renamed
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
<lightning-button-icon tooltip={i18n.moveDownTooltip} icon-name="utility:arrowdown" onclick={handleMoveDown} disabled={isDownDisabled} variant="border-filled" alternative-text="Arrow Down"></lightning-button-icon>
|
|
13
13
|
</lightning-button-group>
|
|
14
14
|
<lightning-combobox
|
|
15
|
+
lwc:ref="combobox"
|
|
15
16
|
name="column select"
|
|
16
17
|
disabled={rule.disableInputs}
|
|
17
18
|
placeholder={i18n.dropdownPlaceholder}
|
|
@@ -26,7 +26,7 @@ export default class PrimitiveColumnSorter extends LightningElement {
|
|
|
26
26
|
@api
|
|
27
27
|
get combobox() {
|
|
28
28
|
if (!this._combobox) {
|
|
29
|
-
this._combobox = this.
|
|
29
|
+
this._combobox = this.refs.combobox;
|
|
30
30
|
}
|
|
31
31
|
return this._combobox;
|
|
32
32
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section
|
|
3
3
|
if:true={visible}
|
|
4
|
+
lwc:ref="section"
|
|
4
5
|
class="slds-popover slds-popover_edit"
|
|
5
6
|
role="dialog"
|
|
6
7
|
aria-label={dialogAriaLabel}
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
<template if:true={isMassEditEnabled}>
|
|
36
37
|
<!-- Checkbox to select in order to mass edit multiple rows -->
|
|
37
38
|
<lightning-input
|
|
39
|
+
lwc:ref="massSelectCheckbox"
|
|
38
40
|
data-mass-selection="true"
|
|
39
41
|
type="checkbox"
|
|
40
42
|
name="dt-iedit-mass-edit"
|
|
@@ -60,12 +62,12 @@
|
|
|
60
62
|
onclick={cancelEditing}>
|
|
61
63
|
</lightning-button>
|
|
62
64
|
<lightning-button
|
|
65
|
+
lwc:ref="formLastElement"
|
|
63
66
|
label={i18n.apply}
|
|
64
67
|
style="margin-left: .25rem"
|
|
65
68
|
variant="brand"
|
|
66
69
|
onblur={handleTypeElemBlur}
|
|
67
70
|
onfocus={handleTypeElemFocus}
|
|
68
|
-
data-form-last-element="true"
|
|
69
71
|
onclick={processSubmission}>
|
|
70
72
|
</lightning-button>
|
|
71
73
|
</div>
|
|
@@ -53,7 +53,7 @@ export default class PrimitiveDatatableIeditPanel extends LightningElement {
|
|
|
53
53
|
get isMassEditChecked() {
|
|
54
54
|
return (
|
|
55
55
|
this.isMassEditEnabled &&
|
|
56
|
-
this.
|
|
56
|
+
this.refs.massSelectCheckbox.checked
|
|
57
57
|
);
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -95,7 +95,7 @@ export default class PrimitiveDatatableIeditPanel extends LightningElement {
|
|
|
95
95
|
*/
|
|
96
96
|
@api
|
|
97
97
|
getPositionedElement() {
|
|
98
|
-
return this.
|
|
98
|
+
return this.refs.section;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
/************************* PRIVATE GETTERS *************************/
|
|
@@ -279,7 +279,7 @@ export default class PrimitiveDatatableIeditPanel extends LightningElement {
|
|
|
279
279
|
/************************* HELPER FUNCTIONS *************************/
|
|
280
280
|
|
|
281
281
|
focusLastElement() {
|
|
282
|
-
this.
|
|
282
|
+
this.refs.formLastElement.focus();
|
|
283
283
|
}
|
|
284
284
|
|
|
285
285
|
processSubmission() {
|
|
@@ -95,9 +95,7 @@ export default class LightningPrimitiveDatatableStatusBar extends LightningEleme
|
|
|
95
95
|
*/
|
|
96
96
|
handleShowError() {
|
|
97
97
|
Promise.resolve().then(() => {
|
|
98
|
-
const trigger = this.
|
|
99
|
-
'lightning-primitive-datatable-tooltip'
|
|
100
|
-
);
|
|
98
|
+
const trigger = this.refs.tooltip;
|
|
101
99
|
|
|
102
100
|
if (trigger) {
|
|
103
101
|
if (this.showErrorBubble) {
|
|
@@ -58,7 +58,7 @@ export default class PrimitiveHeaderActions extends LightningElement {
|
|
|
58
58
|
*/
|
|
59
59
|
@api
|
|
60
60
|
focus() {
|
|
61
|
-
const btnMenu = this.
|
|
61
|
+
const btnMenu = this.refs.buttonMenu;
|
|
62
62
|
|
|
63
63
|
if (btnMenu) {
|
|
64
64
|
btnMenu.focus();
|
|
@@ -109,9 +109,7 @@ export default class PrimitiveHeaderActions extends LightningElement {
|
|
|
109
109
|
event.preventDefault();
|
|
110
110
|
event.stopPropagation();
|
|
111
111
|
|
|
112
|
-
this.elementRect = this.
|
|
113
|
-
.querySelector('lightning-button-menu')
|
|
114
|
-
.getBoundingClientRect();
|
|
112
|
+
this.elementRect = this.refs.buttonMenu.getBoundingClientRect();
|
|
115
113
|
|
|
116
114
|
this.dispatchEvent(
|
|
117
115
|
new CustomEvent('privatecellheaderactionmenuopening', {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class={computedClass} style={columnStyles}>
|
|
2
|
+
<div lwc:ref="child" class={computedClass} style={columnStyles}>
|
|
3
3
|
|
|
4
4
|
<!-- Header Content -->
|
|
5
5
|
<span class="slds-th__action" style={thActionStyles}>
|
|
@@ -7,12 +7,17 @@
|
|
|
7
7
|
<div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
|
|
8
8
|
<lightning-icon icon-name={def.iconName} size="x-small" class="slds-icon_container slds-m-right_xx-small" alternative-text={def.label} title={def.label}></lightning-icon>
|
|
9
9
|
<template if:false={def.hideLabel} class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
|
|
10
|
-
<span class={getHeaderLabelStyle}>{def.label}</span>
|
|
10
|
+
<span class={getHeaderLabelClass} style={getHeaderLabelStyle}>{def.label}</span>
|
|
11
11
|
</template>
|
|
12
12
|
</div>
|
|
13
13
|
</template>
|
|
14
14
|
<template if:false={def.iconName}>
|
|
15
|
-
<span
|
|
15
|
+
<span if:true={def.label}
|
|
16
|
+
class={getHeaderLabelClass}
|
|
17
|
+
style={getHeaderLabelStyle}
|
|
18
|
+
title={def.label}>
|
|
19
|
+
{def.label}
|
|
20
|
+
</span>
|
|
16
21
|
<span class="slds-truncate" if:false={def.label} title={def.ariaLabel}></span>
|
|
17
22
|
</template>
|
|
18
23
|
|
|
@@ -58,11 +58,13 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
58
58
|
@api colIndex;
|
|
59
59
|
@api columnWidth;
|
|
60
60
|
@api dtContextId;
|
|
61
|
+
@api headerHeight;
|
|
61
62
|
@api resizestep;
|
|
62
63
|
@api showCheckbox = false;
|
|
63
64
|
@api sorted;
|
|
64
65
|
@api sortedDirection;
|
|
65
66
|
@api showActionsMenu;
|
|
67
|
+
@api wrapTextMaxLines;
|
|
66
68
|
|
|
67
69
|
/**
|
|
68
70
|
* Retrieves the computed header DOM `id`
|
|
@@ -71,7 +73,7 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
71
73
|
*/
|
|
72
74
|
@api
|
|
73
75
|
get computedColumnHeaderId() {
|
|
74
|
-
const el = this.
|
|
76
|
+
const el = this.refs.columnHeader;
|
|
75
77
|
return getRealDOMId(el);
|
|
76
78
|
}
|
|
77
79
|
|
|
@@ -152,6 +154,20 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
152
154
|
|
|
153
155
|
/************************** PUBLIC METHODS ***************************/
|
|
154
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Retrieves the header cell's height
|
|
159
|
+
*
|
|
160
|
+
* @return {string} The height of the cell
|
|
161
|
+
*/
|
|
162
|
+
@api
|
|
163
|
+
getDomHeight() {
|
|
164
|
+
const child = this.template.querySelector('.slds-hyphenate');
|
|
165
|
+
if (child) {
|
|
166
|
+
return child.offsetHeight;
|
|
167
|
+
}
|
|
168
|
+
return '';
|
|
169
|
+
}
|
|
170
|
+
|
|
155
171
|
/**
|
|
156
172
|
* Retrieves the header cell's width
|
|
157
173
|
*
|
|
@@ -159,7 +175,7 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
159
175
|
*/
|
|
160
176
|
@api
|
|
161
177
|
getDomWidth() {
|
|
162
|
-
const child = this.
|
|
178
|
+
const { child } = this.refs;
|
|
163
179
|
if (child) {
|
|
164
180
|
return child.offsetWidth;
|
|
165
181
|
}
|
|
@@ -168,6 +184,14 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
168
184
|
|
|
169
185
|
/************************** PRIVATE GETTERS **************************/
|
|
170
186
|
|
|
187
|
+
get shouldWrapText() {
|
|
188
|
+
const { _wrapTableHeader } = this;
|
|
189
|
+
return (
|
|
190
|
+
_wrapTableHeader === 'all' ||
|
|
191
|
+
(_wrapTableHeader === 'by-column' && this._def.wrapText)
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
|
|
171
195
|
/**
|
|
172
196
|
* Computes the styles for the column
|
|
173
197
|
*
|
|
@@ -182,7 +206,9 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
182
206
|
const offsetStyle =
|
|
183
207
|
document.dir === 'rtl' ? `right: ${this._def.offset}px;` : '';
|
|
184
208
|
const widthStyle = columnWidth ? `width: ${columnWidth}px;` : '';
|
|
185
|
-
const heightStyle = this.
|
|
209
|
+
const heightStyle = this.headerHeight
|
|
210
|
+
? `height: ${this.headerHeight}`
|
|
211
|
+
: '';
|
|
186
212
|
|
|
187
213
|
return `
|
|
188
214
|
${widthStyle}
|
|
@@ -226,22 +252,28 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
226
252
|
/**
|
|
227
253
|
* Computes styling for header label
|
|
228
254
|
*/
|
|
229
|
-
get
|
|
230
|
-
return this.
|
|
231
|
-
? 'slds-line-
|
|
255
|
+
get getHeaderLabelClass() {
|
|
256
|
+
return this.shouldWrapText
|
|
257
|
+
? 'slds-line-clamp slds-hyphenate'
|
|
232
258
|
: 'slds-truncate';
|
|
233
259
|
}
|
|
234
260
|
|
|
261
|
+
/**
|
|
262
|
+
* Computes styling for header label
|
|
263
|
+
*/
|
|
264
|
+
get getHeaderLabelStyle() {
|
|
265
|
+
return this.shouldWrapText
|
|
266
|
+
? `--lwc-lineClamp: ${this.wrapTextMaxLines || 'none'}`
|
|
267
|
+
: '';
|
|
268
|
+
}
|
|
269
|
+
|
|
235
270
|
/**
|
|
236
271
|
* Get th Action styles (needed for wrapping headers)
|
|
237
272
|
*
|
|
238
273
|
* @return {string} The computed classes
|
|
239
274
|
*/
|
|
240
275
|
get thActionStyles() {
|
|
241
|
-
|
|
242
|
-
return `
|
|
243
|
-
${heightStyle}
|
|
244
|
-
`;
|
|
276
|
+
return this.headerHeight ? `height: ${this.headerHeight}` : '';
|
|
245
277
|
}
|
|
246
278
|
|
|
247
279
|
/**
|
|
@@ -494,9 +526,7 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
|
|
|
494
526
|
*/
|
|
495
527
|
updateBulkSelectionCheckbox() {
|
|
496
528
|
const { bulkSelection } = this._def;
|
|
497
|
-
const allCheckbox = this.
|
|
498
|
-
'.datatable-select-all'
|
|
499
|
-
);
|
|
529
|
+
const allCheckbox = this.refs.selectAll;
|
|
500
530
|
allCheckbox.indeterminate = bulkSelection === 'some';
|
|
501
531
|
|
|
502
532
|
// Note: since we have to handle the indeterminate state,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<span id="column-group-header" class="slds-assistive-text" data-column-header>
|
|
2
|
+
<span lwc:ref="columnHeader" id="column-group-header" class="slds-assistive-text" data-column-header>
|
|
3
3
|
{computedColumnHeaderLabel}
|
|
4
4
|
</span>
|
|
5
5
|
<!-- Header Content -->
|
|
6
|
-
<div class="slds-th__action slds-th__action_form slds-cell-fixed" style={columnStyles}>
|
|
6
|
+
<div lwc:ref="child" class="slds-th__action slds-th__action_form slds-cell-fixed" style={columnStyles}>
|
|
7
7
|
<template if:true={showCheckbox}>
|
|
8
8
|
<span class="slds-checkbox">
|
|
9
9
|
<!-- Selectable Checkbox -->
|
|
10
10
|
<input
|
|
11
|
+
lwc:ref="selectAll"
|
|
11
12
|
type="checkbox"
|
|
12
13
|
class="datatable-select-all"
|
|
13
14
|
name={computedOptionName}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<!-- Header Content -->
|
|
3
|
-
<span class={computedClass} tabindex={internalTabIndex} style={columnStyles}>
|
|
3
|
+
<span lwc:ref="child" class={computedClass} tabindex={internalTabIndex} style={columnStyles}>
|
|
4
4
|
|
|
5
5
|
<a href="javascript:void(0);"
|
|
6
6
|
class={computedSortClass}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
|
|
19
19
|
<lightning-icon icon-name={def.iconName} size="x-small" class="slds-icon_container slds-m-right_xx-small" alternative-text={def.label} title={def.label}></lightning-icon>
|
|
20
20
|
<template if:false={def.hideLabel} class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
|
|
21
|
-
<span class={getHeaderLabelStyle}>{def.label}</span>
|
|
21
|
+
<span class={getHeaderLabelClass} style={getHeaderLabelStyle}>{def.label}</span>
|
|
22
22
|
</template>
|
|
23
23
|
|
|
24
24
|
<!-- Arrow Icon - Rotates based on sorting direction -->
|
|
@@ -31,7 +31,12 @@
|
|
|
31
31
|
</div>
|
|
32
32
|
</template>
|
|
33
33
|
<template if:false={def.iconName}>
|
|
34
|
-
<span
|
|
34
|
+
<span
|
|
35
|
+
class={getHeaderLabelClass}
|
|
36
|
+
style={getHeaderLabelStyle}
|
|
37
|
+
title={def.label}>
|
|
38
|
+
{def.label}
|
|
39
|
+
</span>
|
|
35
40
|
<!-- Arrow Icon - Rotates based on sorting direction -->
|
|
36
41
|
<lightning-primitive-icon
|
|
37
42
|
class="slds-icon_container"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="slds-th__action slds-th__action_form slds-cell-fixed" style={columnStyles}>
|
|
2
|
+
<div lwc:ref="child" class="slds-th__action slds-th__action_form slds-cell-fixed" style={columnStyles}>
|
|
3
3
|
<lightning-button-menu alternative-text="Show menu" internal-datatable-actions-menu icon-name="utility:threedots" variant="border-filled" menu-alignment="right" icon-size="x-small" tooltip={i18n.sortingMenuTooltip} onselect={handleSortingMenuSelection}>
|
|
4
4
|
<lightning-menu-item value="MultiColumnSorting" label={i18n.sortingMenuMultiColumnSort}></lightning-menu-item>
|
|
5
5
|
<lightning-menu-item value="ReorderRow" label={i18n.sortingMenuRows}></lightning-menu-item>
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
hyphens: auto;
|
|
47
47
|
display: inline-block;
|
|
48
48
|
color: var(--slds-g-color-on-surface-2);
|
|
49
|
-
font-size: var(--slds-
|
|
49
|
+
font-size: var(--slds-g-font-scale-neg-3);
|
|
50
50
|
padding-inline-end: var(--slds-g-spacing-2);
|
|
51
51
|
padding-block-start: var(--slds-g-spacing-1);
|
|
52
52
|
margin-block-end: calc(var(--slds-g-spacing-1) / 2);
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
hyphens: auto;
|
|
47
47
|
display: inline-block;
|
|
48
48
|
color: var(--slds-g-color-on-surface-2);
|
|
49
|
-
font-size: var(--slds-
|
|
49
|
+
font-size: var(--slds-g-font-scale-neg-3);
|
|
50
50
|
padding-inline-end: var(--slds-g-spacing-2);
|
|
51
51
|
padding-block-start: var(--slds-g-spacing-1);
|
|
52
52
|
margin-block-end: calc(var(--slds-g-spacing-1) / 2);
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
hyphens: auto;
|
|
47
47
|
display: inline-block;
|
|
48
48
|
color: var(--slds-g-color-on-surface-2);
|
|
49
|
-
font-size: var(--slds-
|
|
49
|
+
font-size: var(--slds-g-font-scale-neg-3);
|
|
50
50
|
padding-inline-end: var(--slds-g-spacing-2);
|
|
51
51
|
padding-block-start: var(--slds-g-spacing-1);
|
|
52
52
|
margin-block-end: calc(var(--slds-g-spacing-1) / 2);
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
--sds-c-inputtext-text-color: var(--slds-c-inputtext-text-color);
|
|
247
247
|
--sds-c-inputtext-font-size: var(
|
|
248
248
|
--slds-c-inputtext-font-size,
|
|
249
|
-
var(--slds-g-font-
|
|
249
|
+
var(--slds-g-font-scale-neg-2)
|
|
250
250
|
);
|
|
251
251
|
--sds-c-inputtext-text-color-placeholder: var(
|
|
252
252
|
--slds-c-inputtext-text-color-placeholder,
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
|
|
265
265
|
display: flex;
|
|
266
266
|
flex-wrap: wrap;
|
|
267
|
-
|
|
267
|
+
align-items: center;
|
|
268
268
|
}
|
|
269
269
|
/**
|
|
270
270
|
* Input Container
|
|
@@ -371,10 +371,6 @@
|
|
|
371
371
|
--sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
|
|
372
372
|
--sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
|
|
373
373
|
}
|
|
374
|
-
:host([data-render-mode="shadow"][disabled]) [part='input-text'] {
|
|
375
|
-
--sds-c-inputtext-text-color-placeholder:
|
|
376
|
-
var(--slds-g-color-on-disabled-2);
|
|
377
|
-
}
|
|
378
374
|
/**
|
|
379
375
|
* Label
|
|
380
376
|
*
|
|
@@ -388,7 +384,10 @@
|
|
|
388
384
|
--slds-c-inputtext-label-color,
|
|
389
385
|
var(--slds-g-color-on-surface-2)
|
|
390
386
|
);
|
|
391
|
-
font-size: var(
|
|
387
|
+
font-size: var(
|
|
388
|
+
--slds-c-inputtext-label-font-size,
|
|
389
|
+
var(--slds-g-font-scale-neg-3)
|
|
390
|
+
);
|
|
392
391
|
margin-block-end: var(--slds-g-sizing-1);
|
|
393
392
|
|
|
394
393
|
/* We inline flex to control the spacing between elements and not have to rely on whitespace characters */
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
hyphens: auto;
|
|
47
47
|
display: inline-block;
|
|
48
48
|
color: var(--slds-g-color-on-surface-2);
|
|
49
|
-
font-size: var(--slds-
|
|
49
|
+
font-size: var(--slds-g-font-scale-neg-3);
|
|
50
50
|
padding-inline-end: var(--slds-g-spacing-2);
|
|
51
51
|
padding-block-start: var(--slds-g-spacing-1);
|
|
52
52
|
margin-block-end: calc(var(--slds-g-spacing-1) / 2);
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
hyphens: auto;
|
|
47
47
|
display: inline-block;
|
|
48
48
|
color: var(--slds-g-color-on-surface-2);
|
|
49
|
-
font-size: var(--slds-
|
|
49
|
+
font-size: var(--slds-g-font-scale-neg-3);
|
|
50
50
|
padding-inline-end: var(--slds-g-spacing-2);
|
|
51
51
|
padding-block-start: var(--slds-g-spacing-1);
|
|
52
52
|
margin-block-end: calc(var(--slds-g-spacing-1) / 2);
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
--sds-c-inputtext-text-color: var(--slds-c-inputtext-text-color);
|
|
247
247
|
--sds-c-inputtext-font-size: var(
|
|
248
248
|
--slds-c-inputtext-font-size,
|
|
249
|
-
var(--slds-g-font-
|
|
249
|
+
var(--slds-g-font-scale-neg-2)
|
|
250
250
|
);
|
|
251
251
|
--sds-c-inputtext-text-color-placeholder: var(
|
|
252
252
|
--slds-c-inputtext-text-color-placeholder,
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
|
|
265
265
|
display: flex;
|
|
266
266
|
flex-wrap: wrap;
|
|
267
|
-
|
|
267
|
+
align-items: center;
|
|
268
268
|
}
|
|
269
269
|
/**
|
|
270
270
|
* Input Container
|
|
@@ -371,10 +371,6 @@
|
|
|
371
371
|
--sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
|
|
372
372
|
--sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
|
|
373
373
|
}
|
|
374
|
-
:host([data-render-mode="shadow"][disabled]) [part='input-text'] {
|
|
375
|
-
--sds-c-inputtext-text-color-placeholder:
|
|
376
|
-
var(--slds-g-color-on-disabled-2);
|
|
377
|
-
}
|
|
378
374
|
/**
|
|
379
375
|
* Label
|
|
380
376
|
*
|
|
@@ -388,7 +384,10 @@
|
|
|
388
384
|
--slds-c-inputtext-label-color,
|
|
389
385
|
var(--slds-g-color-on-surface-2)
|
|
390
386
|
);
|
|
391
|
-
font-size: var(
|
|
387
|
+
font-size: var(
|
|
388
|
+
--slds-c-inputtext-label-font-size,
|
|
389
|
+
var(--slds-g-font-scale-neg-3)
|
|
390
|
+
);
|
|
392
391
|
margin-block-end: var(--slds-g-sizing-1);
|
|
393
392
|
|
|
394
393
|
/* We inline flex to control the spacing between elements and not have to rely on whitespace characters */
|