lightning-base-components 1.21.6-alpha → 1.21.7-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 +45 -4
- package/package.json +125 -3
- package/scopedImports/@salesforce-label-LightningColorPicker.a11yDefaultText.js +1 -0
- package/scopedImports/@salesforce-label-LightningDatatable.multiColumnSortingToast.js +1 -0
- package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuColumns.js +1 -0
- package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuMultiColumnSort.js +1 -0
- package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuRows.js +1 -0
- package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuTooltip.js +1 -0
- package/scopedImports/@salesforce-label-LightningForm.dependentFieldsListHeading.js +1 -1
- package/scopedImports/@salesforce-label-LightningLookup.advancedSearchMobile.js +1 -1
- package/scopedImports/@salesforce-label-LightningLookup.modalTitle.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.addRule.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.applyButton.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.cancelButton.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.clearButton.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.duplicateValueValidation.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.firstRuleHeading.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.modalTitle.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.otherRuleHeading.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.ruleLimit.js +1 -0
- package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.ruleLimitReached.js +1 -0
- package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.ascending.js +1 -0
- package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.descending.js +1 -0
- package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.dropdownPlaceholder.js +1 -0
- package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.missingValueValidation.js +1 -0
- package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.moveDownTooltip.js +1 -0
- package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.moveUpTooltip.js +1 -0
- package/scopedImports/@salesforce-label-LightningProgressIndicator.pathCurrentStage.js +1 -0
- package/scopedImports/@salesforce-label-LightningRecordPicker.emptyStateNoResultText.js +1 -0
- package/scopedImports/@salesforce-label-LightningRecordPicker.messageWhenSearchTermTooShort.js +1 -0
- package/scopedImports/@salesforce-label-LightningRecordPicker.resultCountDescriptionForMoreThanOneHundredRecords.js +1 -0
- package/scopedImports/@salesforce-label-LightningRecordPicker.resultCountDescriptionForMultipleRecords.js +1 -0
- package/scopedImports/@salesforce-label-LightningRecordPicker.resultCountDescriptionForOneRecord.js +1 -0
- package/scopedImports/@salesforce-label-LightningRecordPicker.resultsLoading.js +1 -0
- package/scopedImports/@salesforce-label-LightningRecordPicker.searchInputHelp.js +1 -0
- package/src/lightning/accordion/accordion.js +21 -14
- package/src/lightning/accordionSection/button.slds.css +16 -15
- package/src/lightning/alert/alert.js +10 -8
- package/src/lightning/ariaObserver/ariaObserver.js +19 -5
- package/src/lightning/baseCombobox/base-combobox.slds.css +1 -1
- package/src/lightning/baseCombobox/baseCombobox.html +2 -1
- package/src/lightning/baseCombobox/baseCombobox.js +21 -0
- package/src/lightning/baseCombobox/input-text.slds.css +5 -5
- package/src/lightning/button/button.js +5 -0
- package/src/lightning/button/button.slds.css +16 -15
- package/src/lightning/buttonIcon/__docs__/buttonIcon.md +4 -0
- package/src/lightning/buttonIcon/__examples__/basic/basic.html +17 -1
- package/src/lightning/buttonIcon/button-icon.slds.css +41 -25
- package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +33 -229
- package/src/lightning/buttonIconStateful/button-icon.slds.css +41 -25
- package/src/lightning/buttonIconStateful/button.slds.css +16 -15
- package/src/lightning/buttonMenu/button-icon.slds.css +41 -25
- package/src/lightning/buttonMenu/button-menu.slds.css +41 -15
- package/src/lightning/buttonMenu/button.slds.css +16 -15
- package/src/lightning/buttonMenu/buttonMenu.css +1 -1
- package/src/lightning/buttonMenu/buttonMenu.html +1 -1
- package/src/lightning/buttonMenu/buttonMenu.js +44 -4
- package/src/lightning/buttonStateful/button-stateful.slds.css +1 -4
- package/src/lightning/buttonStateful/button.slds.css +16 -15
- package/src/lightning/calendar/calendar.html +3 -4
- package/src/lightning/card/card.html +1 -1
- package/src/lightning/colorPickerCustom/colorPickerCustom.html +1 -1
- package/src/lightning/colorPickerCustom/colorPickerCustom.js +0 -9
- package/src/lightning/colorPickerCustom/input-text.slds.css +5 -5
- package/src/lightning/combobox/form-element.slds.css +1 -0
- package/src/lightning/confirm/confirm.js +10 -8
- package/src/lightning/datatable/__docs__/datatable.md +0 -3
- package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/README.md +17 -0
- package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/customComponentPopupTableWrapper.html +11 -0
- package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/customComponentPopupTableWrapper.js +25 -0
- package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/generateData.js +15 -0
- package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/customInput.html +4 -0
- package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/myCustomTypePopupTable.js +17 -0
- package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/nestedSimpleComponentParent.html +7 -0
- package/src/lightning/datatable/__examples__disabled/simpleComponentPopupNested/simpleComponentPopupNested.html +31 -0
- package/src/lightning/datatable/__examples__disabled/simpleComponentPopupNested/simpleComponentPopupNested.js +36 -0
- package/src/lightning/datatable/columnWidthManager.js +19 -16
- package/src/lightning/datatable/columns.js +74 -25
- package/src/lightning/datatable/datatable.js +493 -133
- package/src/lightning/datatable/errors.js +1 -1
- package/src/lightning/datatable/indexes.js +32 -19
- package/src/lightning/datatable/infiniteLoading.js +6 -5
- package/src/lightning/datatable/inlineEdit.js +45 -59
- package/src/lightning/datatable/keyboard.js +571 -160
- package/src/lightning/datatable/renderManager.js +12 -9
- package/src/lightning/datatable/rowLevelActions.js +5 -14
- package/src/lightning/datatable/rowSelection.js +36 -17
- package/src/lightning/datatable/rowSelectionShared.js +1 -0
- package/src/lightning/datatable/rows.js +132 -24
- package/src/lightning/datatable/rowsInlining.js +473 -0
- package/src/lightning/datatable/sort.js +8 -4
- package/src/lightning/datatable/state.js +12 -4
- package/src/lightning/datatable/templates/div/div.html +807 -91
- package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +29 -3
- package/src/lightning/datatable/templates/table/table.css +29 -1
- package/src/lightning/datatable/templates/table/table.html +786 -87
- package/src/lightning/datatable/utils.js +39 -0
- package/src/lightning/datatable/virtualization.js +44 -19
- package/src/lightning/datatable/wrapText.js +7 -10
- package/src/lightning/datepicker/datepicker.html +3 -1
- package/src/lightning/datepicker/datepicker.js +31 -1
- package/src/lightning/datepicker/form-element.slds.css +1 -0
- package/src/lightning/datepicker/input-text.slds.css +5 -5
- package/src/lightning/datetimepicker/datetimepicker.html +7 -1
- package/src/lightning/datetimepicker/datetimepicker.js +30 -2
- package/src/lightning/datetimepicker/form-element.slds.css +1 -0
- package/src/lightning/datetimepicker/input-text.slds.css +5 -5
- package/src/lightning/dualListbox/form-element.slds.css +1 -0
- package/src/lightning/focusTrap/focusTrap.css +7 -0
- package/src/lightning/groupedCombobox/form-element.slds.css +1 -0
- package/src/lightning/groupedCombobox/input-text.slds.css +5 -5
- package/src/lightning/helptext/button-icon.slds.css +41 -25
- package/src/lightning/helptext/form-element.slds.css +1 -0
- package/src/lightning/icon/__docs__/icon.md +0 -2
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/account_score.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/app_form_participant.html +11 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/app_form_product_participant.html +12 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/cost_model.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/labels.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/list_fee.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/list_rate.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/party_profile.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/people_score.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/price_adjustment_schedule.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/price_adjustment_tier.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/rate_adjustment.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/whatsapp.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +40 -1
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/array.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/bottom_group_alignment.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/cant_sync.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/center_group_alignment.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/columns.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/fully_synced.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/inner_join.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/join.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/left_join.html +14 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/macros.html +2 -2
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/not_in_sync.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/not_saved.html +9 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/outer_join.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/right_join.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/skill.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/sync_in_progress.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/top_group_alignment.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/account_score.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/app_form_participant.html +11 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/app_form_product_participant.html +12 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/cost_model.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/labels.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/list_fee.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/list_rate.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/party_profile.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/people_score.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/price_adjustment_schedule.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/price_adjustment_tier.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/rate_adjustment.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/whatsapp.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +40 -1
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/array.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/bottom_group_alignment.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/cant_sync.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/center_group_alignment.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/columns.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/fully_synced.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/inner_join.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/join.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/left_join.html +14 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/macros.html +2 -2
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/not_in_sync.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/not_saved.html +9 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/outer_join.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/right_join.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/skill.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/sync_in_progress.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/top_group_alignment.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/account_score.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/app_form_participant.html +11 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/app_form_product_participant.html +12 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/cost_model.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/labels.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/list_fee.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/list_rate.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/party_profile.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/people_score.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/price_adjustment_schedule.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/price_adjustment_tier.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/rate_adjustment.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/whatsapp.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +19 -1
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/account_score.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/app_form_participant.html +11 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/app_form_product_participant.html +12 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/cost_model.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/labels.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/list_fee.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/list_rate.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/party_profile.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/people_score.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/price_adjustment_schedule.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/price_adjustment_tier.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/rate_adjustment.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/whatsapp.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +19 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +22 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/array.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/bottom_group_alignment.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/cant_sync.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/center_group_alignment.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/columns.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/fully_synced.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/inner_join.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/join.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/left_join.html +14 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/macros.html +2 -2
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/not_in_sync.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/not_saved.html +9 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/outer_join.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/right_join.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/skill.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/sync_in_progress.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/top_group_alignment.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +22 -1
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/aggregate.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/array.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/bottom_group_alignment.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/cant_sync.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/center_group_alignment.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/columns.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/fully_synced.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/inner_join.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/join.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/left_join.html +14 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/macros.html +2 -2
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/not_in_sync.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/not_saved.html +9 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/outer_join.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/path_experiment.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/program_cohort.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/program_cohort_member.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/record_consent.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/right_join.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/skill.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/sync_in_progress.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/top_group_alignment.html +7 -0
- package/src/lightning/iconUtils/iconColors.js +1 -1
- package/src/lightning/input/form-element.slds.css +1 -0
- package/src/lightning/input/input.html +16 -2
- package/src/lightning/input/input.js +91 -3
- package/src/lightning/input/input.js-meta.xml +3 -0
- package/src/lightning/inputAddress/addressFormat.js +25 -11
- package/src/lightning/inputAddress/fieldsLayout.js +3 -0
- package/src/lightning/inputAddress/form-element.slds.css +1 -0
- package/src/lightning/inputAddress/input-text.slds.css +5 -5
- package/src/lightning/inputAddress/inputAddress.html +1 -1
- package/src/lightning/inputAddress/inputAddress.js +27 -11
- package/src/lightning/inputLocation/form-element.slds.css +1 -0
- package/src/lightning/inputLocation/input-text.slds.css +5 -5
- package/src/lightning/inputName/form-element.slds.css +1 -0
- package/src/lightning/inputName/input-text.slds.css +5 -5
- package/src/lightning/internationalizationLibrary/address/AddressFormat.js +2 -0
- package/src/lightning/layout/__docs__/layout.md +0 -2
- package/src/lightning/lookupAddress/form-element.slds.css +1 -0
- package/src/lightning/menuItem/menu-item.slds.css +3 -1
- package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +7 -3
- package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +18 -11
- package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
- package/src/lightning/modalBase/modalBase.css +4 -0
- package/src/lightning/modalBase/modalBase.html +16 -21
- package/src/lightning/modalBase/modalBase.js +46 -65
- package/src/lightning/modalHeader/modalHeader.html +3 -15
- package/src/lightning/modalHeader/modalHeader.js +14 -61
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.css +14 -0
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.html +55 -0
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.js +430 -0
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.js-meta.xml +4 -0
- package/src/lightning/overlayManager/overlayManager.js +16 -0
- package/src/lightning/pill/pill.js +19 -13
- package/src/lightning/pillContainer/button.slds.css +16 -15
- package/src/lightning/pillContainer/pillContainer.js +2 -1
- package/src/lightning/pillContainer/standardPillContainer.html +6 -2
- package/src/lightning/positionLibrary/direction.js +19 -0
- package/src/lightning/primitiveBubble/primitiveBubble.js +7 -0
- package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.html +2 -2
- package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +8 -0
- package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.css +34 -0
- package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.html +60 -0
- package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.js +107 -0
- package/src/lightning/primitiveHeaderFactory/primitiveHeaderFactory.js +36 -3
- package/src/lightning/primitiveHeaderFactory/sortingMenuHeader.css +5 -0
- package/src/lightning/primitiveHeaderFactory/sortingMenuHeader.html +9 -0
- package/src/lightning/primitiveInputCheckbox/form-element.slds.css +1 -0
- package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +3 -3
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.html +1 -1
- package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +1 -0
- package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -5
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.html +1 -1
- package/src/lightning/primitiveInputColor/form-element.slds.css +1 -0
- package/src/lightning/primitiveInputColor/input-text.slds.css +5 -5
- package/src/lightning/primitiveInputColor/primitiveInputColor.html +5 -2
- package/src/lightning/primitiveInputColor/primitiveInputColor.js +2 -0
- package/src/lightning/primitiveInputFile/button.slds.css +16 -15
- package/src/lightning/primitiveInputFile/form-element.slds.css +1 -0
- package/src/lightning/primitiveInputFile/primitiveInputFile.html +1 -1
- package/src/lightning/primitiveInputRadio/primitiveInputRadio.html +1 -1
- package/src/lightning/primitiveInputSimple/form-element.slds.css +1 -0
- package/src/lightning/primitiveInputSimple/input-text.slds.css +5 -5
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.html +3 -2
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +15 -0
- package/src/lightning/primitiveInputToggle/form-element.slds.css +1 -0
- package/src/lightning/primitiveInputToggle/input-toggle.slds.css +16 -14
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.html +1 -1
- package/src/lightning/progressIndicator/path.html +8 -2
- package/src/lightning/progressIndicator/progressIndicator.js +26 -2
- package/src/lightning/progressRing/progress-ring.slds.css +1 -1
- package/src/lightning/progressStep/progressStep.js +2 -1
- package/src/lightning/prompt/prompt.js +11 -9
- package/src/lightning/radioGroup/form-element.slds.css +1 -0
- package/src/lightning/radioGroup/input-radio-group.slds.css +4 -10
- package/src/lightning/select/form-element.slds.css +1 -0
- package/src/lightning/select/select.js +89 -7
- package/src/lightning/tabBar/tab-bar.slds.css +11 -0
- package/src/lightning/tabset/tabset.slds.css +1 -1
- package/src/lightning/textarea/form-element.slds.css +1 -0
- package/src/lightning/textarea/textarea.html +1 -0
- package/src/lightning/textarea/textarea.slds.css +2 -2
- package/src/lightning/timepicker/form-element.slds.css +1 -0
- package/src/lightning/timepicker/timepicker.html +4 -1
- package/src/lightning/timepicker/timepicker.js +3 -0
- package/src/lightning/toast/button-icon.slds.css +41 -25
- package/src/lightning/tooltipLibrary/tooltipLibrary.js +4 -15
- package/src/lightning/verticalNavigationOverflow/button.slds.css +16 -15
- package/scopedImports/@salesforce-label-LightningLookup.messageWhenSearchTermTooShort.js +0 -1
|
@@ -24,6 +24,7 @@ const CLASS_SET_PROTOTYPE = {
|
|
|
24
24
|
|
|
25
25
|
const NON_NEGATIVE_INTEGER_REGEXP = /^\d+$/;
|
|
26
26
|
const POSITIVE_INTEGER_REGEXP = /^[0-9]*[1-9][0-9]*$/;
|
|
27
|
+
const RENDER_MODE_INLINE_REGEXP = /\binline\b/;
|
|
27
28
|
const RENDER_MODE_ROLE_BASED_REGEXP = /\brole-based\b/;
|
|
28
29
|
|
|
29
30
|
/**
|
|
@@ -87,6 +88,9 @@ export function getRowDataSelector(rowKeyValue) {
|
|
|
87
88
|
* @returns {Node} The grid container element
|
|
88
89
|
*/
|
|
89
90
|
export function getGridContainerFromScrollerY(scrollerY) {
|
|
91
|
+
if (!scrollerY) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
90
94
|
const { firstElementChild: gridContainer } = scrollerY;
|
|
91
95
|
return gridContainer;
|
|
92
96
|
}
|
|
@@ -131,6 +135,16 @@ export function isNonNegativeInteger(value) {
|
|
|
131
135
|
return NON_NEGATIVE_INTEGER_REGEXP.test(value);
|
|
132
136
|
}
|
|
133
137
|
|
|
138
|
+
/**
|
|
139
|
+
* Tests if render mode is inline.
|
|
140
|
+
*
|
|
141
|
+
* @param {String} renderMode The render mode to test
|
|
142
|
+
* @returns {Boolean} Whether the render mode is inline
|
|
143
|
+
*/
|
|
144
|
+
export function isRenderModeInline(renderMode) {
|
|
145
|
+
return RENDER_MODE_INLINE_REGEXP.test(renderMode);
|
|
146
|
+
}
|
|
147
|
+
|
|
134
148
|
/**
|
|
135
149
|
* Tests if render mode is role-based.
|
|
136
150
|
*
|
|
@@ -196,3 +210,28 @@ export function getScrollOffsetFromTableEnd(el) {
|
|
|
196
210
|
el.scrollHeight - el.parentNode.scrollTop - el.parentNode.clientHeight
|
|
197
211
|
);
|
|
198
212
|
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Utility to check if new data just added
|
|
216
|
+
* extra rows to old data by comparing hashes
|
|
217
|
+
*
|
|
218
|
+
* @param {Array} prevData - previous datatable data
|
|
219
|
+
* @param {Array} newData - current datatable data
|
|
220
|
+
* @returns {Boolean} true if new data is extension of old data
|
|
221
|
+
*/
|
|
222
|
+
export function isLoadMore(prevData, newData) {
|
|
223
|
+
const prevLength = prevData.length;
|
|
224
|
+
const slicedNewData = newData.slice(0, prevLength);
|
|
225
|
+
return hashArray(prevData) === hashArray(slicedNewData);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
function hashArray(value) {
|
|
229
|
+
const str = JSON.stringify(value);
|
|
230
|
+
let hash = 0;
|
|
231
|
+
for (let i = 0; i < str.length; i++) {
|
|
232
|
+
const code = str.charCodeAt(i);
|
|
233
|
+
hash = (hash << 5) - hash + code;
|
|
234
|
+
hash = hash & hash; // Convert to 32bit integer
|
|
235
|
+
}
|
|
236
|
+
return hash;
|
|
237
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { escapeDoubleQuotes } from './utils';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* increases table height to accommodate new data
|
|
3
|
+
* used with infinite loading
|
|
5
4
|
*
|
|
6
|
-
* @param {
|
|
5
|
+
* @param {Array} prevData - previous datatable data
|
|
6
|
+
* @param {Array} newData - current datatable data
|
|
7
7
|
*/
|
|
8
|
-
export function
|
|
9
|
-
|
|
8
|
+
export function addTableHeight(state, prevData, newData) {
|
|
9
|
+
const extraRowCount = newData.length - prevData.length;
|
|
10
|
+
state.tableHeight += extraRowCount * state.rowHeight;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
/**
|
|
@@ -16,11 +17,27 @@ export function resetTableHeight(state) {
|
|
|
16
17
|
* @param {Object} state - datatable state
|
|
17
18
|
*/
|
|
18
19
|
export function resetRowHeights(state) {
|
|
20
|
+
const { firstVisibleIndex } = state;
|
|
21
|
+
const firstRenderedIndex = Math.max(
|
|
22
|
+
firstVisibleIndex - state.bufferSize,
|
|
23
|
+
0
|
|
24
|
+
);
|
|
25
|
+
const newOffsets = [0];
|
|
26
|
+
const firstRenderedOffset = state.offsets[firstRenderedIndex];
|
|
27
|
+
newOffsets[firstRenderedIndex] = firstRenderedOffset;
|
|
19
28
|
state.heightCache = {};
|
|
20
|
-
state.offsets =
|
|
21
|
-
state.offsetRanges = [];
|
|
29
|
+
state.offsets = newOffsets;
|
|
30
|
+
state.offsetRanges = [{ start: 0, end: 0 }];
|
|
31
|
+
if (firstRenderedIndex > 0) {
|
|
32
|
+
state.offsetRanges.push({
|
|
33
|
+
start: firstRenderedIndex,
|
|
34
|
+
end: firstRenderedIndex,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
22
37
|
if (state.virtualize && state.rows.length) {
|
|
23
|
-
|
|
38
|
+
const remainingRows = state.rows.length - firstRenderedIndex;
|
|
39
|
+
const remainingRowsHeight = state.rowHeight * remainingRows;
|
|
40
|
+
state.tableHeight = firstRenderedOffset + remainingRowsHeight;
|
|
24
41
|
}
|
|
25
42
|
}
|
|
26
43
|
|
|
@@ -44,12 +61,13 @@ export function handleVariableRowHeights(template, state, renderedRows) {
|
|
|
44
61
|
currentRange.start
|
|
45
62
|
);
|
|
46
63
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
64
|
+
const rowElements = template.querySelectorAll(
|
|
65
|
+
'[data-rowgroup-body] [role="row"]'
|
|
66
|
+
);
|
|
67
|
+
for (let i = 0; i < renderedRows.length; i++) {
|
|
68
|
+
const row = renderedRows[i];
|
|
69
|
+
if (!state.heightCache[row.key] && state.heightCache[row.key] !== 0) {
|
|
70
|
+
const rowElement = rowElements[i];
|
|
53
71
|
if (rowElement) {
|
|
54
72
|
// first rendered row needs height increased by 1 to account for missing border
|
|
55
73
|
let height = rowElement.getBoundingClientRect().height;
|
|
@@ -66,7 +84,7 @@ export function handleVariableRowHeights(template, state, renderedRows) {
|
|
|
66
84
|
adjustFromIndex = row.rowIndex + 2;
|
|
67
85
|
}
|
|
68
86
|
}
|
|
69
|
-
}
|
|
87
|
+
}
|
|
70
88
|
state.tableHeight += adjustmentValue;
|
|
71
89
|
updateOffsetRanges(
|
|
72
90
|
state,
|
|
@@ -86,7 +104,7 @@ export function handleVariableRowHeights(template, state, renderedRows) {
|
|
|
86
104
|
export function findFirstVisibleIndex(state, scrollTop) {
|
|
87
105
|
const { offsetRanges, offsets, rowHeight, fixedHeight, virtualize } = state;
|
|
88
106
|
if (virtualize && fixedHeight) {
|
|
89
|
-
return scrollTop / rowHeight;
|
|
107
|
+
return Math.floor(scrollTop / rowHeight);
|
|
90
108
|
}
|
|
91
109
|
let start = 0;
|
|
92
110
|
let end = offsetRanges.length - 1;
|
|
@@ -310,7 +328,14 @@ function updateVirtualizeStyles(template, state, renderedRows) {
|
|
|
310
328
|
state.offsets[state.firstVisibleIndex] + state.firstRowOffset;
|
|
311
329
|
|
|
312
330
|
// update top of rendered rows based on offsets
|
|
313
|
-
|
|
314
|
-
|
|
331
|
+
// all but first rendered row will need to subtract
|
|
332
|
+
// 1 from offset to account for missing top border
|
|
333
|
+
// on first rendered row
|
|
334
|
+
renderedRows.forEach((row, index) => {
|
|
335
|
+
let top = state.offsets[row.rowIndex] - 1;
|
|
336
|
+
if (!index) {
|
|
337
|
+
top = top + 1; // reset first rendered row to offset in state
|
|
338
|
+
}
|
|
339
|
+
row.style = `position:absolute;top:${top}px;`;
|
|
315
340
|
});
|
|
316
341
|
}
|
|
@@ -2,6 +2,7 @@ import labelClipText from '@salesforce/label/LightningDatatable.clipText';
|
|
|
2
2
|
import labelWrapText from '@salesforce/label/LightningDatatable.wrapText';
|
|
3
3
|
import { normalizeBoolean } from 'lightning/utilsPrivate';
|
|
4
4
|
import { getStateColumnIndex } from './columns';
|
|
5
|
+
import { updateCell } from './rows';
|
|
5
6
|
import { normalizeNumberAttribute } from './utils';
|
|
6
7
|
import { getDefaultState } from './state';
|
|
7
8
|
|
|
@@ -50,6 +51,7 @@ export function setWrapTextMaxLines(state, value) {
|
|
|
50
51
|
'positive',
|
|
51
52
|
undefined
|
|
52
53
|
);
|
|
54
|
+
state.shouldResetHeights = true;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
/**
|
|
@@ -60,15 +62,10 @@ export function setWrapTextMaxLines(state, value) {
|
|
|
60
62
|
* @param {Number} colIndex The column index to update
|
|
61
63
|
* @param {String} colKeyValue The column key value to look up wrap text configuration
|
|
62
64
|
*/
|
|
63
|
-
function updateWrapTextAndMaxLinesValuesInCells(state, colIndex
|
|
65
|
+
function updateWrapTextAndMaxLinesValuesInCells(state, colIndex) {
|
|
64
66
|
const { rows } = state;
|
|
65
|
-
for (let i = 0
|
|
66
|
-
|
|
67
|
-
const cell = row.cells[colIndex];
|
|
68
|
-
cell.wrapText = state.wrapText[colKeyValue];
|
|
69
|
-
cell.wrapTextMaxLines = cell.wrapText
|
|
70
|
-
? state.wrapTextMaxLines
|
|
71
|
-
: undefined;
|
|
67
|
+
for (let i = 0; i < rows.length; i += 1) {
|
|
68
|
+
updateCell(state, i, colIndex);
|
|
72
69
|
}
|
|
73
70
|
}
|
|
74
71
|
|
|
@@ -149,7 +146,7 @@ function updateSelectedOptionInHeaderActions(state, colKeyValue) {
|
|
|
149
146
|
const col = columns[colIndex];
|
|
150
147
|
const { internalActions } = col.actions;
|
|
151
148
|
|
|
152
|
-
for (let i = 0
|
|
149
|
+
for (let i = 0; i < internalActions.length; i += 1) {
|
|
153
150
|
const action = internalActions[i];
|
|
154
151
|
const { name } = action;
|
|
155
152
|
if (name === 'wrapText') {
|
|
@@ -159,7 +156,7 @@ function updateSelectedOptionInHeaderActions(state, colKeyValue) {
|
|
|
159
156
|
}
|
|
160
157
|
}
|
|
161
158
|
|
|
162
|
-
updateWrapTextAndMaxLinesValuesInCells(state, colIndex
|
|
159
|
+
updateWrapTextAndMaxLinesValuesInCells(state, colIndex);
|
|
163
160
|
|
|
164
161
|
// Force a refresh on this column, because the wrapText checked value changed.
|
|
165
162
|
col.actions = Object.assign({}, col.actions);
|
|
@@ -17,9 +17,11 @@
|
|
|
17
17
|
part="input"
|
|
18
18
|
name={name}
|
|
19
19
|
value={displayValue}
|
|
20
|
+
accesskey={accessKey}
|
|
20
21
|
placeholder={placeholder}
|
|
21
22
|
aria-invalid={computedAriaInvalid}
|
|
22
23
|
aria-label={ariaLabel}
|
|
24
|
+
aria-disabled={ariaDisabled}
|
|
23
25
|
required={required}
|
|
24
26
|
readonly={readOnly}
|
|
25
27
|
disabled={disabled}
|
|
@@ -57,7 +59,7 @@
|
|
|
57
59
|
</div>
|
|
58
60
|
|
|
59
61
|
<template if:true={errorMessage}>
|
|
60
|
-
<div id="error-message" data-error-message class={computedClass}>{errorMessage}</div>
|
|
62
|
+
<div id="error-message" data-error-message class={computedClass} aria-live="polite">{errorMessage}</div>
|
|
61
63
|
</template>
|
|
62
64
|
|
|
63
65
|
|
|
@@ -55,7 +55,9 @@ const i18n = {
|
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
const ARIA_CONTROLS = 'aria-controls';
|
|
58
|
+
const ARIA_DETAILS = 'aria-details';
|
|
58
59
|
const ARIA_LABEL = 'aria-label';
|
|
60
|
+
const ARIA_DISABLED = 'aria-disabled';
|
|
59
61
|
const ARIA_LABELLEDBY = 'aria-labelledby';
|
|
60
62
|
const ARIA_DESCRIBEDBY = 'aria-describedby';
|
|
61
63
|
const ARIA_INVALID = 'aria-invalid';
|
|
@@ -75,6 +77,7 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
75
77
|
@track _errorMessage = '';
|
|
76
78
|
@track _fieldLevelHelp;
|
|
77
79
|
@track _variant;
|
|
80
|
+
@api accessKey;
|
|
78
81
|
|
|
79
82
|
_min;
|
|
80
83
|
_max;
|
|
@@ -209,8 +212,19 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
209
212
|
this.synchronizeA11y();
|
|
210
213
|
}
|
|
211
214
|
|
|
215
|
+
@api
|
|
216
|
+
get ariaDisabled() {
|
|
217
|
+
return this._ariaDisabled;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
set ariaDisabled(val) {
|
|
221
|
+
this._ariaDisabled = val;
|
|
222
|
+
this.synchronizeA11y();
|
|
223
|
+
}
|
|
224
|
+
|
|
212
225
|
_ariaLabelledBy;
|
|
213
226
|
_ariaControls;
|
|
227
|
+
_ariaDetails;
|
|
214
228
|
_ariaDescribedBy = [];
|
|
215
229
|
|
|
216
230
|
set ariaLabelledByElement(el) {
|
|
@@ -245,6 +259,22 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
245
259
|
return this._ariaControls;
|
|
246
260
|
}
|
|
247
261
|
|
|
262
|
+
set ariaDetailsElements(el) {
|
|
263
|
+
this._ariaDetails = el;
|
|
264
|
+
if (this.ariaObserver) {
|
|
265
|
+
this.ariaObserver.connect({
|
|
266
|
+
attribute: ARIA_DETAILS,
|
|
267
|
+
targetSelector: 'input',
|
|
268
|
+
relatedNodeIds: getRealDOMId(this.ariaDetailsElements),
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
@api
|
|
274
|
+
get ariaDetailsElements() {
|
|
275
|
+
return this._ariaDetails;
|
|
276
|
+
}
|
|
277
|
+
|
|
248
278
|
set ariaDescribedByElements(el) {
|
|
249
279
|
if (Array.isArray(el)) {
|
|
250
280
|
this._ariaDescribedBy = el;
|
|
@@ -280,6 +310,7 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
280
310
|
|
|
281
311
|
synchronizeAttrs(input, {
|
|
282
312
|
[ARIA_LABEL]: this._ariaLabel,
|
|
313
|
+
[ARIA_DISABLED]: this._ariaDisabled,
|
|
283
314
|
[ARIA_INVALID]: this.computedAriaInvalid,
|
|
284
315
|
});
|
|
285
316
|
|
|
@@ -502,7 +533,6 @@ export default class LightningDatePicker extends LightningShadowBaseClass {
|
|
|
502
533
|
|
|
503
534
|
get computedAriaDescribedby() {
|
|
504
535
|
const ariaValues = [];
|
|
505
|
-
|
|
506
536
|
this._ariaDescribedBy.forEach((item) => {
|
|
507
537
|
const id = getRealDOMId(item);
|
|
508
538
|
if (id) {
|
|
@@ -245,6 +245,7 @@
|
|
|
245
245
|
|
|
246
246
|
@media (width >= 48em) {
|
|
247
247
|
:host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
|
|
248
|
+
float: left;
|
|
248
249
|
max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
|
|
249
250
|
flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
|
|
250
251
|
flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
);
|
|
255
255
|
--sds-c-inputtext-color-border: var(
|
|
256
256
|
--slds-c-inputtext-color-border,
|
|
257
|
-
var(--slds-g-color-border-
|
|
257
|
+
var(--slds-g-color-border-2)
|
|
258
258
|
);
|
|
259
259
|
--sds-c-inputtext-sizing-border: var(--slds-c-inputtext-sizing-border);
|
|
260
260
|
--sds-c-inputtext-radius-border: var(
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
}
|
|
331
331
|
:host([data-render-mode="shadow"][readonly]) [part="input-container"]:focus-within,:host([data-render-mode="shadow"][readonly]) [part="input-container"]:active {
|
|
332
332
|
--sds-c-inputtext-color-border: var(--slds-g-color-disabled-container-2);
|
|
333
|
-
--sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-
|
|
333
|
+
--sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-2);
|
|
334
334
|
--sds-c-inputtext-color-background: transparent;
|
|
335
335
|
|
|
336
336
|
outline: 0;
|
|
@@ -367,9 +367,9 @@
|
|
|
367
367
|
*/
|
|
368
368
|
:host([data-render-mode="shadow"][disabled]) [part='input-container'],:host([data-render-mode="shadow"][disabled]) [part='input'] {
|
|
369
369
|
cursor: not-allowed;
|
|
370
|
-
--sds-c-inputtext-color-background: var(--slds-g-color-disabled-container-1);
|
|
371
|
-
--sds-c-inputtext-color-border: var(--slds-g-color-border-1);
|
|
372
|
-
--sds-c-inputtext-text-color: var(--slds-g-color-on-
|
|
370
|
+
--sds-c-inputtext-color-background: var(--slds-s-input-color-background-disabled, var(--slds-g-color-disabled-container-1));
|
|
371
|
+
--sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
|
|
372
|
+
--sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
|
|
373
373
|
}
|
|
374
374
|
/**
|
|
375
375
|
* Label
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
data-aria-invalid={computedDateAriaInvalid}
|
|
15
15
|
class="slds-form-element"
|
|
16
16
|
autocomplete={autocomplete}
|
|
17
|
+
accesskey={dateAccessKey}
|
|
17
18
|
min={dateMin}
|
|
18
19
|
max={dateMax}
|
|
19
20
|
label={i18n.date}
|
|
@@ -27,6 +28,8 @@
|
|
|
27
28
|
onblur={handleDatepickerBlur}
|
|
28
29
|
onchange={handleDateChange}
|
|
29
30
|
aria-error-message-element={errorMessageElement}
|
|
31
|
+
aria-disabled={ariaDisabled}
|
|
32
|
+
variant={childVariant}
|
|
30
33
|
root-aria-node={rootAriaNode}
|
|
31
34
|
>
|
|
32
35
|
</lightning-datepicker>
|
|
@@ -35,6 +38,7 @@
|
|
|
35
38
|
data-aria-invalid={computedTimeAriaInvalid}
|
|
36
39
|
class="slds-form-element"
|
|
37
40
|
autocomplete={autocomplete}
|
|
41
|
+
accesskey={timeAccessKey}
|
|
38
42
|
label={i18n.time}
|
|
39
43
|
name={name}
|
|
40
44
|
time-style={timeStyle}
|
|
@@ -46,13 +50,15 @@
|
|
|
46
50
|
onblur={handleTimepickerBlur}
|
|
47
51
|
onchange={handleTimeChange}
|
|
48
52
|
aria-error-message-element={errorMessageElement}
|
|
53
|
+
aria-disabled={ariaDisabled}
|
|
54
|
+
variant={childVariant}
|
|
49
55
|
root-aria-node={rootAriaNode}
|
|
50
56
|
>
|
|
51
57
|
</lightning-timepicker>
|
|
52
58
|
</div>
|
|
53
59
|
</div>
|
|
54
60
|
</div>
|
|
55
|
-
<div data-error-message id="errormessage" class={computedClass}>{customErrorMessage}</div>
|
|
61
|
+
<div data-error-message id="errormessage" class={computedClass} aria-live="polite">{customErrorMessage}</div>
|
|
56
62
|
|
|
57
63
|
</fieldset>
|
|
58
64
|
</div>
|
|
@@ -61,6 +61,8 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
61
61
|
|
|
62
62
|
@api timeAriaLabel;
|
|
63
63
|
|
|
64
|
+
@api ariaDisabled;
|
|
65
|
+
|
|
64
66
|
@api rootAriaNode;
|
|
65
67
|
|
|
66
68
|
/**
|
|
@@ -82,6 +84,17 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
82
84
|
return this._timeAriaControls;
|
|
83
85
|
}
|
|
84
86
|
|
|
87
|
+
// getters and setters necessary to trigger sync
|
|
88
|
+
set timeAriaDetails(val) {
|
|
89
|
+
this._timeAriaDetails = val;
|
|
90
|
+
this.synchronizeA11y();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@api
|
|
94
|
+
get timeAriaDetails() {
|
|
95
|
+
return this._timeAriaDetails;
|
|
96
|
+
}
|
|
97
|
+
|
|
85
98
|
set timeAriaLabelledBy(val) {
|
|
86
99
|
this._timeAriaLabelledBy = val;
|
|
87
100
|
this.synchronizeA11y();
|
|
@@ -103,9 +116,12 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
103
116
|
}
|
|
104
117
|
|
|
105
118
|
@api dateAriaControls;
|
|
119
|
+
@api dateAriaDetails;
|
|
106
120
|
@api dateAriaLabel;
|
|
107
121
|
@api dateAriaLabelledBy;
|
|
108
122
|
@api dateAriaDescribedBy;
|
|
123
|
+
@api dateAccessKey;
|
|
124
|
+
@api timeAccessKey;
|
|
109
125
|
|
|
110
126
|
@api messageWhenValueMissing;
|
|
111
127
|
|
|
@@ -246,6 +262,16 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
246
262
|
reflectAttribute(this, 'variant', this._variant);
|
|
247
263
|
}
|
|
248
264
|
|
|
265
|
+
/**
|
|
266
|
+
* The child date and time picker components should have the standard variant, unless variant is label-hidden
|
|
267
|
+
* See W-15101132
|
|
268
|
+
*/
|
|
269
|
+
get childVariant() {
|
|
270
|
+
return this._variant === VARIANT.LABEL_HIDDEN
|
|
271
|
+
? this._variant
|
|
272
|
+
: VARIANT.STANDARD;
|
|
273
|
+
}
|
|
274
|
+
|
|
249
275
|
/**
|
|
250
276
|
* Sets focus on the date input element.
|
|
251
277
|
*/
|
|
@@ -273,7 +299,7 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
273
299
|
}
|
|
274
300
|
|
|
275
301
|
get hasBadDateInput() {
|
|
276
|
-
return this.getDatepicker()
|
|
302
|
+
return this.getDatepicker()?.hasBadInput();
|
|
277
303
|
}
|
|
278
304
|
|
|
279
305
|
get hasMissingDateTimeInput() {
|
|
@@ -281,7 +307,7 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
281
307
|
}
|
|
282
308
|
|
|
283
309
|
get hasBadTimeInput() {
|
|
284
|
-
const timeBadInput = this.getTimepicker()
|
|
310
|
+
const timeBadInput = this.getTimepicker()?.hasBadInput();
|
|
285
311
|
const timeMissing =
|
|
286
312
|
this.required && this._dateValue && !this._timeValue;
|
|
287
313
|
return timeMissing || timeBadInput;
|
|
@@ -406,6 +432,7 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
406
432
|
ariaLabelledByElement: this.dateAriaLabelledBy,
|
|
407
433
|
ariaDescribedByElements: this.dateAriaDescribedBy,
|
|
408
434
|
ariaControlsElement: this.dateAriaControls,
|
|
435
|
+
ariaDetailsElements: this.dateAriaDetails,
|
|
409
436
|
'aria-label': this.dateAriaLabel,
|
|
410
437
|
});
|
|
411
438
|
}
|
|
@@ -415,6 +442,7 @@ export default class LightningDateTimePicker extends LightningShadowBaseClass {
|
|
|
415
442
|
ariaLabelledByElement: this.timeAriaLabelledBy,
|
|
416
443
|
ariaDescribedByElements: this.timeAriaDescribedBy,
|
|
417
444
|
ariaControlsElement: this.timeAriaControls,
|
|
445
|
+
ariaDetailsElements: this.timeAriaDetails,
|
|
418
446
|
'aria-label': this.timeAriaLabel,
|
|
419
447
|
});
|
|
420
448
|
}
|
|
@@ -245,6 +245,7 @@
|
|
|
245
245
|
|
|
246
246
|
@media (width >= 48em) {
|
|
247
247
|
:host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
|
|
248
|
+
float: left;
|
|
248
249
|
max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
|
|
249
250
|
flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
|
|
250
251
|
flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
);
|
|
255
255
|
--sds-c-inputtext-color-border: var(
|
|
256
256
|
--slds-c-inputtext-color-border,
|
|
257
|
-
var(--slds-g-color-border-
|
|
257
|
+
var(--slds-g-color-border-2)
|
|
258
258
|
);
|
|
259
259
|
--sds-c-inputtext-sizing-border: var(--slds-c-inputtext-sizing-border);
|
|
260
260
|
--sds-c-inputtext-radius-border: var(
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
}
|
|
331
331
|
:host([data-render-mode="shadow"][readonly]) [part="input-container"]:focus-within,:host([data-render-mode="shadow"][readonly]) [part="input-container"]:active {
|
|
332
332
|
--sds-c-inputtext-color-border: var(--slds-g-color-disabled-container-2);
|
|
333
|
-
--sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-
|
|
333
|
+
--sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-2);
|
|
334
334
|
--sds-c-inputtext-color-background: transparent;
|
|
335
335
|
|
|
336
336
|
outline: 0;
|
|
@@ -367,9 +367,9 @@
|
|
|
367
367
|
*/
|
|
368
368
|
:host([data-render-mode="shadow"][disabled]) [part='input-container'],:host([data-render-mode="shadow"][disabled]) [part='input'] {
|
|
369
369
|
cursor: not-allowed;
|
|
370
|
-
--sds-c-inputtext-color-background: var(--slds-g-color-disabled-container-1);
|
|
371
|
-
--sds-c-inputtext-color-border: var(--slds-g-color-border-1);
|
|
372
|
-
--sds-c-inputtext-text-color: var(--slds-g-color-on-
|
|
370
|
+
--sds-c-inputtext-color-background: var(--slds-s-input-color-background-disabled, var(--slds-g-color-disabled-container-1));
|
|
371
|
+
--sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
|
|
372
|
+
--sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
|
|
373
373
|
}
|
|
374
374
|
/**
|
|
375
375
|
* Label
|
|
@@ -245,6 +245,7 @@
|
|
|
245
245
|
|
|
246
246
|
@media (width >= 48em) {
|
|
247
247
|
:host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
|
|
248
|
+
float: left;
|
|
248
249
|
max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
|
|
249
250
|
flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
|
|
250
251
|
flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
|
|
@@ -245,6 +245,7 @@
|
|
|
245
245
|
|
|
246
246
|
@media (width >= 48em) {
|
|
247
247
|
:host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
|
|
248
|
+
float: left;
|
|
248
249
|
max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
|
|
249
250
|
flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
|
|
250
251
|
flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
);
|
|
255
255
|
--sds-c-inputtext-color-border: var(
|
|
256
256
|
--slds-c-inputtext-color-border,
|
|
257
|
-
var(--slds-g-color-border-
|
|
257
|
+
var(--slds-g-color-border-2)
|
|
258
258
|
);
|
|
259
259
|
--sds-c-inputtext-sizing-border: var(--slds-c-inputtext-sizing-border);
|
|
260
260
|
--sds-c-inputtext-radius-border: var(
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
}
|
|
331
331
|
:host([data-render-mode="shadow"][readonly]) [part="input-container"]:focus-within,:host([data-render-mode="shadow"][readonly]) [part="input-container"]:active {
|
|
332
332
|
--sds-c-inputtext-color-border: var(--slds-g-color-disabled-container-2);
|
|
333
|
-
--sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-
|
|
333
|
+
--sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-2);
|
|
334
334
|
--sds-c-inputtext-color-background: transparent;
|
|
335
335
|
|
|
336
336
|
outline: 0;
|
|
@@ -367,9 +367,9 @@
|
|
|
367
367
|
*/
|
|
368
368
|
:host([data-render-mode="shadow"][disabled]) [part='input-container'],:host([data-render-mode="shadow"][disabled]) [part='input'] {
|
|
369
369
|
cursor: not-allowed;
|
|
370
|
-
--sds-c-inputtext-color-background: var(--slds-g-color-disabled-container-1);
|
|
371
|
-
--sds-c-inputtext-color-border: var(--slds-g-color-border-1);
|
|
372
|
-
--sds-c-inputtext-text-color: var(--slds-g-color-on-
|
|
370
|
+
--sds-c-inputtext-color-background: var(--slds-s-input-color-background-disabled, var(--slds-g-color-disabled-container-1));
|
|
371
|
+
--sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
|
|
372
|
+
--sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
|
|
373
373
|
}
|
|
374
374
|
/**
|
|
375
375
|
* Label
|