lightning-base-components 1.21.1-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 +88 -1
- package/package.json +181 -2
- package/scopedImports/@salesforce-label-LightningRichTextEditor.colorPicker.js +1 -0
- package/src/lightning/accordion/accordion-section.slds.css +122 -0
- package/src/lightning/accordion/accordion.css +2 -16
- package/src/lightning/accordion/accordion.js +10 -7
- package/src/lightning/accordion/accordion.js-meta.xml +3 -0
- package/src/lightning/accordion/accordion.lbc.native.css +4 -0
- package/src/lightning/accordion/accordion.lbc.synthetic.css +13 -0
- package/src/lightning/accordion/accordion.slds.css +1 -656
- package/src/lightning/accordionSection/accordion-section.slds.css +31 -564
- package/src/lightning/accordionSection/accordionSection.css +2 -17
- package/src/lightning/accordionSection/accordionSection.js +29 -17
- package/src/lightning/accordionSection/accordionSection.js-meta.xml +3 -0
- package/src/lightning/accordionSection/accordionSection.lbc.native.css +5 -0
- package/src/lightning/accordionSection/accordionSection.lbc.synthetic.css +14 -0
- package/src/lightning/accordionSection/button.slds.css +503 -0
- package/src/lightning/alert/alert.css +1 -0
- package/src/lightning/alert/alert.js +12 -9
- package/src/lightning/alert/alert.js-meta.xml +3 -0
- package/src/lightning/alert/alert.lbc.native.css +1 -0
- package/src/lightning/ariaObserver/ariaObserver.js +111 -46
- package/src/lightning/avatar/avatar.css +1 -2
- package/src/lightning/avatar/avatar.html +19 -5
- package/src/lightning/avatar/avatar.js +18 -3
- package/src/lightning/avatar/avatar.js-meta.xml +3 -0
- package/src/lightning/avatar/avatar.lbc.native.css +2 -0
- package/src/lightning/avatar/avatar.slds.css +34 -205
- package/src/lightning/badge/__examples__/basic/basic.html +3 -1
- package/src/lightning/badge/badge.css +1 -0
- package/src/lightning/badge/badge.html +16 -14
- package/src/lightning/badge/badge.js +5 -2
- package/src/lightning/badge/badge.js-meta.xml +3 -0
- package/src/lightning/badge/badge.lbc.native.css +2 -0
- package/src/lightning/badge/badge.slds.css +76 -0
- package/src/lightning/baseCombobox/base-combobox.slds.css +108 -1435
- package/src/lightning/baseCombobox/baseCombobox.css +2 -27
- package/src/lightning/baseCombobox/baseCombobox.html +2 -2
- package/src/lightning/baseCombobox/baseCombobox.js +17 -4
- package/src/lightning/baseCombobox/baseCombobox.js-meta.xml +6 -0
- package/src/lightning/baseCombobox/baseCombobox.lbc.native.css +7 -0
- package/src/lightning/baseCombobox/baseCombobox.lbc.synthetic.css +25 -0
- package/src/lightning/baseCombobox/dropdown.slds.css +594 -0
- package/src/lightning/baseCombobox/input-text.slds.css +506 -0
- package/src/lightning/baseCombobox/keyboard.js +12 -4
- package/src/lightning/baseCombobox/listbox.slds.css +204 -0
- package/src/lightning/baseCombobox/spinner.slds.css +429 -0
- package/src/lightning/baseComboboxFormattedText/baseComboboxFormattedText.js +3 -2
- package/src/lightning/baseComboboxFormattedText/baseComboboxFormattedText.js-meta.xml +6 -0
- package/src/lightning/baseComboboxItem/baseComboboxItem.js +14 -8
- package/src/lightning/baseComboboxItem/baseComboboxItem.js-meta.xml +6 -0
- package/src/lightning/baseComboboxItem/card.css +1 -0
- package/src/lightning/baseComboboxItem/card.lbc.native.css +2 -0
- package/src/lightning/baseComboboxItem/inline.css +1 -2
- package/src/lightning/baseComboboxItem/inline.lbc.native.css +2 -0
- package/src/lightning/baseComboboxItem/listbox.slds.css +103 -151
- package/src/lightning/baseFormattedText/baseFormattedText.js +2 -2
- package/src/lightning/breadcrumb/breadcrumb.css +2 -6
- package/src/lightning/breadcrumb/breadcrumb.js +4 -2
- package/src/lightning/breadcrumb/breadcrumb.js-meta.xml +3 -0
- package/src/lightning/breadcrumb/breadcrumb.lbc.native.css +1 -0
- package/src/lightning/breadcrumb/breadcrumb.lbc.synthetic.css +3 -0
- package/src/lightning/breadcrumb/breadcrumb.slds.css +4 -6
- package/src/lightning/breadcrumbs/breadcrumbs.css +2 -10
- package/src/lightning/breadcrumbs/breadcrumbs.js +3 -2
- package/src/lightning/breadcrumbs/breadcrumbs.js-meta.xml +3 -0
- package/src/lightning/breadcrumbs/breadcrumbs.lbc.native.css +2 -0
- package/src/lightning/breadcrumbs/breadcrumbs.lbc.synthetic.css +7 -0
- package/src/lightning/breadcrumbs/breadcrumbs.slds.css +7 -5
- package/src/lightning/button/button.css +1 -2
- package/src/lightning/button/button.js +2 -1
- package/src/lightning/button/button.js-meta.xml +3 -0
- package/src/lightning/button/button.lbc.native.css +2 -0
- package/src/lightning/button/button.slds.css +365 -395
- package/src/lightning/buttonGroup/button-group.slds.css +37 -35
- package/src/lightning/buttonGroup/buttonGroup.css +2 -11
- package/src/lightning/buttonGroup/buttonGroup.js +5 -2
- package/src/lightning/buttonGroup/buttonGroup.js-meta.xml +3 -0
- package/src/lightning/buttonGroup/buttonGroup.lbc.native.css +2 -0
- package/src/lightning/buttonGroup/buttonGroup.lbc.synthetic.css +3 -0
- package/src/lightning/buttonIcon/button-icon.slds.css +575 -766
- package/src/lightning/buttonIcon/buttonIcon.css +2 -2
- package/src/lightning/buttonIcon/buttonIcon.js +8 -2
- package/src/lightning/buttonIcon/buttonIcon.js-meta.xml +3 -0
- package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +23 -976
- package/src/lightning/buttonIconStateful/button-icon.slds.css +724 -0
- package/src/lightning/buttonIconStateful/button.slds.css +503 -0
- package/src/lightning/buttonIconStateful/buttonIconStateful.css +2 -6
- package/src/lightning/buttonIconStateful/buttonIconStateful.js +54 -0
- package/src/lightning/buttonIconStateful/buttonIconStateful.js-meta.xml +3 -0
- package/src/lightning/buttonIconStateful/buttonIconStateful.lbc.native.css +4 -0
- package/src/lightning/buttonIconStateful/buttonIconStateful.lbc.synthetic.css +3 -0
- package/src/lightning/buttonMenu/button-icon.slds.css +724 -0
- package/src/lightning/buttonMenu/button-menu.slds.css +44 -1882
- package/src/lightning/buttonMenu/button.slds.css +503 -0
- package/src/lightning/buttonMenu/buttonMenu.css +1 -2
- package/src/lightning/buttonMenu/buttonMenu.js +8 -4
- package/src/lightning/buttonMenu/buttonMenu.js-meta.xml +3 -0
- package/src/lightning/buttonMenu/buttonMenu.lbc.native.css +5 -0
- package/src/lightning/buttonMenu/dropdown.slds.css +594 -0
- package/src/lightning/buttonStateful/button-stateful.slds.css +8 -747
- package/src/lightning/buttonStateful/button.slds.css +503 -0
- package/src/lightning/buttonStateful/buttonStateful.css +1 -2
- package/src/lightning/buttonStateful/buttonStateful.js +7 -3
- package/src/lightning/buttonStateful/buttonStateful.lbc.native.css +3 -0
- package/src/lightning/calendar/calendar.css +2 -11
- package/src/lightning/calendar/calendar.js +4 -2
- package/src/lightning/calendar/calendar.js-meta.xml +6 -0
- package/src/lightning/calendar/calendar.lbc.native.css +11 -0
- package/src/lightning/calendar/calendar.lbc.synthetic.css +8 -0
- package/src/lightning/calendar/calendar.slds.css +42 -1850
- package/src/lightning/calendar/dropdown.slds.css +594 -0
- package/src/lightning/card/card.css +1 -2
- package/src/lightning/card/card.js +3 -2
- package/src/lightning/card/card.lbc.native.css +2 -0
- package/src/lightning/card/card.slds.css +119 -176
- package/src/lightning/carousel/carousel.css +1 -7
- package/src/lightning/carousel/carousel.lbc.synthetic.css +7 -0
- package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +56 -281
- package/src/lightning/colorPickerCustom/colorPickerCustom.css +1 -2
- package/src/lightning/colorPickerCustom/colorPickerCustom.js +3 -2
- package/src/lightning/colorPickerCustom/colorPickerCustom.lbc.native.css +3 -0
- package/src/lightning/colorPickerCustom/input-text.slds.css +506 -0
- package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +11 -783
- package/src/lightning/colorPickerPanel/colorPickerPanel.css +2 -12
- package/src/lightning/colorPickerPanel/colorPickerPanel.js +4 -2
- package/src/lightning/colorPickerPanel/colorPickerPanel.lbc.native.css +3 -0
- package/src/lightning/colorPickerPanel/colorPickerPanel.lbc.synthetic.css +8 -0
- package/src/lightning/colorPickerPanel/popover.slds.css +29 -32
- package/src/lightning/combobox/combobox.css +2 -19
- package/src/lightning/combobox/combobox.html +4 -1
- package/src/lightning/combobox/combobox.js +20 -3
- package/src/lightning/combobox/combobox.js-meta.xml +3 -0
- package/src/lightning/combobox/combobox.lbc.native.css +3 -0
- package/src/lightning/combobox/combobox.lbc.synthetic.css +28 -0
- package/src/lightning/combobox/combobox.slds.css +3 -4
- package/src/lightning/combobox/form-element.slds.css +122 -95
- package/src/lightning/configProvider/defaultDurationConfig.js +1 -1
- package/src/lightning/confirm/confirm.css +1 -0
- package/src/lightning/confirm/confirm.js +12 -9
- package/src/lightning/confirm/confirm.js-meta.xml +3 -0
- package/src/lightning/confirm/confirm.lbc.native.css +1 -0
- 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/customLink.html +5 -7
- 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.css +1 -3
- package/src/lightning/datepicker/datepicker.js +47 -17
- package/src/lightning/datepicker/datepicker.js-meta.xml +6 -0
- package/src/lightning/datepicker/datepicker.lbc.native.css +3 -0
- package/src/lightning/datepicker/form-element.slds.css +122 -95
- package/src/lightning/datepicker/input-text.slds.css +289 -181
- package/src/lightning/datetimepicker/datetimepicker.css +1 -3
- package/src/lightning/datetimepicker/datetimepicker.html +0 -2
- package/src/lightning/datetimepicker/datetimepicker.js +35 -10
- package/src/lightning/datetimepicker/datetimepicker.js-meta.xml +6 -0
- package/src/lightning/datetimepicker/datetimepicker.lbc.native.css +3 -0
- package/src/lightning/datetimepicker/form-element.slds.css +122 -95
- package/src/lightning/datetimepicker/input-text.slds.css +289 -181
- package/src/lightning/dualListbox/dual-listbox.slds.css +34 -29
- package/src/lightning/dualListbox/dualListbox.css +2 -8
- package/src/lightning/dualListbox/dualListbox.js +55 -36
- package/src/lightning/dualListbox/dualListbox.js-meta.xml +3 -0
- package/src/lightning/dualListbox/dualListbox.lbc.native.css +4 -0
- package/src/lightning/dualListbox/dualListbox.lbc.synthetic.css +3 -0
- package/src/lightning/dualListbox/form-element.slds.css +122 -95
- package/src/lightning/dualListbox/listbox.slds.css +103 -151
- 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/dynamicIcon/dynamicIcon.js +3 -2
- package/src/lightning/dynamicIcon/dynamicIcon.js-meta.xml +3 -0
- package/src/lightning/dynamicIcon/ellie.css +1 -1
- package/src/lightning/dynamicIcon/ellie.lbc.native.css +1 -0
- package/src/lightning/dynamicIcon/eq.css +1 -1
- package/src/lightning/dynamicIcon/eq.lbc.native.css +1 -0
- package/src/lightning/dynamicIcon/score.css +1 -1
- package/src/lightning/dynamicIcon/score.lbc.native.css +1 -0
- package/src/lightning/dynamicIcon/strength.css +1 -1
- package/src/lightning/dynamicIcon/strength.lbc.native.css +1 -0
- package/src/lightning/dynamicIcon/trend.css +1 -1
- package/src/lightning/dynamicIcon/trend.lbc.native.css +1 -0
- package/src/lightning/dynamicIcon/waffle.css +1 -1
- package/src/lightning/dynamicIcon/waffle.lbc.native.css +1 -0
- package/src/lightning/focusTrap/focusTrap.js +3 -2
- package/src/lightning/focusTrap/focusTrap.js-meta.xml +3 -0
- package/src/lightning/formattedAddress/formattedAddress.js-meta.xml +3 -0
- package/src/lightning/formattedDateTime/formattedDateTime.js +7 -62
- package/src/lightning/formattedDateTime/formattedDateTime.js-meta.xml +3 -0
- package/src/lightning/formattedEmail/formattedEmail.css +1 -0
- package/src/lightning/formattedEmail/formattedEmail.js +4 -2
- package/src/lightning/formattedEmail/formattedEmail.js-meta.xml +3 -0
- package/src/lightning/formattedEmail/formattedEmail.lbc.native.css +7 -0
- package/src/lightning/formattedLocation/formattedLocation.html +1 -3
- package/src/lightning/formattedLocation/formattedLocation.js +3 -25
- package/src/lightning/formattedLocation/formattedLocation.js-meta.xml +3 -0
- package/src/lightning/formattedLookup/events.js +2 -4
- package/src/lightning/formattedNumber/formattedNumber.css +1 -4
- package/src/lightning/formattedNumber/formattedNumber.js +2 -49
- package/src/lightning/formattedNumber/formattedNumber.lbc.synthetic.css +4 -0
- package/src/lightning/formattedPhone/formattedPhone.css +1 -4
- package/src/lightning/formattedPhone/formattedPhone.js-meta.xml +3 -0
- package/src/lightning/formattedPhone/formattedPhone.lbc.synthetic.css +4 -0
- package/src/lightning/formattedRichText/formatted-rich-text.slds.css +39 -39
- package/src/lightning/formattedRichText/formattedRichText.css +1 -3
- package/src/lightning/formattedRichText/formattedRichText.js +9 -7
- package/src/lightning/formattedRichText/formattedRichText.js-meta.xml +3 -0
- package/src/lightning/formattedRichText/formattedRichText.lbc.native.css +3 -0
- package/src/lightning/formattedRichText/linkTextNodes.js +58 -0
- package/src/lightning/formattedText/formattedText.css +1 -1
- package/src/lightning/formattedText/formattedText.js +3 -2
- package/src/lightning/formattedText/formattedText.js-meta.xml +3 -0
- package/src/lightning/formattedText/formattedText.lbc.native.css +1 -0
- package/src/lightning/formattedTime/formattedTime.js-meta.xml +3 -0
- package/src/lightning/formattedUrl/formattedUrl.js-meta.xml +3 -0
- package/src/lightning/groupedCombobox/__mockData__/exampleGroupedComboboxData.js +17 -0
- package/src/lightning/groupedCombobox/form-element.slds.css +315 -0
- package/src/lightning/groupedCombobox/grouped-combobox.slds.css +13 -0
- package/src/lightning/groupedCombobox/groupedCombobox.css +2 -3
- package/src/lightning/groupedCombobox/groupedCombobox.js +25 -3
- package/src/lightning/groupedCombobox/groupedCombobox.js-meta.xml +4 -1
- package/src/lightning/groupedCombobox/groupedCombobox.lbc.native.css +5 -0
- package/src/lightning/groupedCombobox/groupedCombobox.lbc.syhtnetic.css +3 -0
- package/src/lightning/groupedCombobox/input-text.slds.css +506 -0
- package/src/lightning/helptext/button-icon.slds.css +724 -0
- package/src/lightning/helptext/form-element.slds.css +122 -95
- package/src/lightning/helptext/help-text.slds.css +6 -938
- package/src/lightning/helptext/helptext.css +1 -3
- package/src/lightning/helptext/helptext.js +3 -2
- package/src/lightning/helptext/helptext.lbc.native.css +4 -0
- package/src/lightning/icon/icon.css +1 -2
- package/src/lightning/icon/icon.js +20 -2
- package/src/lightning/icon/icon.js-meta.xml +3 -0
- package/src/lightning/icon/icon.lbc.native.css +2 -0
- package/src/lightning/icon/icon.slds.css +76 -78
- package/src/lightning/input/form-element.slds.css +122 -95
- package/src/lightning/input/input.css +2 -13
- package/src/lightning/input/input.html +1 -0
- package/src/lightning/input/input.js +55 -9
- package/src/lightning/input/input.lbc.native.css +2 -0
- package/src/lightning/input/input.lbc.synthetic.css +9 -0
- package/src/lightning/inputAddress/form-element.slds.css +315 -0
- package/src/lightning/inputAddress/input-address.slds.css +14 -0
- package/src/lightning/inputAddress/input-text.slds.css +506 -0
- package/src/lightning/inputAddress/inputAddress.css +2 -3
- package/src/lightning/inputAddress/inputAddress.html +21 -12
- package/src/lightning/inputAddress/inputAddress.js +34 -14
- package/src/lightning/inputAddress/inputAddress.js-meta.xml +3 -0
- package/src/lightning/inputAddress/inputAddress.lbc.native.css +5 -0
- package/src/lightning/inputAddress/inputAddress.lbc.synthetic.css +4 -0
- package/src/lightning/inputLocation/form-element.slds.css +315 -0
- package/src/lightning/inputLocation/input-location.slds.css +14 -0
- package/src/lightning/inputLocation/input-text.slds.css +506 -0
- package/src/lightning/inputLocation/inputLocation.css +2 -3
- package/src/lightning/inputLocation/inputLocation.html +1 -1
- package/src/lightning/inputLocation/inputLocation.js +27 -6
- package/src/lightning/inputLocation/inputLocation.js-meta.xml +3 -0
- package/src/lightning/inputLocation/inputLocation.lbc.native.css +5 -0
- package/src/lightning/inputLocation/inputLocation.lbc.synthetic.css +3 -0
- package/src/lightning/inputName/form-element.slds.css +315 -0
- package/src/lightning/inputName/input-text.slds.css +506 -0
- package/src/lightning/inputName/inputName.css +2 -3
- package/src/lightning/inputName/inputName.js +22 -15
- package/src/lightning/inputName/inputName.lbc.native.css +4 -0
- package/src/lightning/inputName/inputName.lbc.synthetic.css +3 -0
- package/src/lightning/interactiveDialogBase/interactive-dialog-base.slds.css +21 -0
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.css +2 -520
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.html +8 -3
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.js +6 -0
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.js-meta.xml +6 -0
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.lbc.native.css +3 -0
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.lbc.synthetic.css +20 -0
- package/src/lightning/internationalizationLibrary/datetime/dateTimeUtils.js +33 -10
- package/src/lightning/layout/layout.css +2 -9
- package/src/lightning/layout/layout.js +5 -2
- package/src/lightning/layout/layout.js-meta.xml +3 -0
- package/src/lightning/layout/layout.lbc.native.css +2 -0
- package/src/lightning/layout/layout.lbc.synthetic.css +6 -0
- package/src/lightning/layoutItem/layoutItem.css +1 -5
- package/src/lightning/layoutItem/layoutItem.js +5 -2
- package/src/lightning/layoutItem/layoutItem.js-meta.xml +3 -0
- package/src/lightning/layoutItem/layoutItem.lbc.native.css +5 -0
- package/src/lightning/lookupAddress/form-element.slds.css +315 -0
- package/src/lightning/lookupAddress/listbox.slds.css +204 -0
- package/src/lightning/lookupAddress/location.js +2 -0
- package/src/lightning/lookupAddress/lookup-address.slds.css +8 -0
- package/src/lightning/lookupAddress/lookupAddress.css +2 -0
- package/src/lightning/lookupAddress/lookupAddress.html +12 -9
- package/src/lightning/lookupAddress/lookupAddress.js +19 -12
- package/src/lightning/lookupAddress/lookupAddress.lbc.native.css +4 -0
- package/src/lightning/menuDivider/menu-divider.slds.css +4 -6
- package/src/lightning/menuDivider/menuDivider.css +2 -6
- package/src/lightning/menuDivider/menuDivider.js +4 -3
- package/src/lightning/menuDivider/menuDivider.lbc.native.css +2 -0
- package/src/lightning/menuDivider/menuDivider.lbc.synthetic.css +3 -0
- package/src/lightning/menuItem/menu-item.slds.css +24 -18
- package/src/lightning/menuItem/menuItem.css +2 -6
- package/src/lightning/menuItem/menuItem.js +13 -3
- package/src/lightning/menuItem/menuItem.js-meta.xml +3 -0
- package/src/lightning/menuItem/menuItem.lbc.native.css +2 -0
- package/src/lightning/menuItem/menuItem.lbc.synthetic.css +3 -0
- package/src/lightning/menuSubheader/menu-subheader.slds.css +5 -6
- package/src/lightning/menuSubheader/menuSubheader.css +2 -6
- package/src/lightning/menuSubheader/menuSubheader.js +4 -2
- package/src/lightning/menuSubheader/menuSubheader.lbc.native.css +2 -0
- package/src/lightning/menuSubheader/menuSubheader.lbc.synthetic.css +3 -0
- package/src/lightning/modal/__docs__/modal.md +30 -0
- package/src/lightning/modal/__examples__disabled/allformfullcompound/allformfullcompound.css +7 -0
- package/src/lightning/modal/__examples__disabled/allformfullcompound/allformfullcompound.html +9 -0
- package/src/lightning/modal/__examples__disabled/allformfullcompound/allformfullcompound.js +54 -0
- package/src/lightning/modal/__examples__disabled/allformhoriz/allformhoriz.css +7 -0
- package/src/lightning/modal/__examples__disabled/allformhoriz/allformhoriz.html +9 -0
- package/src/lightning/modal/__examples__disabled/allformhoriz/allformhoriz.js +53 -0
- package/src/lightning/modal/__examples__disabled/allmulti/allmulti.html +1 -0
- package/src/lightning/modal/__examples__disabled/allmulti/allmulti.js +43 -1
- package/src/lightning/modal/__examples__disabled/basic/basic.css +1 -1
- package/src/lightning/modal/__examples__disabled/demo/demo.css +1 -0
- package/src/lightning/modal/__examples__disabled/demoall/demoall.css +5 -0
- package/src/lightning/modal/__examples__disabled/demoallform/demoallform.css +2 -3
- package/src/lightning/modal/__examples__disabled/demoallform/demoallform.html +181 -107
- package/src/lightning/modal/__examples__disabled/demoallform/demoallform.js +7 -1
- package/src/lightning/modal/__examples__disabled/demoallformfull/demoallformfull.css +2 -3
- package/src/lightning/modal/__examples__disabled/demoallformfull/demoallformfull.html +181 -107
- package/src/lightning/modal/__examples__disabled/demoallformfullcompound/demoallformfullcompound.css +7 -0
- package/src/lightning/modal/__examples__disabled/demoallformfullcompound/demoallformfullcompound.html +109 -0
- package/src/lightning/modal/__examples__disabled/demoallformfullcompound/demoallformfullcompound.js +241 -0
- package/src/lightning/modal/__examples__disabled/demoallformhoriz/demoallformhoriz.css +5 -0
- package/src/lightning/modal/__examples__disabled/demoallformhoriz/demoallformhoriz.html +165 -0
- package/src/lightning/modal/__examples__disabled/demoallformhoriz/demoallformhoriz.js +241 -0
- package/src/lightning/modal/__examples__disabled/demofootless/demofootless.css +1 -0
- package/src/lightning/modal/__examples__disabled/demoheadless/demoheadless.css +5 -0
- package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +8 -0
- package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +108 -3
- package/src/lightning/modalBase/modal-base.slds.css +242 -0
- package/src/lightning/modalBase/modalBase.css +2 -16
- package/src/lightning/modalBase/modalBase.html +2 -0
- package/src/lightning/modalBase/modalBase.js +158 -18
- package/src/lightning/modalBase/modalBase.js-meta.xml +6 -0
- package/src/lightning/modalBase/modalBase.lbc.native.css +2 -0
- package/src/lightning/modalBase/modalBase.lbc.synthetic.css +18 -0
- package/src/lightning/modalBody/modal-body.slds.css +60 -0
- package/src/lightning/modalBody/modalBody.css +1 -0
- package/src/lightning/modalBody/modalBody.html +1 -0
- package/src/lightning/modalBody/modalBody.js +15 -2
- package/src/lightning/modalBody/modalBody.lbc.native.css +3 -0
- package/src/lightning/modalFooter/modal-footer.slds.css +79 -0
- package/src/lightning/modalFooter/modalFooter.css +1 -0
- package/src/lightning/modalFooter/modalFooter.html +1 -1
- package/src/lightning/modalFooter/modalFooter.js +3 -23
- package/src/lightning/modalFooter/modalFooter.lbc.native.css +2 -0
- package/src/lightning/modalHeader/modal-header.slds.css +76 -0
- package/src/lightning/modalHeader/modalHeader.css +3 -0
- package/src/lightning/modalHeader/modalHeader.html +1 -1
- package/src/lightning/modalHeader/modalHeader.js +4 -24
- package/src/lightning/modalHeader/modalHeader.lbc.native.css +3 -0
- package/src/lightning/overlay/overlay.js +11 -4
- package/src/lightning/overlay/overlay.js-meta.xml +6 -0
- package/src/lightning/overlayContainer/overlayContainer.js +3 -2
- package/src/lightning/picklist/picklist.js +24 -19
- package/src/lightning/picklist/picklist.js-meta.xml +3 -0
- package/src/lightning/pill/avatar.slds.css +34 -205
- package/src/lightning/pill/link.css +1 -3
- package/src/lightning/pill/link.lbc.native.css +3 -0
- package/src/lightning/pill/pill.js +4 -2
- package/src/lightning/pill/pill.js-meta.xml +3 -0
- package/src/lightning/pill/pill.slds.css +82 -103
- package/src/lightning/pill/plain.css +1 -3
- package/src/lightning/pill/plain.lbc.native.css +3 -0
- package/src/lightning/pill/plainLink.css +1 -3
- package/src/lightning/pill/plainLink.lbc.native.css +3 -0
- package/src/lightning/pillContainer/barePillContainer.css +1 -3
- package/src/lightning/pillContainer/barePillContainer.html +1 -1
- package/src/lightning/pillContainer/barePillContainer.lbc.native.css +4 -0
- package/src/lightning/pillContainer/button.slds.css +503 -0
- package/src/lightning/pillContainer/listbox.slds.css +103 -151
- package/src/lightning/pillContainer/pill-container.slds.css +19 -17
- package/src/lightning/pillContainer/pill.slds.css +82 -103
- package/src/lightning/pillContainer/pillContainer.js +15 -12
- package/src/lightning/pillContainer/pillContainer.js-meta.xml +3 -0
- package/src/lightning/pillContainer/standardPillContainer.css +3 -2
- package/src/lightning/pillContainer/standardPillContainer.html +1 -1
- package/src/lightning/popup/popover.slds.css +29 -32
- package/src/lightning/popup/popup.css +1 -2
- package/src/lightning/popup/popup.js +3 -2
- package/src/lightning/popup/popup.js-meta.xml +3 -0
- package/src/lightning/popup/popup.lbc.native.css +2 -0
- package/src/lightning/primitiveBubble/primitiveBubble.css +2 -11
- package/src/lightning/primitiveBubble/primitiveBubble.js +4 -2
- package/src/lightning/primitiveBubble/primitiveBubble.js-meta.xml +6 -0
- package/src/lightning/primitiveBubble/primitiveBubble.lbc.native.css +2 -0
- package/src/lightning/primitiveBubble/primitiveBubble.lbc.synthetic.css +8 -0
- package/src/lightning/primitiveBubble/tooltip.slds.css +89 -142
- package/src/lightning/primitiveButton/primitiveButoon.js-meta.xml +6 -0
- package/src/lightning/primitiveButton/primitiveButton.js +4 -2
- package/src/lightning/primitiveCellCheckbox/checkbox.css +2 -0
- package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +18 -249
- package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.css +1 -2
- package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +3 -2
- package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.lbc.native.css +2 -0
- package/src/lightning/primitiveCustomCell/primitiveCustomCell.js +26 -2
- package/src/lightning/primitiveDatatableCell/primitiveDatatableCell.js +1 -3
- package/src/lightning/primitiveFileDroppableZone/primitiveFileDroppableZone.js +17 -7
- package/src/lightning/primitiveHeaderFactory/nonsortableHeader.css +1 -0
- package/src/lightning/primitiveHeaderFactory/selectableHeader.css +2 -0
- package/src/lightning/primitiveIcon/icon.slds.css +76 -78
- package/src/lightning/primitiveIcon/primitiveIcon.css +2 -11
- package/src/lightning/primitiveIcon/primitiveIcon.js +7 -9
- package/src/lightning/primitiveIcon/primitiveIcon.js-meta.xml +6 -0
- package/src/lightning/primitiveIcon/primitiveIcon.lbc.native.css +2 -0
- package/src/lightning/primitiveIcon/primitiveIcon.lbc.synthetic.css +9 -0
- package/src/lightning/primitiveIframe/primitiveIframe.html +9 -8
- package/src/lightning/primitiveIframe/primitiveIframe.js +7 -3
- package/src/lightning/primitiveInputCheckbox/form-element.slds.css +122 -95
- package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +223 -237
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.css +1 -3
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +14 -3
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js-meta.xml +6 -0
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.lbc.native.css +3 -0
- package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +122 -95
- package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +36 -34
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.css +2 -6
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +5 -2
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js-meta.xml +6 -0
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.lbc.native.css +2 -0
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.lbc.synthetic.css +2 -0
- package/src/lightning/primitiveInputColor/form-element.slds.css +122 -95
- package/src/lightning/primitiveInputColor/input-color.slds.css +5 -10
- package/src/lightning/primitiveInputColor/input-text.slds.css +289 -181
- package/src/lightning/primitiveInputColor/primitiveInputColor.css +1 -4
- package/src/lightning/primitiveInputColor/primitiveInputColor.js +5 -2
- package/src/lightning/primitiveInputColor/primitiveInputColor.js-meta.xml +6 -0
- package/src/lightning/primitiveInputColor/primitiveInputColor.lbc.native.css +4 -0
- package/src/lightning/primitiveInputFile/button.slds.css +365 -395
- package/src/lightning/primitiveInputFile/form-element.slds.css +122 -95
- package/src/lightning/primitiveInputFile/input-file.slds.css +13 -16
- package/src/lightning/primitiveInputFile/primitiveInputFile.css +1 -5
- package/src/lightning/primitiveInputFile/primitiveInputFile.js +13 -9
- package/src/lightning/primitiveInputFile/primitiveInputFile.js-meta.xml +6 -0
- package/src/lightning/primitiveInputFile/primitiveInputFile.lbc.native.css +4 -0
- package/src/lightning/primitiveInputRadio/primitiveInputRadio.js +4 -2
- package/src/lightning/primitiveInputSimple/form-element.slds.css +122 -95
- package/src/lightning/primitiveInputSimple/input-text.slds.css +289 -181
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.css +2 -9
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +4 -2
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.js-meta.xml +6 -0
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.lbc.native.css +3 -0
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.lbc.synthetic.css +5 -0
- package/src/lightning/primitiveInputToggle/form-element.slds.css +122 -95
- package/src/lightning/primitiveInputToggle/input-toggle.slds.css +78 -55
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.css +1 -3
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +14 -3
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.js-meta.xml +6 -0
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.lbc.native.css +3 -0
- package/src/lightning/progressBar/progress-bar.slds.css +64 -0
- package/src/lightning/progressBar/progressBar.css +1 -0
- package/src/lightning/progressBar/progressBar.html +1 -0
- package/src/lightning/progressBar/progressBar.js +3 -2
- package/src/lightning/progressBar/progressBar.lbc.native.css +2 -0
- package/src/lightning/progressIndicator/progressIndicator.css +1 -3
- package/src/lightning/progressIndicator/progressIndicator.lbc.synthetic.css +3 -0
- package/src/lightning/progressRing/progress-ring.slds.css +113 -0
- package/src/lightning/progressRing/progressRing.css +1 -0
- package/src/lightning/progressRing/progressRing.html +1 -1
- package/src/lightning/progressRing/progressRing.js +3 -2
- package/src/lightning/progressRing/progressRing.lbc.native.css +2 -0
- package/src/lightning/progressStep/progressStep.js +1 -14
- package/src/lightning/prompt/prompt.css +1 -85
- package/src/lightning/prompt/prompt.html +15 -5
- package/src/lightning/prompt/prompt.js +12 -9
- package/src/lightning/prompt/prompt.js-meta.xml +3 -0
- package/src/lightning/prompt/prompt.lbc.native.css +2 -0
- package/src/lightning/prompt/prompt.slds.css +10 -0
- package/src/lightning/radioGroup/form-element.slds.css +315 -0
- package/src/lightning/radioGroup/input-radio-group.slds.css +124 -571
- package/src/lightning/radioGroup/radioGroup.css +2 -7
- package/src/lightning/radioGroup/radioGroup.html +1 -2
- package/src/lightning/radioGroup/radioGroup.js +5 -2
- package/src/lightning/radioGroup/radioGroup.lbc.native.css +3 -0
- package/src/lightning/radioGroup/radioGroup.lbc.synthetic.css +3 -0
- package/src/lightning/routingService/routingService.js +31 -5
- package/src/lightning/select/form-element.slds.css +122 -95
- package/src/lightning/select/select.css +1 -3
- package/src/lightning/select/select.js +4 -2
- package/src/lightning/select/select.js-meta.xml +3 -0
- package/src/lightning/select/select.lbc.native.css +3 -0
- package/src/lightning/select/select.slds.css +26 -343
- package/src/lightning/sldsUtilsThemes/sldsUtilsThemes.css +27 -11
- package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +24 -0
- package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.js-meta.xml +4 -0
- package/src/lightning/spinner/spinner.css +1 -2
- package/src/lightning/spinner/spinner.js +6 -4
- package/src/lightning/spinner/spinner.js-meta.xml +3 -0
- package/src/lightning/spinner/spinner.lbc.native.css +2 -0
- package/src/lightning/spinner/spinner.slds.css +66 -72
- package/src/lightning/staticMap/staticMap.html +12 -10
- package/src/lightning/staticMap/staticMap.js +16 -4
- package/src/lightning/tab/tab.css +1 -2
- package/src/lightning/tab/tab.js +4 -2
- package/src/lightning/tab/tab.lbc.native.css +2 -0
- package/src/lightning/tab/tab.slds.css +23 -16
- package/src/lightning/tabBar/tab-bar.slds.css +75 -65
- package/src/lightning/tabBar/tabBar.css +1 -2
- package/src/lightning/tabBar/tabBar.js +19 -2
- package/src/lightning/tabBar/tabBar.lbc.native.css +2 -0
- package/src/lightning/tabset/__docs__/tabset.md +24 -1
- package/src/lightning/tabset/tabset.css +1 -10
- package/src/lightning/tabset/tabset.html +19 -7
- package/src/lightning/tabset/tabset.js +212 -61
- package/src/lightning/tabset/tabset.lbc.native.css +3 -0
- package/src/lightning/tabset/tabset.slds.css +13 -0
- package/src/lightning/textarea/form-element.slds.css +315 -0
- package/src/lightning/textarea/textarea.css +2 -5
- package/src/lightning/textarea/textarea.html +21 -5
- package/src/lightning/textarea/textarea.js +171 -128
- package/src/lightning/textarea/textarea.lbc.native.css +3 -0
- package/src/lightning/textarea/textarea.lbc.synthetic.css +5 -0
- package/src/lightning/textarea/textarea.slds.css +108 -0
- package/src/lightning/tile/standardTile.css +1 -3
- package/src/lightning/tile/standardTile.lbc.synthetic.css +3 -0
- package/src/lightning/timepicker/form-element.slds.css +122 -95
- package/src/lightning/timepicker/timepicker.css +1 -3
- package/src/lightning/timepicker/timepicker.html +1 -1
- package/src/lightning/timepicker/timepicker.js +21 -5
- package/src/lightning/timepicker/timepicker.js-meta.xml +6 -0
- package/src/lightning/timepicker/timepicker.lbc.native.css +3 -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 +575 -766
- package/src/lightning/toast/formatted-rich-text.slds.css +39 -39
- package/src/lightning/toast/icon.slds.css +76 -78
- package/src/lightning/toast/toast.css +2 -68
- package/src/lightning/toast/toast.js +19 -14
- package/src/lightning/toast/toast.lbc.native.css +9 -0
- package/src/lightning/toast/toast.lbc.synthetic.css +58 -0
- package/src/lightning/toast/toast.slds.css +26 -38
- package/src/lightning/toastContainer/toast.slds.css +26 -38
- package/src/lightning/toastContainer/toastContainer.css +2 -43
- package/src/lightning/toastContainer/toastContainer.js +25 -17
- package/src/lightning/toastContainer/toastContainer.lbc.native.css +4 -0
- package/src/lightning/toastContainer/toastContainer.lbc.synthetic.css +38 -0
- 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/animation.js +10 -8
- package/src/lightning/utilsPrivate/aria.js +1 -1
- package/src/lightning/utilsPrivate/formatUtils.js +158 -0
- package/src/lightning/utilsPrivate/textUtils.js +16 -0
- package/src/lightning/utilsPrivate/utilsPrivate.js +76 -19
- package/src/lightning/utilsPrivate/validationUtils.js +59 -0
- package/src/lightning/verticalNavigation/verticalNavigation.css +1 -3
- package/src/lightning/verticalNavigation/verticalNavigation.js +3 -2
- package/src/lightning/verticalNavigation/verticalNavigation.lbc.native.css +2 -0
- package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.css +1 -3
- package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.lbc.synthetic.css +3 -0
- package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +8 -10
- package/src/lightning/verticalNavigationSection/verticalNavigationSection.css +2 -7
- package/src/lightning/verticalNavigationSection/verticalNavigationSection.js +3 -2
- package/src/lightning/verticalNavigationSection/verticalNavigationSection.lbc.native.css +2 -0
- package/src/lightning/verticalNavigationSection/verticalNavigationSection.lbc.synthetic.css +3 -0
- package/src/lightning/datatable/resizeSensor.js +0 -244
- package/src/lightning/formattedRichText/linkify.js +0 -43
- package/src/lightning/utilsPrivate/smartSetAttribute.js +0 -19
|
@@ -79,15 +79,13 @@ export function handleDeselectAllRows(event) {
|
|
|
79
79
|
*/
|
|
80
80
|
export function handleSelectRow(event) {
|
|
81
81
|
event.stopPropagation();
|
|
82
|
+
const { state } = this;
|
|
82
83
|
const { rowKeyValue, isMultiple } = event.detail;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
markSelectedRowsInterval(this.state, fromRowKey, rowKeyValue);
|
|
90
|
-
setLastRowSelection(this.state, rowKeyValue);
|
|
84
|
+
const fromRowKey = isMultiple
|
|
85
|
+
? getLastRowSelection(state) || rowKeyValue
|
|
86
|
+
: rowKeyValue;
|
|
87
|
+
markSelectedRowsInterval(state, fromRowKey, rowKeyValue);
|
|
88
|
+
setLastRowSelection(state, rowKeyValue);
|
|
91
89
|
this.fireSelectedRowsChange(this.getSelectedRows(), {
|
|
92
90
|
action: ROWS_ACTION.ROW_SELECT,
|
|
93
91
|
value: rowKeyValue,
|
|
@@ -105,15 +103,13 @@ export function handleSelectRow(event) {
|
|
|
105
103
|
*/
|
|
106
104
|
export function handleDeselectRow(event) {
|
|
107
105
|
event.stopPropagation();
|
|
106
|
+
const { state } = this;
|
|
108
107
|
const { rowKeyValue, isMultiple } = event.detail;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
markDeselectedRowsInterval(this.state, fromRowKey, rowKeyValue);
|
|
116
|
-
setLastRowSelection(this.state, rowKeyValue);
|
|
108
|
+
const fromRowKey = isMultiple
|
|
109
|
+
? getLastRowSelection(state) || rowKeyValue
|
|
110
|
+
: rowKeyValue;
|
|
111
|
+
markDeselectedRowsInterval(state, fromRowKey, rowKeyValue);
|
|
112
|
+
setLastRowSelection(state, rowKeyValue);
|
|
117
113
|
this.fireSelectedRowsChange(this.getSelectedRows(), {
|
|
118
114
|
action: ROWS_ACTION.ROW_DESELECT,
|
|
119
115
|
value: rowKeyValue,
|
|
@@ -139,22 +135,23 @@ export function handleRowSelectionChange() {
|
|
|
139
135
|
* 2. If max-row-selection has been reached, mark the remaining rows
|
|
140
136
|
* to reflect that they are not selected and disable them.
|
|
141
137
|
*
|
|
142
|
-
* @param {Object} state - datatable
|
|
138
|
+
* @param {Object} state - The datatable state
|
|
143
139
|
*/
|
|
144
140
|
export function markAllRowsSelected(state) {
|
|
145
141
|
const rows = getRows(state);
|
|
146
142
|
const maxRowSelection = getMaxRowSelection(state);
|
|
147
143
|
|
|
148
144
|
resetSelectedRowsKeys(state);
|
|
149
|
-
|
|
150
|
-
|
|
145
|
+
for (let i = 0, { length: rowCount } = rows; i < rowCount; i += 1) {
|
|
146
|
+
const row = rows[i];
|
|
147
|
+
if (maxRowSelection === undefined || i < maxRowSelection) {
|
|
151
148
|
setRowSelectedAttributes(true, row);
|
|
152
149
|
addKeyToSelectedRowKeys(state, row.key);
|
|
153
150
|
} else {
|
|
154
151
|
row.isDisabled = true;
|
|
155
152
|
setRowSelectedAttributes(false, row);
|
|
156
153
|
}
|
|
157
|
-
}
|
|
154
|
+
}
|
|
158
155
|
}
|
|
159
156
|
|
|
160
157
|
/**
|
|
@@ -163,17 +160,17 @@ export function markAllRowsSelected(state) {
|
|
|
163
160
|
* set `isSelected` and `ariaSelected` to false and enable the row. Also resolve
|
|
164
161
|
* the `classnames` for the row to reflect that it is not selected.
|
|
165
162
|
*
|
|
166
|
-
* @param {Object} state - datatable
|
|
163
|
+
* @param {Object} state - The datatable state
|
|
167
164
|
* @returns
|
|
168
165
|
*/
|
|
169
166
|
export function markAllRowsDeselected(state) {
|
|
170
167
|
const rows = getRows(state);
|
|
171
|
-
|
|
172
168
|
resetSelectedRowsKeys(state);
|
|
173
|
-
|
|
169
|
+
for (let i = 0, { length: rowCount } = rows; i < rowCount; i += 1) {
|
|
170
|
+
const row = rows[i];
|
|
174
171
|
row.isDisabled = false;
|
|
175
172
|
setRowSelectedAttributes(false, row);
|
|
176
|
-
}
|
|
173
|
+
}
|
|
177
174
|
}
|
|
178
175
|
|
|
179
176
|
/**
|
|
@@ -190,22 +187,20 @@ export function markAllRowsDeselected(state) {
|
|
|
190
187
|
* This does not handle the case when the header checkbox that selects
|
|
191
188
|
* all rows of the table is clicked. That is handled by - `handleSelectAllRows`
|
|
192
189
|
*
|
|
193
|
-
* @param {Object} state - datatable
|
|
190
|
+
* @param {Object} state - The datatable state
|
|
194
191
|
* @param {String} startRowKey - row key value of the first row that was selected (start of the interval)
|
|
195
192
|
* @param {String} endRowKey - row key value of the last row that was selected (end of the interval)
|
|
196
193
|
*/
|
|
197
194
|
function markSelectedRowsInterval(state, startRowKey, endRowKey) {
|
|
198
195
|
const rows = getRows(state);
|
|
199
196
|
const { start, end } = getRowIntervalIndexes(state, startRowKey, endRowKey);
|
|
200
|
-
const
|
|
201
|
-
let
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
getCurrentSelectionLength(state) >= maxRowSelection;
|
|
208
|
-
i++;
|
|
197
|
+
const total = getMaxRowSelection(state) || getRowsTotal(state);
|
|
198
|
+
let rowIndex = start;
|
|
199
|
+
let maxSelectionReached;
|
|
200
|
+
while (rowIndex <= end && !maxSelectionReached) {
|
|
201
|
+
markRowSelected(state, rows[rowIndex].key);
|
|
202
|
+
maxSelectionReached = getCurrentSelectionLength(state) >= total;
|
|
203
|
+
rowIndex += 1;
|
|
209
204
|
}
|
|
210
205
|
}
|
|
211
206
|
|
|
@@ -222,7 +217,7 @@ function markSelectedRowsInterval(state, startRowKey, endRowKey) {
|
|
|
222
217
|
* This does not handle the case when the header checkbox is clicked to de-select all rows
|
|
223
218
|
* That is handledd by - `handleDeselectAllRows`
|
|
224
219
|
*
|
|
225
|
-
* @param {Object} state - datatable
|
|
220
|
+
* @param {Object} state - The datatable state
|
|
226
221
|
* @param {String} startRowKey - row key value of the first row that was selected (start of the interval)
|
|
227
222
|
* @param {String} endRowKey - row key value of the last row that was selected (end of the interval)
|
|
228
223
|
*/
|
|
@@ -230,8 +225,8 @@ function markDeselectedRowsInterval(state, startRowKey, endRowKey) {
|
|
|
230
225
|
const rows = getRows(state);
|
|
231
226
|
const { start, end } = getRowIntervalIndexes(state, startRowKey, endRowKey);
|
|
232
227
|
|
|
233
|
-
for (let
|
|
234
|
-
markRowDeselected(state, rows[
|
|
228
|
+
for (let rowIndex = start; rowIndex <= end; rowIndex += 1) {
|
|
229
|
+
markRowDeselected(state, rows[rowIndex].key);
|
|
235
230
|
}
|
|
236
231
|
}
|
|
237
232
|
|
|
@@ -248,28 +243,28 @@ function markDeselectedRowsInterval(state, startRowKey, endRowKey) {
|
|
|
248
243
|
* a. If another row was previously selected before, de-select that row
|
|
249
244
|
* b. Add the row key value of that row to the state
|
|
250
245
|
*
|
|
251
|
-
* @param {Object} state - datatable
|
|
246
|
+
* @param {Object} state - The datatable state
|
|
252
247
|
* @param {String} rowKeyValue - row key value of row to mark selected
|
|
253
248
|
*/
|
|
254
249
|
export function markRowSelected(state, rowKeyValue) {
|
|
255
250
|
const row = getRowByKey(state, rowKeyValue);
|
|
256
|
-
const
|
|
257
|
-
const
|
|
251
|
+
const prevSelectionLength = getCurrentSelectionLength(state);
|
|
252
|
+
const total = getMaxRowSelection(state) || getRowsTotal(state);
|
|
258
253
|
|
|
259
254
|
setRowSelectedAttributes(true, row);
|
|
260
255
|
|
|
261
|
-
if (
|
|
256
|
+
if (total > 1) {
|
|
262
257
|
addKeyToSelectedRowKeys(state, row.key);
|
|
263
|
-
if (
|
|
258
|
+
if (prevSelectionLength + 1 === total) {
|
|
264
259
|
markDeselectedRowDisabled(state);
|
|
265
260
|
}
|
|
266
261
|
} else {
|
|
267
|
-
if (
|
|
268
|
-
const
|
|
262
|
+
if (prevSelectionLength === 1) {
|
|
263
|
+
const prevSelectedRow = getRowByKey(
|
|
269
264
|
state,
|
|
270
265
|
Object.keys(state.selectedRowsKeys)[0]
|
|
271
266
|
);
|
|
272
|
-
setRowSelectedAttributes(false,
|
|
267
|
+
setRowSelectedAttributes(false, prevSelectedRow);
|
|
273
268
|
resetSelectedRowsKeys(state);
|
|
274
269
|
}
|
|
275
270
|
addKeyToSelectedRowKeys(state, row.key);
|
|
@@ -307,14 +302,14 @@ export function markRowDeselected(state, rowKeyValue) {
|
|
|
307
302
|
* Sets `isSelected`, `ariaSelected` and `classnames` on the row object
|
|
308
303
|
* which are used by the template to render the appropriate values.
|
|
309
304
|
*
|
|
310
|
-
* @param {Object} state - datatable
|
|
305
|
+
* @param {Object} state - The datatable state
|
|
311
306
|
* @param {Array} keys - a list of row key values to be marked selected
|
|
312
307
|
*/
|
|
313
308
|
function markRowsSelectedByKeys(state, keys) {
|
|
314
|
-
|
|
315
|
-
const row = getRowByKey(state,
|
|
309
|
+
for (let i = 0, { length } = keys; i < length; i += 1) {
|
|
310
|
+
const row = getRowByKey(state, keys[i]);
|
|
316
311
|
setRowSelectedAttributes(true, row);
|
|
317
|
-
}
|
|
312
|
+
}
|
|
318
313
|
}
|
|
319
314
|
|
|
320
315
|
/**
|
|
@@ -324,14 +319,14 @@ function markRowsSelectedByKeys(state, keys) {
|
|
|
324
319
|
* to one which reflects that the row is not selected on the row object.
|
|
325
320
|
* These are used by the template to render the appropriate values.
|
|
326
321
|
*
|
|
327
|
-
* @param {Object} state - datatable
|
|
322
|
+
* @param {Object} state - The datatable state
|
|
328
323
|
* @param {Array} keys - a list of row key values to be marked selected
|
|
329
324
|
*/
|
|
330
325
|
function markRowsDeselectedByKeys(state, keys) {
|
|
331
|
-
|
|
332
|
-
const row = getRowByKey(state,
|
|
326
|
+
for (let i = 0, { length } = keys; i < length; i += 1) {
|
|
327
|
+
const row = getRowByKey(state, keys[i]);
|
|
333
328
|
setRowSelectedAttributes(false, row);
|
|
334
|
-
}
|
|
329
|
+
}
|
|
335
330
|
}
|
|
336
331
|
|
|
337
332
|
/**
|
|
@@ -344,11 +339,12 @@ function markRowsDeselectedByKeys(state, keys) {
|
|
|
344
339
|
*/
|
|
345
340
|
export function markDeselectedRowDisabled(state) {
|
|
346
341
|
const rows = getRows(state);
|
|
347
|
-
|
|
342
|
+
for (let i = 0, { length: rowCount } = rows; i < rowCount; i += 1) {
|
|
343
|
+
const row = rows[i];
|
|
348
344
|
if (!isSelectedRow(state, row.key)) {
|
|
349
345
|
row.isDisabled = true;
|
|
350
346
|
}
|
|
351
|
-
}
|
|
347
|
+
}
|
|
352
348
|
}
|
|
353
349
|
|
|
354
350
|
/**
|
|
@@ -358,15 +354,16 @@ export function markDeselectedRowDisabled(state) {
|
|
|
358
354
|
* previously selected but a row was deselected, now allowing
|
|
359
355
|
* any other row to be selected - for this, all rows should be enabled
|
|
360
356
|
*
|
|
361
|
-
* @param {Object} state - datatable
|
|
357
|
+
* @param {Object} state - The datatable state
|
|
362
358
|
*/
|
|
363
359
|
export function markDeselectedRowEnabled(state) {
|
|
364
360
|
const rows = getRows(state);
|
|
365
|
-
|
|
361
|
+
for (let i = 0, { length: rowCount } = rows; i < rowCount; i += 1) {
|
|
362
|
+
const row = rows[i];
|
|
366
363
|
if (!isSelectedRow(state, row.key)) {
|
|
367
364
|
row.isDisabled = false;
|
|
368
365
|
}
|
|
369
|
-
}
|
|
366
|
+
}
|
|
370
367
|
}
|
|
371
368
|
|
|
372
369
|
/************************** SELECTED ROW KEYS **************************/
|
|
@@ -409,8 +406,7 @@ export function setSelectedRowsKeys(state, value) {
|
|
|
409
406
|
|
|
410
407
|
// Convert the selectedRows Array to an Object that state.selectedRowKeys expects
|
|
411
408
|
// ['a', 'b'] -> { a : true, b : true}
|
|
412
|
-
const
|
|
413
|
-
normalizeSelectedRowsKey(selectedRows);
|
|
409
|
+
const selectedRowsKeys = normalizeSelectedRowsKey(selectedRows);
|
|
414
410
|
|
|
415
411
|
// Compute differences between currently selected rows and
|
|
416
412
|
// newly selected row keys. The diff will tell which new rows
|
|
@@ -419,18 +415,19 @@ export function setSelectedRowsKeys(state, value) {
|
|
|
419
415
|
const selectionOperations = getSelectedDiff(state, selectedRows);
|
|
420
416
|
const deselectionOperations = getDeselectedDiff(
|
|
421
417
|
state,
|
|
422
|
-
|
|
418
|
+
selectedRowsKeys
|
|
423
419
|
);
|
|
424
420
|
markRowsSelectedByKeys(state, selectionOperations);
|
|
425
421
|
markRowsDeselectedByKeys(state, deselectionOperations);
|
|
426
|
-
state.selectedRowsKeys =
|
|
422
|
+
state.selectedRowsKeys = selectedRowsKeys;
|
|
427
423
|
|
|
424
|
+
const { length: selectedRowsCount } = selectedRows;
|
|
428
425
|
// If we select the max number of rows allowed and if max-row-selection > 1 (multi-select),
|
|
429
426
|
// disable all the other rows to prevent further selection
|
|
430
|
-
if (
|
|
427
|
+
if (selectedRowsCount === maxRowSelection && maxRowSelection > 1) {
|
|
431
428
|
markDeselectedRowDisabled(state);
|
|
432
429
|
} else if (
|
|
433
|
-
|
|
430
|
+
selectedRowsCount < maxRowSelection &&
|
|
434
431
|
previousSelectionLength === maxRowSelection
|
|
435
432
|
) {
|
|
436
433
|
// If the previous selection had reached the max limit and the new selection
|
|
@@ -448,34 +445,45 @@ export function setSelectedRowsKeys(state, value) {
|
|
|
448
445
|
|
|
449
446
|
export function syncSelectedRowsKeys(state, selectedRows) {
|
|
450
447
|
let changed = false;
|
|
451
|
-
const {
|
|
452
|
-
const
|
|
448
|
+
const { keyField, selectedRowsKeys } = state;
|
|
449
|
+
const { length: selectedRowCount } = selectedRows;
|
|
453
450
|
if (Object.keys(selectedRowsKeys).length !== selectedRows.length) {
|
|
454
451
|
changed = true;
|
|
452
|
+
// Untracked state change.
|
|
455
453
|
state.selectedRowsKeys = updateSelectedRowsKeysFromSelectedRows(
|
|
456
454
|
selectedRows,
|
|
457
455
|
keyField
|
|
458
456
|
);
|
|
459
457
|
} else {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
458
|
+
for (let i = 0; i < selectedRowCount; i += 1) {
|
|
459
|
+
const row = selectedRows[i];
|
|
460
|
+
if (!selectedRowsKeys[row[keyField]]) {
|
|
461
|
+
changed = true;
|
|
462
|
+
// Untracked state change.
|
|
463
|
+
state.selectedRowsKeys = updateSelectedRowsKeysFromSelectedRows(
|
|
464
|
+
selectedRows,
|
|
465
|
+
keyField
|
|
466
|
+
);
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
466
469
|
}
|
|
467
470
|
}
|
|
468
|
-
if (
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
471
|
+
if (changed) {
|
|
472
|
+
const total = getMaxRowSelection(state) || getRowsTotal(state);
|
|
473
|
+
if (total > 1) {
|
|
474
|
+
// Tracked state changes.
|
|
475
|
+
if (selectedRowCount < total) {
|
|
476
|
+
markDeselectedRowEnabled(state);
|
|
477
|
+
} else {
|
|
478
|
+
markDeselectedRowDisabled(state);
|
|
479
|
+
}
|
|
473
480
|
}
|
|
474
481
|
}
|
|
482
|
+
// Tracked state change.
|
|
475
483
|
updateBulkSelectionState(state);
|
|
476
484
|
|
|
477
485
|
return {
|
|
478
|
-
ifChanged
|
|
486
|
+
ifChanged(callback) {
|
|
479
487
|
if (changed && typeof callback === 'function') {
|
|
480
488
|
callback(selectedRows);
|
|
481
489
|
}
|
|
@@ -484,10 +492,12 @@ export function syncSelectedRowsKeys(state, selectedRows) {
|
|
|
484
492
|
}
|
|
485
493
|
|
|
486
494
|
function updateSelectedRowsKeysFromSelectedRows(selectedRows, keyField) {
|
|
487
|
-
|
|
495
|
+
const selectedRowsKeys = {};
|
|
496
|
+
for (let i = 0, { length } = selectedRows; i < length; i += 1) {
|
|
497
|
+
const row = selectedRows[i];
|
|
488
498
|
selectedRowsKeys[row[keyField]] = true;
|
|
489
|
-
|
|
490
|
-
|
|
499
|
+
}
|
|
500
|
+
return selectedRowsKeys;
|
|
491
501
|
}
|
|
492
502
|
|
|
493
503
|
function addKeyToSelectedRowKeys(state, key) {
|
|
@@ -500,15 +510,23 @@ function removeKeyFromSelectedRowKeys(state, key) {
|
|
|
500
510
|
state.selectedRowsKeys[key] = false;
|
|
501
511
|
}
|
|
502
512
|
|
|
503
|
-
function normalizeSelectedRowsKey(
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
}
|
|
513
|
+
function normalizeSelectedRowsKey(keys) {
|
|
514
|
+
const selectedRowsKeys = {};
|
|
515
|
+
for (let i = 0, { length } = keys; i < length; i += 1) {
|
|
516
|
+
selectedRowsKeys[keys[i]] = true;
|
|
517
|
+
}
|
|
518
|
+
return selectedRowsKeys;
|
|
508
519
|
}
|
|
509
520
|
|
|
510
521
|
function filterValidKeys(state, keys) {
|
|
511
|
-
|
|
522
|
+
const filtered = [];
|
|
523
|
+
for (let i = 0, { length } = keys; i < length; i += 1) {
|
|
524
|
+
const key = keys[i];
|
|
525
|
+
if (rowKeyExists(state, key)) {
|
|
526
|
+
filtered.push(key);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
return filtered;
|
|
512
530
|
}
|
|
513
531
|
|
|
514
532
|
export function resetSelectedRowsKeys(state) {
|
|
@@ -521,11 +539,11 @@ export function resetSelectedRowsKeys(state) {
|
|
|
521
539
|
* Returns the row key value of the row that was last selected
|
|
522
540
|
* Returns undefined if the row key value is invalid
|
|
523
541
|
*
|
|
524
|
-
* @param {Object} state -
|
|
542
|
+
* @param {Object} state - The datatable state.
|
|
525
543
|
* @returns {String | undefined } the row key or undefined.
|
|
526
544
|
*/
|
|
527
545
|
function getLastRowSelection(state) {
|
|
528
|
-
const lastSelectedRowKey = state
|
|
546
|
+
const { lastSelectedRowKey } = state;
|
|
529
547
|
const keyIsValid =
|
|
530
548
|
lastSelectedRowKey !== undefined &&
|
|
531
549
|
getRowIndexByKey(state, lastSelectedRowKey) !== undefined;
|
|
@@ -551,19 +569,18 @@ function setLastRowSelection(state, rowKeyValue) {
|
|
|
551
569
|
*
|
|
552
570
|
* @param {Number} previousMaxRowSelection
|
|
553
571
|
* @param {Number} newMaxRowSelection
|
|
554
|
-
* @returns
|
|
572
|
+
* @returns {Boolean}
|
|
555
573
|
*/
|
|
556
574
|
export function inputTypeNeedsToChange(
|
|
557
575
|
previousMaxRowSelection,
|
|
558
576
|
newMaxRowSelection
|
|
559
577
|
) {
|
|
560
578
|
return (
|
|
579
|
+
previousMaxRowSelection === 0 ||
|
|
580
|
+
newMaxRowSelection === 0 ||
|
|
561
581
|
(previousMaxRowSelection === 1 &&
|
|
562
582
|
isMultiSelection(newMaxRowSelection)) ||
|
|
563
|
-
(isMultiSelection(previousMaxRowSelection)
|
|
564
|
-
newMaxRowSelection === 1) ||
|
|
565
|
-
previousMaxRowSelection === 0 ||
|
|
566
|
-
newMaxRowSelection === 0
|
|
583
|
+
(newMaxRowSelection === 1 && isMultiSelection(previousMaxRowSelection))
|
|
567
584
|
);
|
|
568
585
|
}
|
|
569
586
|
|
|
@@ -571,10 +588,12 @@ export function updateRowSelectionInputType(state) {
|
|
|
571
588
|
const type = getRowSelectionInputType(state);
|
|
572
589
|
const rows = getRows(state);
|
|
573
590
|
|
|
574
|
-
|
|
591
|
+
for (let i = 0, { length: rowCount } = rows; i < rowCount; i += 1) {
|
|
592
|
+
// Tracked state changes.
|
|
593
|
+
const row = rows[i];
|
|
575
594
|
row.inputType = type;
|
|
576
595
|
row.isDisabled = isDisabledRow(state, row.key);
|
|
577
|
-
}
|
|
596
|
+
}
|
|
578
597
|
}
|
|
579
598
|
|
|
580
599
|
/************************** MAX ROW SELECTION **************************/
|
|
@@ -587,22 +606,25 @@ export function updateRowSelectionInputType(state) {
|
|
|
587
606
|
* and input type is radio if maxRowSelection = 1.
|
|
588
607
|
* Invalid values are set to default and an error is logged
|
|
589
608
|
*
|
|
590
|
-
* @param {Object} state -
|
|
609
|
+
* @param {Object} state - The datatable state
|
|
591
610
|
* @param {Number | String} - value to set for maxRowSelection
|
|
592
611
|
*/
|
|
593
612
|
export function setMaxRowSelection(state, value) {
|
|
594
613
|
const previousSelectedRowsKeys = getSelectedRowsKeys(state);
|
|
614
|
+
// Tracked state changes.
|
|
595
615
|
markAllRowsDeselected(state);
|
|
596
616
|
if (isNonNegativeInteger(value)) {
|
|
597
617
|
const previousMaxRowSelection = getMaxRowSelection(state);
|
|
618
|
+
// Untracked state change.
|
|
598
619
|
state.maxRowSelection = Number(value);
|
|
599
620
|
const newMaxRowSelection = getMaxRowSelection(state);
|
|
600
|
-
//
|
|
621
|
+
// Reselect up to maxRowSelection rows.
|
|
601
622
|
const numberOfRows = Math.min(
|
|
602
623
|
previousSelectedRowsKeys.length,
|
|
603
624
|
newMaxRowSelection
|
|
604
625
|
);
|
|
605
|
-
for (let i = 0; i < numberOfRows; i
|
|
626
|
+
for (let i = 0; i < numberOfRows; i += 1) {
|
|
627
|
+
// Tracked state changes.
|
|
606
628
|
markRowSelected(state, previousSelectedRowsKeys[i]);
|
|
607
629
|
}
|
|
608
630
|
if (
|
|
@@ -611,10 +633,12 @@ export function setMaxRowSelection(state, value) {
|
|
|
611
633
|
getMaxRowSelection(state)
|
|
612
634
|
)
|
|
613
635
|
) {
|
|
636
|
+
// Tracked state changes.
|
|
614
637
|
updateRowSelectionInputType(state);
|
|
615
638
|
updateBulkSelectionState(state);
|
|
616
639
|
}
|
|
617
640
|
} else {
|
|
641
|
+
// Untracked state change.
|
|
618
642
|
state.maxRowSelection = MAX_ROW_SELECTION_DEFAULT;
|
|
619
643
|
// suppress console error if no value is passed in
|
|
620
644
|
if (value !== null && value !== undefined) {
|
|
@@ -629,28 +653,24 @@ export function setMaxRowSelection(state, value) {
|
|
|
629
653
|
/************************** BULK SELECTION STATE **************************/
|
|
630
654
|
|
|
631
655
|
export function updateBulkSelectionState(state) {
|
|
632
|
-
const
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
}
|
|
641
|
-
);
|
|
656
|
+
const { columns } = state;
|
|
657
|
+
const colIndex = getSelectBoxesColumnIndex(state);
|
|
658
|
+
if (colIndex >= 0) {
|
|
659
|
+
const col = columns[colIndex];
|
|
660
|
+
const updatedCol = Object.assign({}, col);
|
|
661
|
+
updatedCol.bulkSelection = getBulkSelectionState(state);
|
|
662
|
+
updatedCol.isBulkSelectionDisabled = isBulkSelectionDisabled(state);
|
|
663
|
+
columns[colIndex] = updatedCol;
|
|
642
664
|
}
|
|
643
665
|
}
|
|
644
666
|
|
|
645
667
|
function getBulkSelectionState(state) {
|
|
646
|
-
const selected = getCurrentSelectionLength(state);
|
|
647
668
|
const total = getMaxRowSelection(state) || getRowsTotal(state);
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
return 'all';
|
|
669
|
+
const selected = getCurrentSelectionLength(state);
|
|
670
|
+
if (selected) {
|
|
671
|
+
return selected === total ? 'all' : 'some';
|
|
652
672
|
}
|
|
653
|
-
return '
|
|
673
|
+
return 'none';
|
|
654
674
|
}
|
|
655
675
|
|
|
656
676
|
function isBulkSelectionDisabled(state) {
|
|
@@ -665,10 +685,10 @@ function isBulkSelectionDisabled(state) {
|
|
|
665
685
|
* Returns an object that contains the start index which is the lower index value of the two
|
|
666
686
|
* and the end index which is the higher value of the two.
|
|
667
687
|
*
|
|
668
|
-
* @param {Object} state - datatable
|
|
669
|
-
* @param {String} startRowKey - row key value of the first row that was selected (start of the interval)
|
|
670
|
-
* @param {String} endRowKey - row key value of the last row that was selected (end of the interval)
|
|
671
|
-
* @returns {Object} - object with start index and end index
|
|
688
|
+
* @param {Object} state - The datatable state
|
|
689
|
+
* @param {String} startRowKey - The row key value of the first row that was selected (start of the interval)
|
|
690
|
+
* @param {String} endRowKey - The row key value of the last row that was selected (end of the interval)
|
|
691
|
+
* @returns {Object} - An object with start index and end index
|
|
672
692
|
*/
|
|
673
693
|
function getRowIntervalIndexes(state, startRowKey, endRowKey) {
|
|
674
694
|
const start =
|
|
@@ -687,9 +707,9 @@ function getRowIntervalIndexes(state, startRowKey, endRowKey) {
|
|
|
687
707
|
*
|
|
688
708
|
* Note: This change is volatile, and will be reset (lost) in the next index regeneration.
|
|
689
709
|
*
|
|
690
|
-
* @param {Object} state -
|
|
691
|
-
* @param {String} rowKeyValue -
|
|
692
|
-
* @param {String} colKeyValue -
|
|
710
|
+
* @param {Object} state - The datatable state
|
|
711
|
+
* @param {String} rowKeyValue - The row key of the cell to mark selected
|
|
712
|
+
* @param {String} colKeyValue - The column key of the cell to mark selected
|
|
693
713
|
*/
|
|
694
714
|
export function setAriaSelectedOnCell(state, rowKeyValue, colKeyValue) {
|
|
695
715
|
const row = getRowByKey(state, rowKeyValue);
|
|
@@ -707,9 +727,9 @@ export function setAriaSelectedOnCell(state, rowKeyValue, colKeyValue) {
|
|
|
707
727
|
*
|
|
708
728
|
* Note: This change is volatile, and will be reset (lost) in the next index regeneration.
|
|
709
729
|
*
|
|
710
|
-
* @param {Object} state -
|
|
711
|
-
* @param {String} rowKeyValue -
|
|
712
|
-
* @param {String} colKeyValue -
|
|
730
|
+
* @param {Object} state - The datatable state
|
|
731
|
+
* @param {String} rowKeyValue - The row key of the cell to select
|
|
732
|
+
* @param {String} colKeyValue - The column key of the cell to select
|
|
713
733
|
*/
|
|
714
734
|
export function unsetAriaSelectedOnCell(state, rowKeyValue, colKeyValue) {
|
|
715
735
|
const row = getRowByKey(state, rowKeyValue);
|
|
@@ -725,8 +745,8 @@ export function unsetAriaSelectedOnCell(state, rowKeyValue, colKeyValue) {
|
|
|
725
745
|
* to one which reflects the selected value of the row on the row object.
|
|
726
746
|
* These are used by the template to render the appropriate values.
|
|
727
747
|
*
|
|
728
|
-
* @param {Boolean} selectedValue -
|
|
729
|
-
* @param {Object} row -
|
|
748
|
+
* @param {Boolean} selectedValue - Whether the row is selected
|
|
749
|
+
* @param {Object} row - The row
|
|
730
750
|
*/
|
|
731
751
|
function setRowSelectedAttributes(selectedValue, row) {
|
|
732
752
|
row.isSelected = selectedValue;
|
|
@@ -734,32 +754,40 @@ function setRowSelectedAttributes(selectedValue, row) {
|
|
|
734
754
|
row.classnames = resolveRowClassNames(row);
|
|
735
755
|
}
|
|
736
756
|
|
|
737
|
-
function getSelectedDiff(state,
|
|
738
|
-
const
|
|
739
|
-
|
|
757
|
+
function getSelectedDiff(state, selectedRows) {
|
|
758
|
+
const filtered = [];
|
|
759
|
+
const { selectedRowsKeys } = state;
|
|
760
|
+
for (let i = 0, { length } = selectedRows; i < length; i += 1) {
|
|
761
|
+
const rowKeyValue = selectedRows[i];
|
|
762
|
+
if (!selectedRowsKeys[rowKeyValue]) {
|
|
763
|
+
filtered.push(rowKeyValue);
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
return filtered;
|
|
740
767
|
}
|
|
741
768
|
|
|
742
769
|
function getDeselectedDiff(state, value) {
|
|
743
|
-
const
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
)
|
|
770
|
+
const filtered = [];
|
|
771
|
+
const { selectedRowsKeys } = state;
|
|
772
|
+
const keys = Object.keys(selectedRowsKeys);
|
|
773
|
+
for (let i = 0, { length } = keys; i < length; i += 1) {
|
|
774
|
+
const rowKeyValue = keys[i];
|
|
775
|
+
if (selectedRowsKeys[rowKeyValue] && !value[rowKeyValue]) {
|
|
776
|
+
filtered.push(rowKeyValue);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
return filtered;
|
|
747
780
|
}
|
|
748
781
|
|
|
749
782
|
function getSelectBoxesColumnIndex(state) {
|
|
750
783
|
const columns = getColumns(state) || [];
|
|
751
|
-
let
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
selectBoxColumnIndex = index;
|
|
756
|
-
return true;
|
|
784
|
+
for (let colIndex = 0; colIndex < columns.length; colIndex += 1) {
|
|
785
|
+
const col = columns[colIndex];
|
|
786
|
+
if (col.type === SELECTABLE_ROW_CHECKBOX) {
|
|
787
|
+
return colIndex;
|
|
757
788
|
}
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
});
|
|
761
|
-
|
|
762
|
-
return selectBoxColumnIndex;
|
|
789
|
+
}
|
|
790
|
+
return -1;
|
|
763
791
|
}
|
|
764
792
|
|
|
765
793
|
/**
|
|
@@ -27,7 +27,7 @@ export function isSelectedRow(state, rowKeyValue) {
|
|
|
27
27
|
*
|
|
28
28
|
* NOTE: Do not disable selection when `max-row-selection` is 1 and a row has been selected.
|
|
29
29
|
*
|
|
30
|
-
* @param {Object} state
|
|
30
|
+
* @param {Object} state The datatable state
|
|
31
31
|
* @param {String} rowKeyValue The row key value to lookup
|
|
32
32
|
* @returns {Boolean} Whether the row should be disabled or not
|
|
33
33
|
*/
|
|
@@ -72,7 +72,7 @@ export function getMaxRowSelection(state) {
|
|
|
72
72
|
/**
|
|
73
73
|
* Determines the number of rows currently selected.
|
|
74
74
|
*
|
|
75
|
-
* @param {Object} state
|
|
75
|
+
* @param {Object} state The datatable state
|
|
76
76
|
* @returns {Integer} The number of currently selected rows
|
|
77
77
|
*/
|
|
78
78
|
export function getCurrentSelectionLength(state) {
|
|
@@ -82,11 +82,18 @@ export function getCurrentSelectionLength(state) {
|
|
|
82
82
|
/**
|
|
83
83
|
* Retrieves the row keys that are currently selected.
|
|
84
84
|
*
|
|
85
|
-
* @param {Object} state
|
|
85
|
+
* @param {Object} state The datatable state
|
|
86
86
|
* @returns {Array} An array of the row keys that are currently selected
|
|
87
87
|
*/
|
|
88
88
|
export function getSelectedRowsKeys(state) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
);
|
|
89
|
+
const filtered = [];
|
|
90
|
+
const { selectedRowsKeys } = state;
|
|
91
|
+
const keys = Object.keys(selectedRowsKeys);
|
|
92
|
+
for (let i = 0, { length } = keys; i < length; i += 1) {
|
|
93
|
+
const rowKeyValue = keys[i];
|
|
94
|
+
if (selectedRowsKeys[rowKeyValue]) {
|
|
95
|
+
filtered.push(rowKeyValue);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return filtered;
|
|
92
99
|
}
|