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
|
@@ -21,7 +21,7 @@ export function isValidSortDirection(value) {
|
|
|
21
21
|
* Gets the default sort direction. When clicking on a header to sort,
|
|
22
22
|
* the default sort direction is applied first. Clicking again reverses it
|
|
23
23
|
*
|
|
24
|
-
* @param {Object} state The
|
|
24
|
+
* @param {Object} state The datatable state
|
|
25
25
|
* @returns {String} The default sort direction
|
|
26
26
|
*/
|
|
27
27
|
export function getDefaultSortDirection(state) {
|
|
@@ -36,21 +36,22 @@ export function getDefaultSortDirection(state) {
|
|
|
36
36
|
* @param {String} value The value to update the default sort direction to
|
|
37
37
|
*/
|
|
38
38
|
export function setDefaultSortDirection(state, value) {
|
|
39
|
+
if (isValidSortDirection(value)) {
|
|
40
|
+
state.defaultSortDirection = value;
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
39
43
|
assert(
|
|
40
|
-
|
|
44
|
+
false,
|
|
41
45
|
`The "defaultSortDirection" value passed into lightning:datatable
|
|
42
46
|
is incorrect, "defaultSortDirection" value should be one of
|
|
43
47
|
${Object.keys(VALID_SORT_DIRECTIONS).join()}.`
|
|
44
48
|
);
|
|
45
|
-
state.defaultSortDirection = isValidSortDirection(value)
|
|
46
|
-
? value
|
|
47
|
-
: getDefaultSortDirection(state);
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
/**
|
|
51
52
|
* Gets the current sort direction
|
|
52
53
|
*
|
|
53
|
-
* @param {Object} state The
|
|
54
|
+
* @param {Object} state The datatable state
|
|
54
55
|
* @returns {String} The current sort direction
|
|
55
56
|
*/
|
|
56
57
|
export function getSortedDirection(state) {
|
|
@@ -63,25 +64,28 @@ export function getSortedDirection(state) {
|
|
|
63
64
|
* an error providing resolution information. In an error case,
|
|
64
65
|
* `sortedDirection` will be `undefined`
|
|
65
66
|
*
|
|
66
|
-
* @param {Object} state The
|
|
67
|
+
* @param {Object} state The datatable state
|
|
67
68
|
* @param {String} value The value to update the sort direction to
|
|
68
69
|
*/
|
|
69
70
|
export function setSortedDirection(state, value) {
|
|
70
|
-
|
|
71
|
+
if (isValidSortDirection(value)) {
|
|
72
|
+
state.sortedDirection = value;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
71
75
|
assert(
|
|
72
|
-
|
|
76
|
+
false,
|
|
73
77
|
`The "sortedDirection" value passed into lightning:datatable
|
|
74
78
|
is incorrect, "sortedDirection" value should be one of
|
|
75
79
|
${Object.keys(VALID_SORT_DIRECTIONS).join()}.`
|
|
76
80
|
);
|
|
77
|
-
state.sortedDirection =
|
|
81
|
+
state.sortedDirection = undefined;
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
/**
|
|
81
85
|
* Gets the current sort value. The value will match the name
|
|
82
86
|
* of a given column in the datatable
|
|
83
87
|
*
|
|
84
|
-
* @param {Object} state The
|
|
88
|
+
* @param {Object} state The datatable state
|
|
85
89
|
* @returns {String} The current sort value
|
|
86
90
|
*/
|
|
87
91
|
export function getSortedBy(state) {
|
|
@@ -94,7 +98,7 @@ export function getSortedBy(state) {
|
|
|
94
98
|
* non-string value is provided, the sort value with fallback
|
|
95
99
|
* to `undefined`
|
|
96
100
|
*
|
|
97
|
-
* @param {Object} state The
|
|
101
|
+
* @param {Object} state The datatable state
|
|
98
102
|
* @param {String} value The value to update the sort state to
|
|
99
103
|
*/
|
|
100
104
|
export function setSortedBy(state, value) {
|
|
@@ -120,20 +124,20 @@ export function updateSorting(state) {
|
|
|
120
124
|
/**
|
|
121
125
|
* Applies sorting to a datatable column
|
|
122
126
|
*
|
|
123
|
-
* @param {Object}
|
|
127
|
+
* @param {Object} col The datatable column name to sort
|
|
124
128
|
* @param {Object} state The current datatable state
|
|
125
129
|
*/
|
|
126
|
-
export function updateColumnSortingState(
|
|
130
|
+
export function updateColumnSortingState(col, state) {
|
|
127
131
|
const { sortedBy, sortedDirection, defaultSortDirection } = state;
|
|
128
|
-
|
|
129
|
-
if (
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
const { sortable } = col;
|
|
133
|
+
if (sortable && getColumnName(col) === sortedBy) {
|
|
134
|
+
col.sorted = true;
|
|
135
|
+
col.sortAriaLabel =
|
|
132
136
|
sortedDirection === 'desc' ? 'descending' : 'ascending';
|
|
133
|
-
|
|
137
|
+
col.sortedDirection = sortedDirection;
|
|
134
138
|
} else {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
139
|
+
col.sorted = false;
|
|
140
|
+
col.sortAriaLabel = sortable ? 'other' : null;
|
|
141
|
+
col.sortedDirection = defaultSortDirection;
|
|
138
142
|
}
|
|
139
143
|
}
|
|
@@ -1,57 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
.cell {
|
|
4
|
-
display: inline-block;
|
|
5
|
-
padding: .25rem .5rem;
|
|
6
|
-
white-space: nowrap;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.column-header {
|
|
10
|
-
color: #514f4d;
|
|
11
|
-
padding: .25rem .5rem;
|
|
12
|
-
font-weight: 700;
|
|
13
|
-
line-height: normal;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.table-header {
|
|
17
|
-
height: 0;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* Row borders */
|
|
21
|
-
[data-row-key-value] {
|
|
22
|
-
border-top: 1px solid #dddbda;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.slds-table_header-fixed [data-row-key-value]:first-child {
|
|
26
|
-
border-top: 0;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/* Required for row numbers */
|
|
30
|
-
[role="row"] {
|
|
31
|
-
counter-increment: row-number;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/* Move column header row to left;
|
|
35
|
-
TODO: See if there a better way */
|
|
36
|
-
[role="grid"] > [role="rowgroup"]:nth-child(1) {
|
|
37
|
-
margin-left: -0.5rem;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
[role="columnheader"] {
|
|
41
|
-
outline: none;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
[role="row"]:hover {
|
|
45
|
-
background-color: var(--sds-c-color-background, #f3f2f2);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
[role="row"].slds-is-selected {
|
|
49
|
-
background-color: var(--sds-c-color-background-dark, #ecebea);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
[role="rowheader"].slds-has-focus,
|
|
53
|
-
[role="rowheader"]:focus {
|
|
54
|
-
box-shadow: var(--sds-c-color-border-selection, #0176d3) 0 0 0 1px inset;
|
|
55
|
-
box-shadow: var(--sds-c-color-border-selection, #0176d3) 0 0 0 1px inset;
|
|
56
|
-
outline: 0;
|
|
57
|
-
}
|
|
1
|
+
@import './div.lbc.synthetic.css';
|
|
2
|
+
@import './div.lbc.native.css';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<span data-keyboard-mode="action" class={computedAriaLiveClassForActionMode}>{i18n.ariaLiveActionMode}</span>
|
|
8
8
|
</span>
|
|
9
9
|
<div lwc:dom="manual" class="dt-width-observer" style="width: 100%; height: 0px;"></div>
|
|
10
|
-
<div class="dt-outer-container" style="height: 100%; position: relative;">
|
|
10
|
+
<div part="datagrid-wrapper" class="dt-outer-container" style="height: 100%; position: relative;">
|
|
11
11
|
<!-- Inline Edit Panel -->
|
|
12
12
|
<lightning-primitive-datatable-iedit-panel
|
|
13
13
|
data-iedit-panel="true"
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
<div class="slds-scrollable_y" onscroll={handleVerticalScroll} style={computedScrollerStyle}>
|
|
28
28
|
<!-- Corresponds to <table> -->
|
|
29
29
|
<div class={computedTableClass}
|
|
30
|
+
part="datagrid"
|
|
30
31
|
role={computedTableRole}
|
|
31
32
|
style={computedTableStyle}
|
|
32
33
|
onkeydown={handleTableKeydown}
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
onfocusout={handleTableFocusOut}
|
|
36
37
|
aria-label={ariaLabel}
|
|
37
38
|
aria-labelledby={ariaLabelledBy}
|
|
39
|
+
aria-describedby={ariaDescribedBy}
|
|
38
40
|
aria-rowcount={ariaRowCount}
|
|
39
41
|
aria-colcount={ariaColCount}
|
|
40
42
|
data-num-rows={data.length}
|
|
@@ -46,6 +48,7 @@
|
|
|
46
48
|
<template if:true={hasValidKeyField}>
|
|
47
49
|
<!-- Corresponds to <thead> -->
|
|
48
50
|
<div
|
|
51
|
+
part="datagrid-header"
|
|
49
52
|
data-rowgroup-header
|
|
50
53
|
role="rowgroup">
|
|
51
54
|
<!-- TODO: Fix aria-rowindex to not be hardcoded -->
|
|
@@ -59,7 +62,8 @@
|
|
|
59
62
|
onprivateresizeend={handleResizeEnd}>
|
|
60
63
|
<template for:each={state.columns} for:item="def" for:index="colIndex">
|
|
61
64
|
<!-- Column Header -->
|
|
62
|
-
<div
|
|
65
|
+
<div part="cell"
|
|
66
|
+
class="column-header cell"
|
|
63
67
|
style={def.style}
|
|
64
68
|
role="columnheader"
|
|
65
69
|
tabindex={def.tabIndex}
|
|
@@ -118,7 +122,7 @@
|
|
|
118
122
|
</div>
|
|
119
123
|
</div>
|
|
120
124
|
<!-- Corresponds to <tbody> -->
|
|
121
|
-
<div
|
|
125
|
+
<div part="datagrid-body"
|
|
122
126
|
data-rowgroup-body
|
|
123
127
|
role="rowgroup"
|
|
124
128
|
style={computedTbodyStyle}>
|
|
@@ -142,7 +146,8 @@
|
|
|
142
146
|
<template for:each={row.cells} for:item="cell">
|
|
143
147
|
<template if:true={cell.isCheckbox}>
|
|
144
148
|
<!-- Checkbox Cell -->
|
|
145
|
-
<div
|
|
149
|
+
<div part="cell"
|
|
150
|
+
class={cell.class}
|
|
146
151
|
style={cell.style}
|
|
147
152
|
role="gridcell"
|
|
148
153
|
tabindex={cell.tabIndex}
|
|
@@ -166,7 +171,8 @@
|
|
|
166
171
|
</template>
|
|
167
172
|
<template if:true={cell.isDataTypeScope}>
|
|
168
173
|
<!-- Row Header Cell -->
|
|
169
|
-
<div
|
|
174
|
+
<div part="cell"
|
|
175
|
+
class={cell.class}
|
|
170
176
|
role="rowheader"
|
|
171
177
|
style={cell.style}
|
|
172
178
|
aria-selected={cell.ariaSelected}
|
|
@@ -215,7 +221,8 @@
|
|
|
215
221
|
</template>
|
|
216
222
|
<template if:true={cell.isDataType}>
|
|
217
223
|
<!-- Non-Header Cells (Regular Data Cells) -->
|
|
218
|
-
<div
|
|
224
|
+
<div part="cell"
|
|
225
|
+
class={cell.class}
|
|
219
226
|
role="gridcell"
|
|
220
227
|
style={cell.style}
|
|
221
228
|
aria-selected={cell.ariaSelected}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* TODO: fix first row's top border and last row's bottom border. first row issue is due to
|
|
2
|
+
* using a sticky header. further investigation is needed for the last row issue.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
.slds-table_header-fixed [part='datagrid-header'] {
|
|
6
|
+
position: sticky;
|
|
7
|
+
top: 0;
|
|
8
|
+
min-height: var(--slds-g-sizing-9);
|
|
9
|
+
z-index: 1;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.table-header {
|
|
13
|
+
height: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* required as header above is using position: sticky */
|
|
17
|
+
.slds-table_header-fixed_container {
|
|
18
|
+
padding-top: unset;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Cells */
|
|
22
|
+
[part='cell'] {
|
|
23
|
+
position: relative;
|
|
24
|
+
padding-inline: var(--slds-g-sizing-3);
|
|
25
|
+
padding-block: var(--slds-g-sizing-2);
|
|
26
|
+
white-space: nowrap;
|
|
27
|
+
align-items: center;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* cell focus border color */
|
|
31
|
+
[role='gridcell']:focus,
|
|
32
|
+
[role='rowheader']:focus {
|
|
33
|
+
box-shadow: var(--slds-g-color-border-accent-2) 0 0 0 1px inset;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Column Header Cells */
|
|
37
|
+
[role='columnheader'] {
|
|
38
|
+
outline: none;
|
|
39
|
+
color: #514f4d;
|
|
40
|
+
font-weight: 700;
|
|
41
|
+
line-height: normal;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Rows */
|
|
45
|
+
|
|
46
|
+
/* Row borders */
|
|
47
|
+
[data-row-key-value] {
|
|
48
|
+
border-top: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-1);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* row border on hover */
|
|
52
|
+
[data-row-key-value]:hover [role='gridcell']:not(.slds-has-focus),
|
|
53
|
+
[data-row-key-value]:hover [role='rowheader']:not(.slds-has-focus) {
|
|
54
|
+
box-shadow: inset 0 var(--slds-g-sizing-border-1) var(--slds-g-color-border-1),
|
|
55
|
+
inset 0 calc(var(--slds-g-sizing-border-1) * -1) var(--slds-g-color-border-1);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.slds-table_header-fixed [data-row-key-value]:first-child {
|
|
59
|
+
border-top: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
[role="row"] {
|
|
64
|
+
/* Required for row numbers */
|
|
65
|
+
counter-increment: row-number;
|
|
66
|
+
display: flex;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Move column header row to left;
|
|
70
|
+
TODO: See if there a better way */
|
|
71
|
+
[role="grid"]>[role="rowgroup"]:nth-child(1) {
|
|
72
|
+
margin-left: -0.5rem;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* TODO: Replace with styling hook */
|
|
76
|
+
[role="row"]:hover {
|
|
77
|
+
background-color: #f3f2f2;
|
|
78
|
+
}
|
|
79
|
+
/* TODO: Replace with styling hook */
|
|
80
|
+
[role="row"].slds-is-selected {
|
|
81
|
+
background-color: #ecebea;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.slds-cell-edit:hover {
|
|
85
|
+
background-color: var(--slds-g-color-surface-container-1);
|
|
86
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { classSetToString } from 'lightning/utilsPrivate';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const CLASS_SET_PROTOTYPE = {
|
|
4
4
|
add(className) {
|
|
5
5
|
if (typeof className === 'string') {
|
|
6
6
|
this[className] = true;
|
|
@@ -52,8 +52,8 @@ export const isObjectLike = function (value) {
|
|
|
52
52
|
*/
|
|
53
53
|
export function classSet(config) {
|
|
54
54
|
return typeof config === 'string'
|
|
55
|
-
? { __proto__:
|
|
56
|
-
: Object.assign({ __proto__:
|
|
55
|
+
? { __proto__: CLASS_SET_PROTOTYPE, [config]: true }
|
|
56
|
+
: Object.assign({ __proto__: CLASS_SET_PROTOTYPE }, config);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/**
|
|
@@ -110,13 +110,13 @@ export function normalizeNumberAttribute(
|
|
|
110
110
|
let warningMessage;
|
|
111
111
|
if (numberType === 'positive') {
|
|
112
112
|
if (isPositiveInteger(value)) {
|
|
113
|
-
return parseInt(value, 10);
|
|
113
|
+
return Number.parseInt(value, 10);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
warningMessage = `The attribute "${attrName}" value passed in is incorrect. "${attrName}" value should be an integer > 0.`;
|
|
117
117
|
} else if (numberType === 'non-negative') {
|
|
118
118
|
if (isNonNegativeInteger(value)) {
|
|
119
|
-
return parseInt(value, 10);
|
|
119
|
+
return Number.parseInt(value, 10);
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
warningMessage = `The attribute "${attrName}" value passed in is incorrect. "${attrName}" value should be an integer >= 0.`;
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* number of fixed, flexible, and resized columns in the table
|
|
4
4
|
*
|
|
5
5
|
* @param {Object} columnWidthMetaData The initial column widths metadata
|
|
6
|
-
* @param {Object}
|
|
6
|
+
* @param {Object} columns The state column definitions
|
|
7
7
|
* @returns {Object} The computed metadata
|
|
8
8
|
*/
|
|
9
|
-
export function
|
|
10
|
-
const
|
|
9
|
+
export function getTotalWidthsData(columnWidthMetaData, columns) {
|
|
10
|
+
const totalWidthsData = {
|
|
11
11
|
totalFixedWidth: 0,
|
|
12
12
|
totalFixedColumns: 0,
|
|
13
13
|
totalResizedWidth: 0,
|
|
@@ -17,22 +17,23 @@ export function getTotalWidthsMetadata(columnWidthMetaData, columnDefs) {
|
|
|
17
17
|
maxColumnWidth: columnWidthMetaData.maxColumnWidth,
|
|
18
18
|
wrapTextMaxLines: columnWidthMetaData.wrapTextMaxLines,
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
for (let colIndex = 0; colIndex < columns.length; colIndex += 1) {
|
|
21
|
+
const col = columns[colIndex];
|
|
22
|
+
const { fixedWidth, initialWidth } = col;
|
|
23
|
+
if (fixedWidth) {
|
|
24
|
+
totalWidthsData.totalFixedWidth += fixedWidth;
|
|
25
|
+
totalWidthsData.totalFixedColumns += 1;
|
|
25
26
|
} else if (col.isResized) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} else if (
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
totalWidthsData.totalResizedWidth += col.columnWidth;
|
|
28
|
+
totalWidthsData.totalResizedColumns += 1;
|
|
29
|
+
} else if (initialWidth) {
|
|
30
|
+
totalWidthsData.totalResizedWidth += initialWidth;
|
|
31
|
+
totalWidthsData.totalResizedColumns += 1;
|
|
31
32
|
} else {
|
|
32
|
-
|
|
33
|
+
totalWidthsData.totalFlexibleColumns += 1;
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
}
|
|
36
|
+
return totalWidthsData;
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
/**
|
|
@@ -54,12 +55,14 @@ export function getDomWidth(element) {
|
|
|
54
55
|
* @param {Object} column The column object
|
|
55
56
|
* @returns {Number} The fixed width, resized width, or initial width of the column (in that priority order)
|
|
56
57
|
*/
|
|
57
|
-
export function
|
|
58
|
-
|
|
59
|
-
if (
|
|
60
|
-
|
|
58
|
+
export function getColumnWidth(column) {
|
|
59
|
+
const { fixedWidth } = column;
|
|
60
|
+
if (fixedWidth) {
|
|
61
|
+
return fixedWidth;
|
|
61
62
|
}
|
|
62
|
-
return column.
|
|
63
|
+
return column.isResized
|
|
64
|
+
? column.columnWidth || column.initialWidth
|
|
65
|
+
: column.initialWidth;
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
/**
|
|
@@ -41,15 +41,13 @@ export function getWrapTextState(state = getDefaultState(), colKeyValue) {
|
|
|
41
41
|
*
|
|
42
42
|
* NOTE: Wrap text is not supported in IE, so default parameters are fine here.
|
|
43
43
|
*
|
|
44
|
-
* @param {Object} state
|
|
45
|
-
* @param {Object}
|
|
44
|
+
* @param {Object} state The datatable state
|
|
45
|
+
* @param {Object} col The datatable column definitions
|
|
46
46
|
*/
|
|
47
|
-
export function setWrapTextState(state = getDefaultState(),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
state.wrapText[colKeyValue] =
|
|
52
|
-
normalizeBoolean(wrapText) || WRAP_TEXT_DEFAULT;
|
|
47
|
+
export function setWrapTextState(state = getDefaultState(), col) {
|
|
48
|
+
if (isWrappableType(col.type)) {
|
|
49
|
+
state.wrapText[col.colKeyValue] =
|
|
50
|
+
normalizeBoolean(col.wrapText) || WRAP_TEXT_DEFAULT;
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
53
|
|
|
@@ -59,7 +57,7 @@ export function setWrapTextState(state = getDefaultState(), columnDefinition) {
|
|
|
59
57
|
* Normalizes and sets wrapTextMaxLines in datatable's state object.
|
|
60
58
|
* The normalized value should be a positive integer or it'll fall back to undefined.
|
|
61
59
|
*
|
|
62
|
-
* @param {Object} state
|
|
60
|
+
* @param {Object} state The datatable state
|
|
63
61
|
* @param {Integer} value The maximum lines allowed
|
|
64
62
|
*/
|
|
65
63
|
export function setWrapTextMaxLines(state, value) {
|
|
@@ -98,19 +96,19 @@ function updateWrapTextAndMaxLinesValuesInCells(state, colIndex, colKeyValue) {
|
|
|
98
96
|
* provides - Wrap Text and Clip Text.
|
|
99
97
|
* Each header action contains a label, title, action name and its selected value (checked)
|
|
100
98
|
*
|
|
101
|
-
* @param {Object} state
|
|
102
|
-
* @param {Object}
|
|
99
|
+
* @param {Object} state The datatable state
|
|
100
|
+
* @param {Object} col The datatable column definition
|
|
103
101
|
* @returns {Array} An array of wrap text actions
|
|
104
102
|
*/
|
|
105
|
-
export function getActions(state,
|
|
103
|
+
export function getActions(state, col) {
|
|
106
104
|
const wrapTextActions = [];
|
|
107
|
-
const {
|
|
105
|
+
const { type, colKeyValue } = col;
|
|
108
106
|
|
|
109
|
-
//
|
|
110
|
-
setWrapTextState(state,
|
|
107
|
+
// Must be done first, so getWrapTextState correctly resolves.
|
|
108
|
+
setWrapTextState(state, col);
|
|
111
109
|
|
|
112
|
-
//
|
|
113
|
-
if (isWrappableType(type)
|
|
110
|
+
// If not hidden and isWrapable, sets the internal actions.
|
|
111
|
+
if (!col.hideDefaultActions && isWrappableType(type)) {
|
|
114
112
|
const isTextWrapped = getWrapTextState(state, colKeyValue);
|
|
115
113
|
|
|
116
114
|
wrapTextActions.push({
|
|
@@ -136,18 +134,19 @@ export function getActions(state, columnDefinition) {
|
|
|
136
134
|
* needs to be changed in the state, change it to the new value and update
|
|
137
135
|
* the check mark to represent the currently selected action
|
|
138
136
|
*
|
|
139
|
-
* @param {Object} state
|
|
137
|
+
* @param {Object} state The datatable state
|
|
140
138
|
* @param {String} action Action that was selected/triggered
|
|
141
139
|
* @param {String} colKeyValue Column key value
|
|
142
140
|
*/
|
|
143
141
|
export function handleTriggeredAction(state, action, colKeyValue) {
|
|
144
|
-
const
|
|
145
|
-
|
|
142
|
+
const { name } = action;
|
|
143
|
+
const isWrapText = name === 'wrapText';
|
|
144
|
+
if (isWrapText || name === 'clipText') {
|
|
146
145
|
// If state should be changed
|
|
147
|
-
if (state.wrapText[colKeyValue] !==
|
|
146
|
+
if (state.wrapText[colKeyValue] !== isWrapText) {
|
|
148
147
|
state.shouldResetHeights = true;
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
// Untracked state changes.
|
|
149
|
+
state.wrapText[colKeyValue] = isWrapText;
|
|
151
150
|
updateSelectedOptionInHeaderActions(state, colKeyValue);
|
|
152
151
|
}
|
|
153
152
|
}
|
|
@@ -166,8 +165,8 @@ function updateSelectedOptionInHeaderActions(state, colKeyValue) {
|
|
|
166
165
|
return;
|
|
167
166
|
}
|
|
168
167
|
const columns = getColumns(state);
|
|
169
|
-
const
|
|
170
|
-
const { internalActions } =
|
|
168
|
+
const col = columns[colIndex];
|
|
169
|
+
const { internalActions } = col.actions;
|
|
171
170
|
|
|
172
171
|
for (let i = 0, { length } = internalActions; i < length; i += 1) {
|
|
173
172
|
const action = internalActions[i];
|
|
@@ -182,7 +181,7 @@ function updateSelectedOptionInHeaderActions(state, colKeyValue) {
|
|
|
182
181
|
updateWrapTextAndMaxLinesValuesInCells(state, colIndex, colKeyValue);
|
|
183
182
|
|
|
184
183
|
// Force a refresh on this column, because the wrapText checked value changed.
|
|
185
|
-
|
|
184
|
+
col.actions = Object.assign({}, col.actions);
|
|
186
185
|
}
|
|
187
186
|
|
|
188
187
|
/************************** HELPER FUNCTIONS **************************/
|
|
@@ -78,6 +78,8 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
78
78
|
|
|
79
79
|
_min;
|
|
80
80
|
_max;
|
|
81
|
+
_userMaxValue;
|
|
82
|
+
_userMinValue;
|
|
81
83
|
_displayMin;
|
|
82
84
|
_displayMax;
|
|
83
85
|
_dateStyle = DATE_STYLE.MEDIUM;
|
|
@@ -110,6 +112,17 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
114
|
|
|
115
|
+
setNormalisedIsoDateMin() {
|
|
116
|
+
const normalizedDate = normalizeISODate(
|
|
117
|
+
this._userMinValue,
|
|
118
|
+
this._dateStyle
|
|
119
|
+
);
|
|
120
|
+
if (normalizedDate.isoValue) {
|
|
121
|
+
this._min = normalizedDate.isoValue;
|
|
122
|
+
this._displayMin = normalizedDate.displayValue;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
113
126
|
@api
|
|
114
127
|
get min() {
|
|
115
128
|
return this._min;
|
|
@@ -119,11 +132,19 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
119
132
|
// normalization of the given value is possible.
|
|
120
133
|
this._min = value;
|
|
121
134
|
this._displayMin = value;
|
|
135
|
+
this._userMinValue = value;
|
|
122
136
|
|
|
123
|
-
|
|
137
|
+
this.setNormalisedIsoDateMin();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
setNormalisedIsoDateMax() {
|
|
141
|
+
const normalizedDate = normalizeISODate(
|
|
142
|
+
this._userMaxValue,
|
|
143
|
+
this._dateStyle
|
|
144
|
+
);
|
|
124
145
|
if (normalizedDate.isoValue) {
|
|
125
|
-
this.
|
|
126
|
-
this.
|
|
146
|
+
this._max = normalizedDate.isoValue;
|
|
147
|
+
this._displayMax = normalizedDate.displayValue;
|
|
127
148
|
}
|
|
128
149
|
}
|
|
129
150
|
|
|
@@ -136,12 +157,9 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
136
157
|
// normalization of the given value is possible.
|
|
137
158
|
this._max = value;
|
|
138
159
|
this._displayMax = value;
|
|
160
|
+
this._userMaxValue = value;
|
|
139
161
|
|
|
140
|
-
|
|
141
|
-
if (normalizedDate.isoValue) {
|
|
142
|
-
this._max = normalizedDate.isoValue;
|
|
143
|
-
this._displayMax = normalizedDate.displayValue;
|
|
144
|
-
}
|
|
162
|
+
this.setNormalisedIsoDateMax();
|
|
145
163
|
}
|
|
146
164
|
|
|
147
165
|
@api
|
|
@@ -381,8 +399,13 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
381
399
|
validValues: [DATE_STYLE.SHORT, DATE_STYLE.MEDIUM, DATE_STYLE.LONG],
|
|
382
400
|
});
|
|
383
401
|
|
|
384
|
-
const normalizedDate = normalizeISODate(this._value, this.
|
|
402
|
+
const normalizedDate = normalizeISODate(this._value, this._dateStyle);
|
|
385
403
|
this._displayValue = normalizedDate.displayValue;
|
|
404
|
+
|
|
405
|
+
// W-14161407 min and max setters are being called before dateStyle is being set
|
|
406
|
+
// hence updating the min max values
|
|
407
|
+
this.setNormalisedIsoDateMax();
|
|
408
|
+
this.setNormalisedIsoDateMin();
|
|
386
409
|
}
|
|
387
410
|
|
|
388
411
|
constructor() {
|