lightning-base-components 1.15.1-alpha → 1.15.4-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 +64 -2
- package/package.json +64 -2
- package/scopedImports/@salesforce-i18n-calendarData.js +1 -0
- package/scopedImports/@salesforce-i18n-common.calendarData.js +1 -0
- package/scopedImports/@salesforce-i18n-common.digits.js +1 -0
- package/scopedImports/@salesforce-i18n-dateTime.longDateTimeFormat.js +1 -0
- package/scopedImports/@salesforce-i18n-defaultCalendar.js +1 -0
- package/scopedImports/@salesforce-i18n-defaultNumberingSystem.js +1 -0
- package/scopedImports/@salesforce-i18n-number.exponentialSign.js +1 -0
- package/scopedImports/@salesforce-i18n-number.infinity.js +1 -0
- package/scopedImports/@salesforce-i18n-number.minusSign.js +1 -0
- package/scopedImports/@salesforce-i18n-number.nan.js +1 -0
- package/scopedImports/@salesforce-i18n-number.perMilleSign.js +1 -0
- package/scopedImports/@salesforce-i18n-number.percentSign.js +1 -0
- package/scopedImports/@salesforce-i18n-number.plusSign.js +1 -0
- package/scopedImports/@salesforce-i18n-number.superscriptingExponentSign.js +1 -0
- package/scopedImports/@salesforce-label-LightningMap.defaultTitle.js +1 -0
- package/src/lightning/alert/__docs__/alert.md +4 -6
- package/src/lightning/baseCombobox/baseCombobox.html +3 -1
- package/src/lightning/baseCombobox/baseCombobox.js +44 -7
- package/src/lightning/button/button.js +22 -1
- package/src/lightning/buttonIcon/buttonIcon.js +0 -3
- package/src/lightning/calendar/calendar.html +2 -1
- package/src/lightning/calendar/calendar.js +2 -2
- package/src/lightning/checkboxGroup/checkboxGroup.html +2 -2
- package/src/lightning/checkboxGroup/checkboxGroup.js +9 -5
- package/src/lightning/combobox/__docs__/combobox.md +3 -1
- package/src/lightning/combobox/combobox.html +1 -1
- package/src/lightning/combobox/combobox.js +7 -2
- package/src/lightning/configProvider/defaultLocalizationConfig.js +43 -6
- package/src/lightning/confirm/__docs__/confirm.md +2 -4
- package/src/lightning/datatable/__examples__/basic/basic.js +3 -4
- package/src/lightning/datatable/__examples__/basic/generateData.js +13 -0
- package/src/lightning/datatable/__examples__/withInfiniteLoading/generateDataWithDelay.js +18 -0
- package/src/lightning/datatable/__examples__/withInfiniteLoading/withInfiniteLoading.js +3 -3
- package/src/lightning/datatable/__examples__/withInlineEdit/generateData.js +13 -0
- package/src/lightning/datatable/__examples__/withInlineEdit/withInlineEdit.js +3 -4
- package/src/lightning/datatable/__examples__/withRowActions/generateData.js +13 -0
- package/src/lightning/datatable/__examples__/withRowActions/withRowActions.js +3 -4
- package/src/lightning/datatable/__examples__/withRowNumbers/generateData.js +13 -0
- package/src/lightning/datatable/__examples__/withRowNumbers/withRowNumbers.js +3 -4
- package/src/lightning/datatable/__wdio__/utam/utam.html +15 -0
- package/src/lightning/datatable/__wdio__/utam/utam.spec.js +208 -183
- package/src/lightning/datatable/datatable.js +13 -7
- package/src/lightning/datatable/inlineEdit.js +0 -5
- package/src/lightning/datatable/inlineEditShared.js +4 -2
- package/src/lightning/datatable/keyboard.js +13 -5
- package/src/lightning/datatable/rowSelection.js +8 -2
- package/src/lightning/datatable/state.js +1 -0
- package/src/lightning/datatable/templates/table/table.html +2 -2
- package/src/lightning/datatable/utils.js +11 -0
- package/src/lightning/datatable/virtualization.js +2 -2
- package/src/lightning/datatable/wrapText.js +1 -0
- package/src/lightning/datepicker/datepicker.html +5 -4
- package/src/lightning/datepicker/datepicker.js +35 -77
- package/src/lightning/datetimepicker/datetimepicker.html +3 -1
- package/src/lightning/datetimepicker/datetimepicker.js +44 -8
- package/src/lightning/dualListbox/dualListbox.html +1 -1
- package/src/lightning/dualListbox/dualListbox.js +8 -1
- package/src/lightning/fileDownload/fileDownload.js +15 -0
- package/src/lightning/fileDownload/fileDownload.js-meta.xml +5 -0
- package/src/lightning/fileDownload/resourceResolver.js +58 -0
- package/src/lightning/formattedAddress/__docs__/formattedAddress.md +3 -0
- package/src/lightning/formattedAddress/__examples__/customLocale/customLocale.html +22 -0
- package/src/lightning/formattedAddress/__examples__/customLocale/customLocale.js +3 -0
- package/src/lightning/formattedAddress/formattedAddress.js +7 -1
- package/src/lightning/formattedDateTime/formattedDateTime.js +1 -1
- package/src/lightning/formattedLookup/events.js +19 -0
- package/src/lightning/formattedLookup/formattedLookup.js +7 -0
- package/src/lightning/formattedRichText/__docs__/formattedRichText.md +9 -7
- package/src/lightning/formattedRichText/__examples__disabled/basic/basic.html +1 -1
- package/src/lightning/formattedTime/formattedTime.js +2 -1
- package/src/lightning/groupedCombobox/groupedCombobox.html +3 -2
- package/src/lightning/groupedCombobox/groupedCombobox.js +26 -4
- package/src/lightning/helptext/helptext.html +1 -0
- package/src/lightning/helptext/helptext.js +29 -2
- package/src/lightning/i18nCldrOptions/all-locales.js +1 -0
- package/src/lightning/i18nCldrOptions/i18nCldrOptions.js +4 -0
- package/src/lightning/i18nService/i18nService.js +1810 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/action/scan_disabled.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/action/scan_enabled.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/ai_accelerator_card.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/connect_wallet.html +9 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_product.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_transaction.html +9 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_wallet.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_wallet_group.html +9 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/customer.html +10 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/learner_program.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/nft_settings.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/nft_studio.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/prompt.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/setup_modal.html +11 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/snippet_alt.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/travel_mode.html +2 -2
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/water.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +48 -1
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/captions.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/customer.html +10 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/detach.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/hazmat_equipment.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/label.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/labels.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/record_alt.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/segments.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/tollways.html +8 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_bicycle.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_heavy_truck.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_light_truck.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_walking.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/water.html +7 -0
- package/src/lightning/iconSvgTemplatesAction/buildTemplates/action/scan_disabled.html +7 -0
- package/src/lightning/iconSvgTemplatesAction/buildTemplates/action/scan_enabled.html +7 -0
- package/src/lightning/iconSvgTemplatesAction/buildTemplates/templates.js +3 -1
- package/src/lightning/iconSvgTemplatesActionRtl/buildTemplates/action/scan_disabled.html +7 -0
- package/src/lightning/iconSvgTemplatesActionRtl/buildTemplates/action/scan_enabled.html +7 -0
- package/src/lightning/iconSvgTemplatesActionRtl/buildTemplates/templates.js +3 -1
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/action/scan_disabled.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/action/scan_enabled.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/ai_accelerator_card.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/connect_wallet.html +9 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_product.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_transaction.html +9 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_wallet.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_wallet_group.html +9 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/customer.html +10 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/learner_program.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/nft_settings.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/nft_studio.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/prompt.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/setup_modal.html +11 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/snippet_alt.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/travel_mode.html +2 -2
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/water.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +48 -1
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/captions.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/customer.html +10 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/detach.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/hazmat_equipment.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/label.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/labels.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/record_alt.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/segments.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tollways.html +8 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_bicycle.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_heavy_truck.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_light_truck.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_walking.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/water.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/ai_accelerator_card.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/connect_wallet.html +9 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_product.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_transaction.html +9 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_wallet.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_wallet_group.html +9 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/customer.html +10 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/learner_program.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/nft_settings.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/nft_studio.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/prompt.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/setup_modal.html +11 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/snippet_alt.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/travel_mode.html +2 -2
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/water.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +26 -1
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/ai_accelerator_card.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/connect_wallet.html +9 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_product.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_transaction.html +9 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_wallet.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_wallet_group.html +9 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/customer.html +10 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/learner_program.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/nft_settings.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/nft_studio.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/prompt.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/setup_modal.html +11 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/snippet_alt.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/travel_mode.html +2 -2
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/water.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +26 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +21 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/captions.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/customer.html +10 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/detach.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/hazmat_equipment.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/label.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/labels.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/record_alt.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/segments.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tollways.html +8 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_bicycle.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_heavy_truck.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_light_truck.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_walking.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/water.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +21 -1
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/captions.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/contract_line_outcome.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/contract_line_outcome_data.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/customer.html +10 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/customer_workspace.html +11 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/detach.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/hazmat_equipment.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/label.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/labels.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/record_alt.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/segments.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tax_policy.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tax_rate.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tax_treatment.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tollways.html +8 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_bicycle.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_heavy_truck.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_light_truck.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_walking.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/water.html +7 -0
- package/src/lightning/input/dateTimeUtil.js +2 -2
- package/src/lightning/input/input.html +6 -0
- package/src/lightning/input/input.js +2 -1
- package/src/lightning/inputAddress/__docs__/inputAddress.md +5 -0
- package/src/lightning/inputAddress/__examples__/customLocale/customLocale.html +12 -0
- package/src/lightning/inputAddress/__examples__/customLocale/customLocale.js +3 -0
- package/src/lightning/inputAddress/inputAddress.html +3 -1
- package/src/lightning/inputAddress/inputAddress.js +33 -4
- package/src/lightning/inputLocation/inputLocation.html +1 -1
- package/src/lightning/inputLocation/inputLocation.js +7 -1
- package/src/lightning/inputName/__docs__/inputName.md +2 -0
- package/src/lightning/inputName/inputName.html +5 -2
- package/src/lightning/inputName/inputName.js +7 -1
- package/src/lightning/inputUtils/inputUtils.js +11 -0
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.js +1 -0
- package/src/lightning/internationalizationLibrary/datetime/dateTimeOptions.js +16 -29
- package/src/lightning/internationalizationLibrary/datetime/dateTimeUtils.js +524 -135
- package/src/lightning/internationalizationLibrary/datetime/intlFormat.js +92 -72
- package/src/lightning/internationalizationLibrary/internationalizationLibrary.js +9 -4
- package/src/lightning/internationalizationLibrary/localizationService.js +1 -0
- package/src/lightning/internationalizationLibrary/number/NumberFormat.js +17 -11
- package/src/lightning/internationalizationLibrary/number/numberFormatFallback.js +3 -2
- package/src/lightning/internationalizationLibrary/number/numberOptions.js +22 -26
- package/src/lightning/internationalizationLibrary/number/utils.js +134 -131
- package/src/lightning/internationalizationLibrary/utils.js +14 -0
- package/src/lightning/iso8601Utils/iso8601Utils.js +1 -0
- package/src/lightning/modalBase/modalBase.css +0 -4
- package/src/lightning/modalBase/modalBase.html +1 -1
- package/src/lightning/modalBase/modalBase.js +0 -14
- package/src/lightning/navigation/__docs__/navigation.md +0 -2
- package/src/lightning/overlayContainer/overlayContainer.html +2 -2
- package/src/lightning/overlayContainer/overlayContainer.js +217 -49
- package/src/lightning/overlayManager/overlayManager.js +378 -28
- package/src/lightning/overlayManager/overlayManager.js-meta.xml +5 -0
- package/src/lightning/picklist/picklist.js +6 -1
- package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +1 -11
- package/src/lightning/prompt/__docs__/prompt.md +2 -4
- package/src/lightning/radioGroup/radioGroup.js +9 -0
- package/src/lightning/select/select.html +4 -2
- package/src/lightning/select/select.js +12 -2
- package/src/lightning/tabBar/tabBar.html +3 -2
- package/src/lightning/tabBar/tabBar.js +15 -0
- package/src/lightning/textarea/textarea.html +2 -1
- package/src/lightning/textarea/textarea.js +12 -1
- package/src/lightning/timepicker/timepicker.html +4 -2
- package/src/lightning/timepicker/timepicker.js +49 -86
- package/src/lightning/utils/labelUtils.js +4 -1
- package/src/lightning/utilsPrivate/animation.js +0 -4
- package/src/lightning/utilsPrivate/aria.js +26 -0
- package/src/lightning/utilsPrivate/linkify.js +1 -1
- package/src/lightning/utilsPrivate/utilsPrivate.js +7 -1
- package/src/lightning/datatable/__examples__/basic/fetchDataHelper.js +0 -21
- package/src/lightning/datatable/__examples__/withInfiniteLoading/fetchDataHelper.js +0 -21
- package/src/lightning/datatable/__examples__/withInlineEdit/fetchDataHelper.js +0 -21
- package/src/lightning/datatable/__examples__/withRowActions/fetchDataHelper.js +0 -21
- package/src/lightning/datatable/__examples__/withRowNumbers/fetchDataHelper.js +0 -21
- package/src/lightning/icon/__component__/icon-spirite.spec.js +0 -59
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { styleToString } from './utils';
|
|
1
|
+
import { styleToString, escapeDoubleQuotes } from './utils';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* sets an initial table height in the datatable state
|
|
@@ -48,7 +48,7 @@ export function handleVariableRowHeights(template, state, renderedRows) {
|
|
|
48
48
|
if (!state.heightCache[row.key]) {
|
|
49
49
|
// need to get row actual element so we can find its height
|
|
50
50
|
const rowElement = template.querySelector(
|
|
51
|
-
`[data-row-key-value="${row.key}"]`
|
|
51
|
+
`[data-row-key-value="${escapeDoubleQuotes(row.key)}"]`
|
|
52
52
|
);
|
|
53
53
|
if (rowElement) {
|
|
54
54
|
// first rendered row needs height increased by 1 to account for missing border
|
|
@@ -143,6 +143,7 @@ export function handleTriggeredAction(state, action, colKeyValue) {
|
|
|
143
143
|
if (actionName === 'wrapText' || actionName === 'clipText') {
|
|
144
144
|
// If state should be changed
|
|
145
145
|
if (state.wrapText[colKeyValue] !== (actionName === 'wrapText')) {
|
|
146
|
+
state.shouldResetHeights = true;
|
|
146
147
|
state.wrapText[colKeyValue] = actionName === 'wrapText';
|
|
147
148
|
|
|
148
149
|
updateSelectedOptionInHeaderActions(state, colKeyValue);
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
</template>
|
|
8
8
|
{label}
|
|
9
9
|
</label>
|
|
10
|
-
<lightning-helptext if:true={fieldLevelHelp} content={fieldLevelHelp}></lightning-helptext>
|
|
10
|
+
<lightning-helptext if:true={fieldLevelHelp} content={fieldLevelHelp} alternative-text={helptextAlternativeText}></lightning-helptext>
|
|
11
11
|
</template>
|
|
12
12
|
<template if:true={isRangeMessageVisible}>
|
|
13
13
|
<span id="range-message" data-range-message class="slds-assistive-text">{rangeMessage}</span>
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
name={name}
|
|
18
18
|
value={displayValue}
|
|
19
19
|
placeholder={placeholder}
|
|
20
|
+
aria-invalid={computedAriaInvalid}
|
|
20
21
|
aria-label={ariaLabel}
|
|
21
22
|
required={required}
|
|
22
23
|
readonly={readOnly}
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
</div>
|
|
55
56
|
</div>
|
|
56
57
|
|
|
57
|
-
|
|
58
|
-
<div id="error-message" data-error-message class=
|
|
59
|
-
|
|
58
|
+
|
|
59
|
+
<div id="error-message" data-error-message class={computedClass} aria-live="assertive">{errorMessage}</div>
|
|
60
|
+
|
|
60
61
|
</template>
|
|
@@ -6,16 +6,13 @@ import labelMaxRangeMessage from '@salesforce/label/LightningDateTimePicker.maxR
|
|
|
6
6
|
import labelMinAndMaxRangeMessage from '@salesforce/label/LightningDateTimePicker.minAndMaxRangeMessage';
|
|
7
7
|
import labelRequired from '@salesforce/label/LightningControl.required';
|
|
8
8
|
import labelSelectDateFor from '@salesforce/label/LightningDateTimePicker.selectDateFor';
|
|
9
|
-
import
|
|
10
|
-
import mediumDateFormat from '@salesforce/i18n/dateTime.mediumDateFormat';
|
|
11
|
-
import longDateFormat from '@salesforce/i18n/dateTime.longDateFormat';
|
|
9
|
+
import labelHelpTextAlternativeText from '@salesforce/label/LightningInput.helptextAlternativeText';
|
|
12
10
|
import { LightningElement, track, api } from 'lwc';
|
|
13
11
|
import {
|
|
14
|
-
parseDateTime,
|
|
15
12
|
normalizeISODate,
|
|
16
|
-
|
|
13
|
+
parseFormattedDate,
|
|
14
|
+
getDateFormatFromStyle,
|
|
17
15
|
} from 'lightning/internationalizationLibrary';
|
|
18
|
-
import { STANDARD_DATE_FORMAT } from 'lightning/iso8601Utils';
|
|
19
16
|
import {
|
|
20
17
|
startPositioning,
|
|
21
18
|
stopPositioning,
|
|
@@ -29,6 +26,7 @@ import {
|
|
|
29
26
|
synchronizeAttrs,
|
|
30
27
|
getRealDOMId,
|
|
31
28
|
isIE11,
|
|
29
|
+
computeAriaInvalid,
|
|
32
30
|
} from 'lightning/utilsPrivate';
|
|
33
31
|
import {
|
|
34
32
|
generateUniqueId,
|
|
@@ -49,12 +47,14 @@ const i18n = {
|
|
|
49
47
|
minAndMaxRangeMessage: labelMinAndMaxRangeMessage,
|
|
50
48
|
required: labelRequired,
|
|
51
49
|
selectDateFor: labelSelectDateFor,
|
|
50
|
+
helpTextAlternativeText: labelHelpTextAlternativeText,
|
|
52
51
|
};
|
|
53
52
|
|
|
54
53
|
const ARIA_CONTROLS = 'aria-controls';
|
|
55
54
|
const ARIA_LABEL = 'aria-label';
|
|
56
55
|
const ARIA_LABELLEDBY = 'aria-labelledby';
|
|
57
56
|
const ARIA_DESCRIBEDBY = 'aria-describedby';
|
|
57
|
+
const ARIA_INVALID = 'aria-invalid';
|
|
58
58
|
const DATE_STYLE = {
|
|
59
59
|
SHORT: 'short',
|
|
60
60
|
MEDIUM: 'medium',
|
|
@@ -78,6 +78,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
78
78
|
_max;
|
|
79
79
|
_displayMin;
|
|
80
80
|
_displayMax;
|
|
81
|
+
_dateStyle = DATE_STYLE.MEDIUM;
|
|
81
82
|
|
|
82
83
|
@api label;
|
|
83
84
|
@api name;
|
|
@@ -103,7 +104,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
103
104
|
this._min = value;
|
|
104
105
|
this._displayMin = value;
|
|
105
106
|
|
|
106
|
-
const normalizedDate = normalizeISODate(value, this.
|
|
107
|
+
const normalizedDate = normalizeISODate(value, this.dateStyle);
|
|
107
108
|
if (normalizedDate.isoValue) {
|
|
108
109
|
this._min = normalizedDate.isoValue;
|
|
109
110
|
this._displayMin = normalizedDate.displayValue;
|
|
@@ -120,7 +121,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
120
121
|
this._max = value;
|
|
121
122
|
this._displayMax = value;
|
|
122
123
|
|
|
123
|
-
const normalizedDate = normalizeISODate(value, this.
|
|
124
|
+
const normalizedDate = normalizeISODate(value, this.dateStyle);
|
|
124
125
|
if (normalizedDate.isoValue) {
|
|
125
126
|
this._max = normalizedDate.isoValue;
|
|
126
127
|
this._displayMax = normalizedDate.displayValue;
|
|
@@ -131,7 +132,10 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
131
132
|
get messageWhenBadInput() {
|
|
132
133
|
return (
|
|
133
134
|
this._messageWhenBadInput ||
|
|
134
|
-
formatLabel(
|
|
135
|
+
formatLabel(
|
|
136
|
+
this.i18n.invalidDate,
|
|
137
|
+
getDateFormatFromStyle(this.dateStyle, true)
|
|
138
|
+
)
|
|
135
139
|
);
|
|
136
140
|
}
|
|
137
141
|
set messageWhenBadInput(message) {
|
|
@@ -228,6 +232,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
228
232
|
[ARIA_DESCRIBEDBY]: this.computedAriaDescribedby,
|
|
229
233
|
[ARIA_CONTROLS]: this.ariaControlsId,
|
|
230
234
|
[ARIA_LABEL]: this._ariaLabel,
|
|
235
|
+
[ARIA_INVALID]: this.computedAriaInvalid,
|
|
231
236
|
});
|
|
232
237
|
|
|
233
238
|
// Set aria-describedby on the calendar button that opens the calendar dialog
|
|
@@ -248,7 +253,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
248
253
|
return this._value;
|
|
249
254
|
}
|
|
250
255
|
set value(newValue) {
|
|
251
|
-
const normalizedDate = normalizeISODate(newValue, this.
|
|
256
|
+
const normalizedDate = normalizeISODate(newValue, this.dateStyle);
|
|
252
257
|
|
|
253
258
|
this._value = normalizedDate.isoValue;
|
|
254
259
|
this._displayValue = normalizedDate.displayValue;
|
|
@@ -336,9 +341,8 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
336
341
|
fallbackValue: DATE_STYLE.MEDIUM,
|
|
337
342
|
validValues: [DATE_STYLE.SHORT, DATE_STYLE.MEDIUM, DATE_STYLE.LONG],
|
|
338
343
|
});
|
|
339
|
-
this.dateFormat = this.getDateFormatFromStyle(this._dateStyle);
|
|
340
344
|
|
|
341
|
-
const normalizedDate = normalizeISODate(this._value, this.
|
|
345
|
+
const normalizedDate = normalizeISODate(this._value, this.dateStyle);
|
|
342
346
|
this._displayValue = normalizedDate.displayValue;
|
|
343
347
|
}
|
|
344
348
|
|
|
@@ -393,6 +397,11 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
393
397
|
return this._displayValue;
|
|
394
398
|
}
|
|
395
399
|
|
|
400
|
+
get computedClass() {
|
|
401
|
+
let displayClass = this.errorMessage ? 'slds-show' : 'slds-hide';
|
|
402
|
+
return 'slds-form-element__help ' + displayClass;
|
|
403
|
+
}
|
|
404
|
+
|
|
396
405
|
get errorMessage() {
|
|
397
406
|
return this._errorMessage;
|
|
398
407
|
}
|
|
@@ -457,8 +466,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
457
466
|
|
|
458
467
|
// keeping the display value in sync with the element's value
|
|
459
468
|
this._displayValue = event.currentTarget.value;
|
|
460
|
-
this._value =
|
|
461
|
-
|
|
469
|
+
this._value = parseFormattedDate(this._displayValue).value;
|
|
462
470
|
this.dispatchChangeEvent();
|
|
463
471
|
}
|
|
464
472
|
|
|
@@ -481,7 +489,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
481
489
|
if (this._value !== null) {
|
|
482
490
|
const normalizedDate = normalizeISODate(
|
|
483
491
|
this._value,
|
|
484
|
-
this.
|
|
492
|
+
this.dateStyle
|
|
485
493
|
);
|
|
486
494
|
this._displayValue = normalizedDate.displayValue;
|
|
487
495
|
}
|
|
@@ -561,7 +569,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
561
569
|
|
|
562
570
|
this._displayValue = normalizeISODate(
|
|
563
571
|
this._value,
|
|
564
|
-
this.
|
|
572
|
+
this.dateStyle
|
|
565
573
|
).displayValue;
|
|
566
574
|
|
|
567
575
|
this.hideCalendarAndFocusTrigger();
|
|
@@ -649,34 +657,6 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
649
657
|
return this.template.querySelector('input');
|
|
650
658
|
}
|
|
651
659
|
|
|
652
|
-
get dateFormat() {
|
|
653
|
-
if (!this._dateFormat) {
|
|
654
|
-
this._dateFormat = this.getDateFormatFromStyle();
|
|
655
|
-
}
|
|
656
|
-
return this._dateFormat;
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
set dateFormat(value) {
|
|
660
|
-
this._dateFormat = value;
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
getDateFormatFromStyle(dateStyle) {
|
|
664
|
-
let dateFormat;
|
|
665
|
-
switch (dateStyle) {
|
|
666
|
-
case DATE_STYLE.SHORT:
|
|
667
|
-
dateFormat = shortDateFormat;
|
|
668
|
-
break;
|
|
669
|
-
case DATE_STYLE.LONG:
|
|
670
|
-
dateFormat = longDateFormat;
|
|
671
|
-
break;
|
|
672
|
-
default:
|
|
673
|
-
dateFormat = mediumDateFormat;
|
|
674
|
-
break;
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
return dateFormat;
|
|
678
|
-
}
|
|
679
|
-
|
|
680
660
|
dispatchChangeEvent() {
|
|
681
661
|
this.dispatchEvent(
|
|
682
662
|
new CustomEvent('change', {
|
|
@@ -704,39 +684,6 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
704
684
|
};
|
|
705
685
|
}
|
|
706
686
|
|
|
707
|
-
parse(dateString) {
|
|
708
|
-
// We cannot use parseDateTimeISO8601 here because that method does not have a strict flag. If the value is not an ISO string, that method will parse using the native Date()
|
|
709
|
-
// Alternatively we could call isValidISODateTimeString and then parseDateTimeISO8601.
|
|
710
|
-
return parseDateTime(dateString, STANDARD_DATE_FORMAT, true);
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
get allowedDateFormats() {
|
|
714
|
-
// We should prioritize the long, because a long date matched with the medium format. An issue in aura?
|
|
715
|
-
// Ex: September 8, 2017 when be parsed with the medium format, returns a valid iso date.
|
|
716
|
-
return [longDateFormat, mediumDateFormat, shortDateFormat];
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
/**
|
|
720
|
-
* Parses the input date and sets the dateFormat used to parse the displayValue
|
|
721
|
-
* if it is a valid Date.
|
|
722
|
-
*
|
|
723
|
-
* @param {String} displayValue - The input date.
|
|
724
|
-
* @return {null | string} - A normalized formatted date if displayValue is valid. null otherwise.
|
|
725
|
-
*/
|
|
726
|
-
parseFormattedDate(displayValue) {
|
|
727
|
-
const allowedFormats = this.allowedDateFormats;
|
|
728
|
-
const n = allowedFormats.length;
|
|
729
|
-
let i = 0,
|
|
730
|
-
value = null;
|
|
731
|
-
|
|
732
|
-
do {
|
|
733
|
-
value = normalizeFormattedDate(displayValue, allowedFormats[i]);
|
|
734
|
-
i++;
|
|
735
|
-
} while (value === null && i < n);
|
|
736
|
-
|
|
737
|
-
return value;
|
|
738
|
-
}
|
|
739
|
-
|
|
740
687
|
get hasExternalLabel() {
|
|
741
688
|
return (
|
|
742
689
|
this.variant === VARIANT.LABEL_HIDDEN &&
|
|
@@ -744,4 +691,15 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
744
691
|
this.ariaLabelledByElement.length
|
|
745
692
|
);
|
|
746
693
|
}
|
|
694
|
+
|
|
695
|
+
get computedAriaInvalid() {
|
|
696
|
+
const isAriaInvalid =
|
|
697
|
+
this.template.host.getAttribute('data-aria-invalid') ||
|
|
698
|
+
this._errorMessage;
|
|
699
|
+
return computeAriaInvalid(isAriaInvalid, this.value);
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
get helptextAlternativeText() {
|
|
703
|
+
return formatLabel(i18n.helpTextAlternativeText, this.label);
|
|
704
|
+
}
|
|
747
705
|
}
|
|
@@ -5,12 +5,13 @@
|
|
|
5
5
|
<legend class={computedLabelClass}>
|
|
6
6
|
{label}
|
|
7
7
|
</legend>
|
|
8
|
-
<lightning-helptext if:true={fieldLevelHelp} content={fieldLevelHelp}></lightning-helptext>
|
|
8
|
+
<lightning-helptext if:true={fieldLevelHelp} content={fieldLevelHelp} alternative-text={helptextAlternativeText}></lightning-helptext>
|
|
9
9
|
</template>
|
|
10
10
|
<div class="slds-form-element__control">
|
|
11
11
|
<div class="slds-form-element__group">
|
|
12
12
|
<div class="slds-form-element__row">
|
|
13
13
|
<lightning-datepicker
|
|
14
|
+
data-aria-invalid={computedDateAriaInvalid}
|
|
14
15
|
class="slds-form-element"
|
|
15
16
|
autocomplete={autocomplete}
|
|
16
17
|
min={dateMin}
|
|
@@ -29,6 +30,7 @@
|
|
|
29
30
|
</lightning-datepicker>
|
|
30
31
|
|
|
31
32
|
<lightning-timepicker
|
|
33
|
+
data-aria-invalid={computedTimeAriaInvalid}
|
|
32
34
|
class="slds-form-element"
|
|
33
35
|
autocomplete={autocomplete}
|
|
34
36
|
label={i18n.time}
|
|
@@ -2,6 +2,8 @@ import labelDate from '@salesforce/label/LightningDateTimePicker.dateLabel';
|
|
|
2
2
|
import labelRangeOverflow from '@salesforce/label/LightningDateTimePicker.rangeOverflow';
|
|
3
3
|
import labelRangeUnderflow from '@salesforce/label/LightningDateTimePicker.rangeUnderflow';
|
|
4
4
|
import labelTime from '@salesforce/label/LightningDateTimePicker.timeLabel';
|
|
5
|
+
import labelHelpTextAlternativeText from '@salesforce/label/LightningInput.helptextAlternativeText';
|
|
6
|
+
import sfTimeZone from '@salesforce/i18n/timeZone';
|
|
5
7
|
import { LightningElement, track, api } from 'lwc';
|
|
6
8
|
import { classSet, formatLabel } from 'lightning/utils';
|
|
7
9
|
import {
|
|
@@ -9,11 +11,13 @@ import {
|
|
|
9
11
|
normalizeAriaAttribute,
|
|
10
12
|
synchronizeAttrs,
|
|
11
13
|
getRealDOMId,
|
|
14
|
+
computeAriaInvalid,
|
|
12
15
|
} from 'lightning/utilsPrivate';
|
|
13
16
|
import {
|
|
14
|
-
|
|
17
|
+
getCurrentTimeString,
|
|
15
18
|
normalizeISODateTime,
|
|
16
19
|
normalizeFormattedDateTime,
|
|
20
|
+
isAuraL10NAvailable,
|
|
17
21
|
} from 'lightning/internationalizationLibrary';
|
|
18
22
|
import { TIME_SEPARATOR } from 'lightning/iso8601Utils';
|
|
19
23
|
import {
|
|
@@ -28,6 +32,7 @@ const i18n = {
|
|
|
28
32
|
rangeOverflow: labelRangeOverflow,
|
|
29
33
|
rangeUnderflow: labelRangeUnderflow,
|
|
30
34
|
time: labelTime,
|
|
35
|
+
helpTextAlternativeText: labelHelpTextAlternativeText,
|
|
31
36
|
};
|
|
32
37
|
|
|
33
38
|
export default class LightningDateTimePicker extends LightningElement {
|
|
@@ -177,6 +182,20 @@ export default class LightningDateTimePicker extends LightningElement {
|
|
|
177
182
|
}
|
|
178
183
|
}
|
|
179
184
|
|
|
185
|
+
/**
|
|
186
|
+
* Returns time zone if one is set, otherwise returns
|
|
187
|
+
* the Salesforce time zone when Aura localization is
|
|
188
|
+
* available, and the system's time zone otherwise
|
|
189
|
+
*/
|
|
190
|
+
get normalizedTimezone() {
|
|
191
|
+
if (this.timezone) {
|
|
192
|
+
return this.timezone;
|
|
193
|
+
} else if (isAuraL10NAvailable) {
|
|
194
|
+
return sfTimeZone;
|
|
195
|
+
}
|
|
196
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
197
|
+
}
|
|
198
|
+
|
|
180
199
|
@api
|
|
181
200
|
get disabled() {
|
|
182
201
|
return this._disabled;
|
|
@@ -453,14 +472,14 @@ export default class LightningDateTimePicker extends LightningElement {
|
|
|
453
472
|
|
|
454
473
|
handleDateChange(event) {
|
|
455
474
|
event.stopPropagation();
|
|
456
|
-
|
|
457
475
|
if (!event.detail) {
|
|
458
476
|
return;
|
|
459
477
|
}
|
|
460
|
-
|
|
461
478
|
this._dateValue = event.detail.value;
|
|
462
479
|
if (this._dateValue) {
|
|
463
|
-
this._timeValue =
|
|
480
|
+
this._timeValue =
|
|
481
|
+
this._timeValue ||
|
|
482
|
+
getCurrentTimeString(this.normalizedTimezone);
|
|
464
483
|
this.setTimepickerValue(this._timeValue);
|
|
465
484
|
}
|
|
466
485
|
|
|
@@ -487,7 +506,7 @@ export default class LightningDateTimePicker extends LightningElement {
|
|
|
487
506
|
const dateTimeString = dateValue + TIME_SEPARATOR + timeValue;
|
|
488
507
|
this._value = normalizeFormattedDateTime(
|
|
489
508
|
dateTimeString,
|
|
490
|
-
this.
|
|
509
|
+
this.normalizedTimezone
|
|
491
510
|
);
|
|
492
511
|
|
|
493
512
|
this.dispatchChangeEvent();
|
|
@@ -519,7 +538,7 @@ export default class LightningDateTimePicker extends LightningElement {
|
|
|
519
538
|
setDateAndTimeValues(value) {
|
|
520
539
|
const normalizedValue = normalizeISODateTime(
|
|
521
540
|
value,
|
|
522
|
-
this.
|
|
541
|
+
this.normalizedTimezone
|
|
523
542
|
).isoValue;
|
|
524
543
|
|
|
525
544
|
const isDateOnly = normalizedValue && value.indexOf(TIME_SEPARATOR) < 0;
|
|
@@ -559,7 +578,10 @@ export default class LightningDateTimePicker extends LightningElement {
|
|
|
559
578
|
return;
|
|
560
579
|
}
|
|
561
580
|
|
|
562
|
-
const normalizedDate = normalizeISODateTime(
|
|
581
|
+
const normalizedDate = normalizeISODateTime(
|
|
582
|
+
this.min,
|
|
583
|
+
this.normalizedTimezone
|
|
584
|
+
);
|
|
563
585
|
this._dateMin = this.separateDateTime(normalizedDate.isoValue)[0];
|
|
564
586
|
this.formattedMin = normalizedDate.displayValue;
|
|
565
587
|
}
|
|
@@ -569,7 +591,10 @@ export default class LightningDateTimePicker extends LightningElement {
|
|
|
569
591
|
return;
|
|
570
592
|
}
|
|
571
593
|
|
|
572
|
-
const normalizedDate = normalizeISODateTime(
|
|
594
|
+
const normalizedDate = normalizeISODateTime(
|
|
595
|
+
this.max,
|
|
596
|
+
this.normalizedTimezone
|
|
597
|
+
);
|
|
573
598
|
this._dateMax = this.separateDateTime(normalizedDate.isoValue)[0];
|
|
574
599
|
this.formattedMax = normalizedDate.displayValue;
|
|
575
600
|
}
|
|
@@ -579,4 +604,15 @@ export default class LightningDateTimePicker extends LightningElement {
|
|
|
579
604
|
? isoString.split(TIME_SEPARATOR)
|
|
580
605
|
: null;
|
|
581
606
|
}
|
|
607
|
+
|
|
608
|
+
get computedDateAriaInvalid() {
|
|
609
|
+
return computeAriaInvalid(this._customErrorMessage, this._dateValue);
|
|
610
|
+
}
|
|
611
|
+
get computedTimeAriaInvalid() {
|
|
612
|
+
return computeAriaInvalid(this._customErrorMessage, this._timeValue);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
get helptextAlternativeText() {
|
|
616
|
+
return formatLabel(i18n.helpTextAlternativeText, this.label);
|
|
617
|
+
}
|
|
582
618
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<abbr class="slds-required" title={i18n.required}>*</abbr>
|
|
7
7
|
</template>{label}
|
|
8
8
|
</div>
|
|
9
|
-
<lightning-helptext if:true={fieldLevelHelp} content={fieldLevelHelp}></lightning-helptext>
|
|
9
|
+
<lightning-helptext if:true={fieldLevelHelp} content={fieldLevelHelp} alternative-text={helptextAlternativeText}></lightning-helptext>
|
|
10
10
|
<div class="slds-form-element__control">
|
|
11
11
|
<div class="slds-dueling-list" onfocusin={handleFocus} onfocusout={handleBlur}>
|
|
12
12
|
<div class="slds-assistive-text" id="assertive-thing" aria-live="assertive">{_messageToDisplay}</div>
|
|
@@ -16,6 +16,7 @@ import labelMoveSelectionToAssistiveText from '@salesforce/label/LightningDualLi
|
|
|
16
16
|
import labelLoadingText from '@salesforce/label/LightningCombobox.loadingText';
|
|
17
17
|
import labelMovedOptionsSingular from '@salesforce/label/LightningDualListbox.movedOptionsSingular';
|
|
18
18
|
import labelMovedOptionsPlural from '@salesforce/label/LightningDualListbox.movedOptionsPlural';
|
|
19
|
+
import labelHelpTextAlternativeText from '@salesforce/label/LightningInput.helptextAlternativeText';
|
|
19
20
|
import { LightningElement, api, track } from 'lwc';
|
|
20
21
|
import { handleKeyDownOnOption } from './keyboard';
|
|
21
22
|
import { classSet, formatLabel } from 'lightning/utils';
|
|
@@ -51,6 +52,7 @@ const i18n = {
|
|
|
51
52
|
loadingText: labelLoadingText,
|
|
52
53
|
movedOptionsSingular: labelMovedOptionsSingular,
|
|
53
54
|
movedOptionsPlural: labelMovedOptionsPlural,
|
|
55
|
+
helpTextAlternativeText: labelHelpTextAlternativeText,
|
|
54
56
|
};
|
|
55
57
|
|
|
56
58
|
/**
|
|
@@ -498,7 +500,8 @@ export default class LightningDualListbox extends LightningElement {
|
|
|
498
500
|
|
|
499
501
|
return {
|
|
500
502
|
...option,
|
|
501
|
-
tabIndex:
|
|
503
|
+
tabIndex:
|
|
504
|
+
!this.disabled && option.value === focusableValue ? '0' : '-1',
|
|
502
505
|
selected: isSelected ? 'true' : 'false',
|
|
503
506
|
classList,
|
|
504
507
|
};
|
|
@@ -1057,4 +1060,8 @@ export default class LightningDualListbox extends LightningElement {
|
|
|
1057
1060
|
this._messageToDisplay = '';
|
|
1058
1061
|
}
|
|
1059
1062
|
}
|
|
1063
|
+
|
|
1064
|
+
get helptextAlternativeText() {
|
|
1065
|
+
return formatLabel(i18n.helpTextAlternativeText, this.label);
|
|
1066
|
+
}
|
|
1060
1067
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { resolveFileTypeToURL } from './resourceResolver';
|
|
2
|
+
|
|
3
|
+
export function generateUrl(recordId) {
|
|
4
|
+
const url = resolveFileTypeToURL(recordId);
|
|
5
|
+
return isValidUrl(url) ? url : undefined;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function isValidUrl(url) {
|
|
9
|
+
return (
|
|
10
|
+
url &&
|
|
11
|
+
(url.indexOf('http://') === 0 ||
|
|
12
|
+
url.indexOf('https://') === 0 ||
|
|
13
|
+
url.indexOf('/') === 0)
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getPathPrefix } from 'lightning/configProvider'; // Provides the path prefix to Core resources
|
|
2
|
+
|
|
3
|
+
export function resolveFileTypeToURL(recordId) {
|
|
4
|
+
const keyPrefixLength = 3;
|
|
5
|
+
const keyPrefix = recordId.substring(0, keyPrefixLength);
|
|
6
|
+
|
|
7
|
+
/* Returns url according to file key prefix */
|
|
8
|
+
const fileAttributes = {
|
|
9
|
+
// Content Document
|
|
10
|
+
'069':
|
|
11
|
+
'/sfc/servlet.shepherd/document/download/' +
|
|
12
|
+
recordId +
|
|
13
|
+
'?operationContext=S1',
|
|
14
|
+
|
|
15
|
+
// Content Version
|
|
16
|
+
'068':
|
|
17
|
+
'/sfc/servlet.shepherd/version/download/' +
|
|
18
|
+
recordId +
|
|
19
|
+
'?operationContext=S1',
|
|
20
|
+
|
|
21
|
+
// Attachment
|
|
22
|
+
'00P':
|
|
23
|
+
'/servlet/servlet.FileDownload?file=' +
|
|
24
|
+
recordId +
|
|
25
|
+
'&operationContext=S1',
|
|
26
|
+
|
|
27
|
+
// Document
|
|
28
|
+
'015':
|
|
29
|
+
'/servlet/servlet.FileDownload?file=' +
|
|
30
|
+
recordId +
|
|
31
|
+
'&operationContext=S1',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
keyPrefix &&
|
|
36
|
+
fileAttributes[keyPrefix] &&
|
|
37
|
+
getUrlWithSitePrefix(fileAttributes[keyPrefix])
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* In order to do any URL redirects, we need the site URL with the site path prefix.
|
|
42
|
+
getUrlWithSitePrefix returns the URL path prefix of the current site.
|
|
43
|
+
For example, if your site URL is MyDomainName.my.salesforce-sites.com/partners,
|
|
44
|
+
/partners is the path prefix. Returns null if the prefix isn’t defined.
|
|
45
|
+
If the current request is not a site request, then this field returns an empty string.
|
|
46
|
+
*/
|
|
47
|
+
function getUrlWithSitePrefix(url) {
|
|
48
|
+
let siteUrlPrefix = getPathPrefix();
|
|
49
|
+
|
|
50
|
+
// remove /s in siteUrlPrefix
|
|
51
|
+
siteUrlPrefix =
|
|
52
|
+
siteUrlPrefix && siteUrlPrefix.endsWith('/s')
|
|
53
|
+
? siteUrlPrefix.slice(0, siteUrlPrefix.length - 2)
|
|
54
|
+
: siteUrlPrefix;
|
|
55
|
+
|
|
56
|
+
// retun url directly if path prefix is already added to site URL
|
|
57
|
+
return url.indexOf(siteUrlPrefix) === 0 ? url : siteUrlPrefix + url;
|
|
58
|
+
}
|
|
@@ -6,6 +6,9 @@ examples:
|
|
|
6
6
|
- name: latitude
|
|
7
7
|
label: Formatted Address with Latitude/Longitude
|
|
8
8
|
description: Displays an address that includes latitude and longitude.
|
|
9
|
+
- name: customLocale
|
|
10
|
+
label: Formatted Address with Custom Locale
|
|
11
|
+
description: Displays an address in the format of a specific locale.
|
|
9
12
|
---
|
|
10
13
|
|
|
11
14
|
A `lightning-formatted-address` component displays addresses in a format and field order
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<h1 class="slds-text-heading_small">Address in Spanish format</h1>
|
|
3
|
+
|
|
4
|
+
<lightning-formatted-address
|
|
5
|
+
street="Avenida Concha Espina, Nº 1"
|
|
6
|
+
city="Madrid"
|
|
7
|
+
postal-code="28036"
|
|
8
|
+
country="España"
|
|
9
|
+
locale="es-ES"
|
|
10
|
+
></lightning-formatted-address>
|
|
11
|
+
|
|
12
|
+
<h1 class="slds-text-heading_small">Address in Japanese format</h1>
|
|
13
|
+
|
|
14
|
+
<lightning-formatted-address
|
|
15
|
+
street="下連雀1丁目1−83"
|
|
16
|
+
city="三鷹市"
|
|
17
|
+
country="日本"
|
|
18
|
+
province="東京都"
|
|
19
|
+
postal-code="181–0013"
|
|
20
|
+
locale="ja-JP"
|
|
21
|
+
></lightning-formatted-address>
|
|
22
|
+
</template>
|
|
@@ -25,6 +25,12 @@ export default class LightningFormattedAddress extends LightningElement {
|
|
|
25
25
|
|
|
26
26
|
@track href;
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* The locale of the address. The default value is 'en-US'.
|
|
30
|
+
* @type {string}
|
|
31
|
+
*/
|
|
32
|
+
@api locale = locale;
|
|
33
|
+
|
|
28
34
|
/**
|
|
29
35
|
* The street detail for the address.
|
|
30
36
|
* @type {string}
|
|
@@ -188,7 +194,7 @@ export default class LightningFormattedAddress extends LightningElement {
|
|
|
188
194
|
}
|
|
189
195
|
|
|
190
196
|
get address() {
|
|
191
|
-
const [langCode, countryCode] = locale.split('-');
|
|
197
|
+
const [langCode, countryCode] = this.locale.split('-');
|
|
192
198
|
return (
|
|
193
199
|
addressFormat.formatAddressAllFields(langCode, countryCode, {
|
|
194
200
|
address: this.street,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LightningElement, api, track } from 'lwc';
|
|
2
2
|
import { dateTimeFormat } from 'lightning/internationalizationLibrary';
|
|
3
|
-
import { isValidISODateTimeString } from 'lightning/iso8601Utils';
|
|
4
3
|
import { isIE11, normalizeBoolean } from 'lightning/utilsPrivate';
|
|
4
|
+
import { isValidISODateTimeString } from 'lightning/iso8601Utils';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Displays formatted date and time.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @event LightningFormattedLookup#onprivatelookupitempicked
|
|
3
|
+
* @type {object}
|
|
4
|
+
* @property {string} recordId
|
|
5
|
+
*/
|
|
6
|
+
export class PrivateLookupItemPickedEvent extends CustomEvent {
|
|
7
|
+
static NAME = 'privatelookupitempicked';
|
|
8
|
+
|
|
9
|
+
constructor({ recordId }) {
|
|
10
|
+
super(PrivateLookupItemPickedEvent.NAME, {
|
|
11
|
+
composed: true,
|
|
12
|
+
cancelable: true,
|
|
13
|
+
bubbles: true,
|
|
14
|
+
detail: {
|
|
15
|
+
recordId,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LightningElement, api, track } from 'lwc';
|
|
2
2
|
import { normalizeBoolean } from 'lightning/utilsPrivate';
|
|
3
3
|
import { getLinkInfo } from 'lightning/routingService';
|
|
4
|
+
import { PrivateLookupItemPickedEvent } from './events';
|
|
4
5
|
|
|
5
6
|
export default class LightningFormattedLookup extends LightningElement {
|
|
6
7
|
/**
|
|
@@ -181,6 +182,12 @@ export default class LightningFormattedLookup extends LightningElement {
|
|
|
181
182
|
* @returns {undefined}
|
|
182
183
|
*/
|
|
183
184
|
handleClick(event) {
|
|
185
|
+
this.dispatchEvent(
|
|
186
|
+
new PrivateLookupItemPickedEvent({
|
|
187
|
+
recordId: this.recordId,
|
|
188
|
+
})
|
|
189
|
+
);
|
|
190
|
+
|
|
184
191
|
this.dispatcher(event);
|
|
185
192
|
}
|
|
186
193
|
}
|