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.
Files changed (336) hide show
  1. package/metadata/raptor.json +64 -2
  2. package/package.json +64 -2
  3. package/scopedImports/@salesforce-i18n-calendarData.js +1 -0
  4. package/scopedImports/@salesforce-i18n-common.calendarData.js +1 -0
  5. package/scopedImports/@salesforce-i18n-common.digits.js +1 -0
  6. package/scopedImports/@salesforce-i18n-dateTime.longDateTimeFormat.js +1 -0
  7. package/scopedImports/@salesforce-i18n-defaultCalendar.js +1 -0
  8. package/scopedImports/@salesforce-i18n-defaultNumberingSystem.js +1 -0
  9. package/scopedImports/@salesforce-i18n-number.exponentialSign.js +1 -0
  10. package/scopedImports/@salesforce-i18n-number.infinity.js +1 -0
  11. package/scopedImports/@salesforce-i18n-number.minusSign.js +1 -0
  12. package/scopedImports/@salesforce-i18n-number.nan.js +1 -0
  13. package/scopedImports/@salesforce-i18n-number.perMilleSign.js +1 -0
  14. package/scopedImports/@salesforce-i18n-number.percentSign.js +1 -0
  15. package/scopedImports/@salesforce-i18n-number.plusSign.js +1 -0
  16. package/scopedImports/@salesforce-i18n-number.superscriptingExponentSign.js +1 -0
  17. package/scopedImports/@salesforce-label-LightningMap.defaultTitle.js +1 -0
  18. package/src/lightning/alert/__docs__/alert.md +4 -6
  19. package/src/lightning/baseCombobox/baseCombobox.html +3 -1
  20. package/src/lightning/baseCombobox/baseCombobox.js +44 -7
  21. package/src/lightning/button/button.js +22 -1
  22. package/src/lightning/buttonIcon/buttonIcon.js +0 -3
  23. package/src/lightning/calendar/calendar.html +2 -1
  24. package/src/lightning/calendar/calendar.js +2 -2
  25. package/src/lightning/checkboxGroup/checkboxGroup.html +2 -2
  26. package/src/lightning/checkboxGroup/checkboxGroup.js +9 -5
  27. package/src/lightning/combobox/__docs__/combobox.md +3 -1
  28. package/src/lightning/combobox/combobox.html +1 -1
  29. package/src/lightning/combobox/combobox.js +7 -2
  30. package/src/lightning/configProvider/defaultLocalizationConfig.js +43 -6
  31. package/src/lightning/confirm/__docs__/confirm.md +2 -4
  32. package/src/lightning/datatable/__examples__/basic/basic.js +3 -4
  33. package/src/lightning/datatable/__examples__/basic/generateData.js +13 -0
  34. package/src/lightning/datatable/__examples__/withInfiniteLoading/generateDataWithDelay.js +18 -0
  35. package/src/lightning/datatable/__examples__/withInfiniteLoading/withInfiniteLoading.js +3 -3
  36. package/src/lightning/datatable/__examples__/withInlineEdit/generateData.js +13 -0
  37. package/src/lightning/datatable/__examples__/withInlineEdit/withInlineEdit.js +3 -4
  38. package/src/lightning/datatable/__examples__/withRowActions/generateData.js +13 -0
  39. package/src/lightning/datatable/__examples__/withRowActions/withRowActions.js +3 -4
  40. package/src/lightning/datatable/__examples__/withRowNumbers/generateData.js +13 -0
  41. package/src/lightning/datatable/__examples__/withRowNumbers/withRowNumbers.js +3 -4
  42. package/src/lightning/datatable/__wdio__/utam/utam.html +15 -0
  43. package/src/lightning/datatable/__wdio__/utam/utam.spec.js +208 -183
  44. package/src/lightning/datatable/datatable.js +13 -7
  45. package/src/lightning/datatable/inlineEdit.js +0 -5
  46. package/src/lightning/datatable/inlineEditShared.js +4 -2
  47. package/src/lightning/datatable/keyboard.js +13 -5
  48. package/src/lightning/datatable/rowSelection.js +8 -2
  49. package/src/lightning/datatable/state.js +1 -0
  50. package/src/lightning/datatable/templates/table/table.html +2 -2
  51. package/src/lightning/datatable/utils.js +11 -0
  52. package/src/lightning/datatable/virtualization.js +2 -2
  53. package/src/lightning/datatable/wrapText.js +1 -0
  54. package/src/lightning/datepicker/datepicker.html +5 -4
  55. package/src/lightning/datepicker/datepicker.js +35 -77
  56. package/src/lightning/datetimepicker/datetimepicker.html +3 -1
  57. package/src/lightning/datetimepicker/datetimepicker.js +44 -8
  58. package/src/lightning/dualListbox/dualListbox.html +1 -1
  59. package/src/lightning/dualListbox/dualListbox.js +8 -1
  60. package/src/lightning/fileDownload/fileDownload.js +15 -0
  61. package/src/lightning/fileDownload/fileDownload.js-meta.xml +5 -0
  62. package/src/lightning/fileDownload/resourceResolver.js +58 -0
  63. package/src/lightning/formattedAddress/__docs__/formattedAddress.md +3 -0
  64. package/src/lightning/formattedAddress/__examples__/customLocale/customLocale.html +22 -0
  65. package/src/lightning/formattedAddress/__examples__/customLocale/customLocale.js +3 -0
  66. package/src/lightning/formattedAddress/formattedAddress.js +7 -1
  67. package/src/lightning/formattedDateTime/formattedDateTime.js +1 -1
  68. package/src/lightning/formattedLookup/events.js +19 -0
  69. package/src/lightning/formattedLookup/formattedLookup.js +7 -0
  70. package/src/lightning/formattedRichText/__docs__/formattedRichText.md +9 -7
  71. package/src/lightning/formattedRichText/__examples__disabled/basic/basic.html +1 -1
  72. package/src/lightning/formattedTime/formattedTime.js +2 -1
  73. package/src/lightning/groupedCombobox/groupedCombobox.html +3 -2
  74. package/src/lightning/groupedCombobox/groupedCombobox.js +26 -4
  75. package/src/lightning/helptext/helptext.html +1 -0
  76. package/src/lightning/helptext/helptext.js +29 -2
  77. package/src/lightning/i18nCldrOptions/all-locales.js +1 -0
  78. package/src/lightning/i18nCldrOptions/i18nCldrOptions.js +4 -0
  79. package/src/lightning/i18nService/i18nService.js +1810 -0
  80. package/src/lightning/iconSvgTemplates/buildTemplates/action/scan_disabled.html +7 -0
  81. package/src/lightning/iconSvgTemplates/buildTemplates/action/scan_enabled.html +7 -0
  82. package/src/lightning/iconSvgTemplates/buildTemplates/standard/ai_accelerator_card.html +7 -0
  83. package/src/lightning/iconSvgTemplates/buildTemplates/standard/connect_wallet.html +9 -0
  84. package/src/lightning/iconSvgTemplates/buildTemplates/standard/contract_line_outcome.html +7 -0
  85. package/src/lightning/iconSvgTemplates/buildTemplates/standard/contract_line_outcome_data.html +7 -0
  86. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
  87. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_product.html +7 -0
  88. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
  89. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_transaction.html +9 -0
  90. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
  91. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
  92. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_wallet.html +8 -0
  93. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_wallet_group.html +9 -0
  94. package/src/lightning/iconSvgTemplates/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
  95. package/src/lightning/iconSvgTemplates/buildTemplates/standard/customer.html +10 -0
  96. package/src/lightning/iconSvgTemplates/buildTemplates/standard/customer_workspace.html +11 -0
  97. package/src/lightning/iconSvgTemplates/buildTemplates/standard/learner_program.html +7 -0
  98. package/src/lightning/iconSvgTemplates/buildTemplates/standard/nft_settings.html +8 -0
  99. package/src/lightning/iconSvgTemplates/buildTemplates/standard/nft_studio.html +7 -0
  100. package/src/lightning/iconSvgTemplates/buildTemplates/standard/prompt.html +7 -0
  101. package/src/lightning/iconSvgTemplates/buildTemplates/standard/setup_modal.html +11 -0
  102. package/src/lightning/iconSvgTemplates/buildTemplates/standard/snippet_alt.html +7 -0
  103. package/src/lightning/iconSvgTemplates/buildTemplates/standard/tax_policy.html +8 -0
  104. package/src/lightning/iconSvgTemplates/buildTemplates/standard/tax_rate.html +8 -0
  105. package/src/lightning/iconSvgTemplates/buildTemplates/standard/tax_treatment.html +8 -0
  106. package/src/lightning/iconSvgTemplates/buildTemplates/standard/travel_mode.html +2 -2
  107. package/src/lightning/iconSvgTemplates/buildTemplates/standard/water.html +7 -0
  108. package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +48 -1
  109. package/src/lightning/iconSvgTemplates/buildTemplates/utility/captions.html +7 -0
  110. package/src/lightning/iconSvgTemplates/buildTemplates/utility/contract_line_outcome.html +7 -0
  111. package/src/lightning/iconSvgTemplates/buildTemplates/utility/contract_line_outcome_data.html +7 -0
  112. package/src/lightning/iconSvgTemplates/buildTemplates/utility/customer.html +10 -0
  113. package/src/lightning/iconSvgTemplates/buildTemplates/utility/customer_workspace.html +11 -0
  114. package/src/lightning/iconSvgTemplates/buildTemplates/utility/detach.html +7 -0
  115. package/src/lightning/iconSvgTemplates/buildTemplates/utility/hazmat_equipment.html +7 -0
  116. package/src/lightning/iconSvgTemplates/buildTemplates/utility/label.html +7 -0
  117. package/src/lightning/iconSvgTemplates/buildTemplates/utility/labels.html +8 -0
  118. package/src/lightning/iconSvgTemplates/buildTemplates/utility/record_alt.html +8 -0
  119. package/src/lightning/iconSvgTemplates/buildTemplates/utility/segments.html +8 -0
  120. package/src/lightning/iconSvgTemplates/buildTemplates/utility/tax_policy.html +8 -0
  121. package/src/lightning/iconSvgTemplates/buildTemplates/utility/tax_rate.html +8 -0
  122. package/src/lightning/iconSvgTemplates/buildTemplates/utility/tax_treatment.html +8 -0
  123. package/src/lightning/iconSvgTemplates/buildTemplates/utility/tollways.html +8 -0
  124. package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_bicycle.html +7 -0
  125. package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_heavy_truck.html +7 -0
  126. package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_light_truck.html +7 -0
  127. package/src/lightning/iconSvgTemplates/buildTemplates/utility/transport_walking.html +7 -0
  128. package/src/lightning/iconSvgTemplates/buildTemplates/utility/water.html +7 -0
  129. package/src/lightning/iconSvgTemplatesAction/buildTemplates/action/scan_disabled.html +7 -0
  130. package/src/lightning/iconSvgTemplatesAction/buildTemplates/action/scan_enabled.html +7 -0
  131. package/src/lightning/iconSvgTemplatesAction/buildTemplates/templates.js +3 -1
  132. package/src/lightning/iconSvgTemplatesActionRtl/buildTemplates/action/scan_disabled.html +7 -0
  133. package/src/lightning/iconSvgTemplatesActionRtl/buildTemplates/action/scan_enabled.html +7 -0
  134. package/src/lightning/iconSvgTemplatesActionRtl/buildTemplates/templates.js +3 -1
  135. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/action/scan_disabled.html +7 -0
  136. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/action/scan_enabled.html +7 -0
  137. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/ai_accelerator_card.html +7 -0
  138. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/connect_wallet.html +9 -0
  139. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/contract_line_outcome.html +7 -0
  140. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/contract_line_outcome_data.html +7 -0
  141. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
  142. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_product.html +7 -0
  143. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
  144. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_transaction.html +9 -0
  145. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
  146. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
  147. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_wallet.html +8 -0
  148. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_wallet_group.html +9 -0
  149. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
  150. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/customer.html +10 -0
  151. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/customer_workspace.html +11 -0
  152. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/learner_program.html +7 -0
  153. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/nft_settings.html +8 -0
  154. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/nft_studio.html +7 -0
  155. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/prompt.html +7 -0
  156. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/setup_modal.html +11 -0
  157. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/snippet_alt.html +7 -0
  158. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tax_policy.html +8 -0
  159. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tax_rate.html +8 -0
  160. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/tax_treatment.html +8 -0
  161. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/travel_mode.html +2 -2
  162. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/water.html +7 -0
  163. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +48 -1
  164. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/captions.html +7 -0
  165. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/contract_line_outcome.html +7 -0
  166. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/contract_line_outcome_data.html +7 -0
  167. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/customer.html +10 -0
  168. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/customer_workspace.html +11 -0
  169. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/detach.html +7 -0
  170. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/hazmat_equipment.html +7 -0
  171. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/label.html +7 -0
  172. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/labels.html +8 -0
  173. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/record_alt.html +8 -0
  174. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/segments.html +8 -0
  175. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tax_policy.html +8 -0
  176. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tax_rate.html +8 -0
  177. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tax_treatment.html +8 -0
  178. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/tollways.html +8 -0
  179. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_bicycle.html +7 -0
  180. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_heavy_truck.html +7 -0
  181. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_light_truck.html +7 -0
  182. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/transport_walking.html +7 -0
  183. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/water.html +7 -0
  184. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/ai_accelerator_card.html +7 -0
  185. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/connect_wallet.html +9 -0
  186. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/contract_line_outcome.html +7 -0
  187. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/contract_line_outcome_data.html +7 -0
  188. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
  189. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_product.html +7 -0
  190. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
  191. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_transaction.html +9 -0
  192. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
  193. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
  194. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_wallet.html +8 -0
  195. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_wallet_group.html +9 -0
  196. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
  197. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/customer.html +10 -0
  198. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/customer_workspace.html +11 -0
  199. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/learner_program.html +7 -0
  200. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/nft_settings.html +8 -0
  201. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/nft_studio.html +7 -0
  202. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/prompt.html +7 -0
  203. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/setup_modal.html +11 -0
  204. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/snippet_alt.html +7 -0
  205. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tax_policy.html +8 -0
  206. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tax_rate.html +8 -0
  207. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/tax_treatment.html +8 -0
  208. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/travel_mode.html +2 -2
  209. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/water.html +7 -0
  210. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +26 -1
  211. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/ai_accelerator_card.html +7 -0
  212. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/connect_wallet.html +9 -0
  213. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/contract_line_outcome.html +7 -0
  214. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/contract_line_outcome_data.html +7 -0
  215. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_category_wallet_group.html +7 -0
  216. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_product.html +7 -0
  217. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_product_category_wallet_role.html +9 -0
  218. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_transaction.html +9 -0
  219. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_transaction_envelope.html +8 -0
  220. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_transaction_envelope_item.html +7 -0
  221. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_wallet.html +8 -0
  222. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_wallet_group.html +9 -0
  223. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/crypto_wallet_group_item.html +8 -0
  224. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/customer.html +10 -0
  225. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/customer_workspace.html +11 -0
  226. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/learner_program.html +7 -0
  227. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/nft_settings.html +8 -0
  228. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/nft_studio.html +7 -0
  229. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/prompt.html +7 -0
  230. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/setup_modal.html +11 -0
  231. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/snippet_alt.html +7 -0
  232. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tax_policy.html +8 -0
  233. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tax_rate.html +8 -0
  234. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/tax_treatment.html +8 -0
  235. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/travel_mode.html +2 -2
  236. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/water.html +7 -0
  237. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +26 -1
  238. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +21 -1
  239. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/captions.html +7 -0
  240. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/contract_line_outcome.html +7 -0
  241. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/contract_line_outcome_data.html +7 -0
  242. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/customer.html +10 -0
  243. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/customer_workspace.html +11 -0
  244. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/detach.html +7 -0
  245. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/hazmat_equipment.html +7 -0
  246. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/label.html +7 -0
  247. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/labels.html +8 -0
  248. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/record_alt.html +8 -0
  249. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/segments.html +8 -0
  250. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tax_policy.html +8 -0
  251. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tax_rate.html +8 -0
  252. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tax_treatment.html +8 -0
  253. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/tollways.html +8 -0
  254. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_bicycle.html +7 -0
  255. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_heavy_truck.html +7 -0
  256. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_light_truck.html +7 -0
  257. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/transport_walking.html +7 -0
  258. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/water.html +7 -0
  259. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +21 -1
  260. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/captions.html +7 -0
  261. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/contract_line_outcome.html +7 -0
  262. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/contract_line_outcome_data.html +7 -0
  263. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/customer.html +10 -0
  264. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/customer_workspace.html +11 -0
  265. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/detach.html +7 -0
  266. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/hazmat_equipment.html +7 -0
  267. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/label.html +7 -0
  268. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/labels.html +8 -0
  269. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/record_alt.html +8 -0
  270. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/segments.html +8 -0
  271. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tax_policy.html +8 -0
  272. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tax_rate.html +8 -0
  273. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tax_treatment.html +8 -0
  274. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/tollways.html +8 -0
  275. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_bicycle.html +7 -0
  276. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_heavy_truck.html +7 -0
  277. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_light_truck.html +7 -0
  278. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/transport_walking.html +7 -0
  279. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/water.html +7 -0
  280. package/src/lightning/input/dateTimeUtil.js +2 -2
  281. package/src/lightning/input/input.html +6 -0
  282. package/src/lightning/input/input.js +2 -1
  283. package/src/lightning/inputAddress/__docs__/inputAddress.md +5 -0
  284. package/src/lightning/inputAddress/__examples__/customLocale/customLocale.html +12 -0
  285. package/src/lightning/inputAddress/__examples__/customLocale/customLocale.js +3 -0
  286. package/src/lightning/inputAddress/inputAddress.html +3 -1
  287. package/src/lightning/inputAddress/inputAddress.js +33 -4
  288. package/src/lightning/inputLocation/inputLocation.html +1 -1
  289. package/src/lightning/inputLocation/inputLocation.js +7 -1
  290. package/src/lightning/inputName/__docs__/inputName.md +2 -0
  291. package/src/lightning/inputName/inputName.html +5 -2
  292. package/src/lightning/inputName/inputName.js +7 -1
  293. package/src/lightning/inputUtils/inputUtils.js +11 -0
  294. package/src/lightning/interactiveDialogBase/interactiveDialogBase.js +1 -0
  295. package/src/lightning/internationalizationLibrary/datetime/dateTimeOptions.js +16 -29
  296. package/src/lightning/internationalizationLibrary/datetime/dateTimeUtils.js +524 -135
  297. package/src/lightning/internationalizationLibrary/datetime/intlFormat.js +92 -72
  298. package/src/lightning/internationalizationLibrary/internationalizationLibrary.js +9 -4
  299. package/src/lightning/internationalizationLibrary/localizationService.js +1 -0
  300. package/src/lightning/internationalizationLibrary/number/NumberFormat.js +17 -11
  301. package/src/lightning/internationalizationLibrary/number/numberFormatFallback.js +3 -2
  302. package/src/lightning/internationalizationLibrary/number/numberOptions.js +22 -26
  303. package/src/lightning/internationalizationLibrary/number/utils.js +134 -131
  304. package/src/lightning/internationalizationLibrary/utils.js +14 -0
  305. package/src/lightning/iso8601Utils/iso8601Utils.js +1 -0
  306. package/src/lightning/modalBase/modalBase.css +0 -4
  307. package/src/lightning/modalBase/modalBase.html +1 -1
  308. package/src/lightning/modalBase/modalBase.js +0 -14
  309. package/src/lightning/navigation/__docs__/navigation.md +0 -2
  310. package/src/lightning/overlayContainer/overlayContainer.html +2 -2
  311. package/src/lightning/overlayContainer/overlayContainer.js +217 -49
  312. package/src/lightning/overlayManager/overlayManager.js +378 -28
  313. package/src/lightning/overlayManager/overlayManager.js-meta.xml +5 -0
  314. package/src/lightning/picklist/picklist.js +6 -1
  315. package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +1 -11
  316. package/src/lightning/prompt/__docs__/prompt.md +2 -4
  317. package/src/lightning/radioGroup/radioGroup.js +9 -0
  318. package/src/lightning/select/select.html +4 -2
  319. package/src/lightning/select/select.js +12 -2
  320. package/src/lightning/tabBar/tabBar.html +3 -2
  321. package/src/lightning/tabBar/tabBar.js +15 -0
  322. package/src/lightning/textarea/textarea.html +2 -1
  323. package/src/lightning/textarea/textarea.js +12 -1
  324. package/src/lightning/timepicker/timepicker.html +4 -2
  325. package/src/lightning/timepicker/timepicker.js +49 -86
  326. package/src/lightning/utils/labelUtils.js +4 -1
  327. package/src/lightning/utilsPrivate/animation.js +0 -4
  328. package/src/lightning/utilsPrivate/aria.js +26 -0
  329. package/src/lightning/utilsPrivate/linkify.js +1 -1
  330. package/src/lightning/utilsPrivate/utilsPrivate.js +7 -1
  331. package/src/lightning/datatable/__examples__/basic/fetchDataHelper.js +0 -21
  332. package/src/lightning/datatable/__examples__/withInfiniteLoading/fetchDataHelper.js +0 -21
  333. package/src/lightning/datatable/__examples__/withInlineEdit/fetchDataHelper.js +0 -21
  334. package/src/lightning/datatable/__examples__/withRowActions/fetchDataHelper.js +0 -21
  335. package/src/lightning/datatable/__examples__/withRowNumbers/fetchDataHelper.js +0 -21
  336. 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
- <template if:true={errorMessage}>
58
- <div id="error-message" data-error-message class="slds-form-element__help" aria-live="assertive">{errorMessage}</div>
59
- </template>
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 shortDateFormat from '@salesforce/i18n/dateTime.shortDateFormat';
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
- normalizeFormattedDate,
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.dateFormat);
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.dateFormat);
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(this.i18n.invalidDate, this.dateFormat)
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.dateFormat);
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.dateFormat);
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 = this.parseFormattedDate(this._displayValue);
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.dateFormat
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.dateFormat
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
- getCurrentTime,
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 = this._timeValue || getCurrentTime(this.timezone);
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.timezone
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.timezone
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(this.min, this.timezone);
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(this.max, this.timezone);
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: option.value === focusableValue ? '0' : '-1',
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,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <LightningComponentBundle xmlns="xmlns=http://soap.sforce.com/2006/04/metadata">
3
+ <minApiVersion>56.0</minApiVersion>
4
+ <isExposed>true</isExposed>
5
+ </LightningComponentBundle>
@@ -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>
@@ -0,0 +1,3 @@
1
+ import { LightningElement } from 'lwc';
2
+
3
+ export default class LightningExampleFormattedAddressCustomLocale extends LightningElement {}
@@ -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
  }