lightning-base-components 1.21.2-alpha → 1.21.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 (357) hide show
  1. package/metadata/raptor.json +77 -1
  2. package/package.json +108 -15
  3. package/scopedImports/@salesforce-label-LightningDatatable.showActions.js +1 -1
  4. package/scopedImports/@salesforce-label-LightningForm.controllerFieldsMessage.js +1 -0
  5. package/scopedImports/@salesforce-label-LightningForm.dependentFieldsHeader.js +1 -0
  6. package/scopedImports/@salesforce-label-LightningForm.dependentFieldsListHeading.js +1 -0
  7. package/scopedImports/@salesforce-label-LightningForm.generalDependentFieldsMessage.js +1 -0
  8. package/scopedImports/@salesforce-label-LightningForm.learnMore.js +1 -0
  9. package/scopedImports/@salesforce-label-LightningForm.okButton.js +1 -0
  10. package/scopedImports/@salesforce-label-LightningLookup.modalCancel.js +1 -0
  11. package/scopedImports/@salesforce-label-LightningLookup.modalSelect.js +1 -0
  12. package/scopedImports/@salesforce-label-LightningProgressIndicator.currentStage.js +1 -1
  13. package/scopedImports/@salesforce-label-LightningProgressIndicator.errorStage.js +1 -0
  14. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageComplete.js +1 -1
  15. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageNotStarted.js +1 -1
  16. package/scopedImports/@salesforce-label-LightningRichTextEditor.colorPicker.js +1 -0
  17. package/src/lightning/accordion/accordion-section.slds.css +3 -3
  18. package/src/lightning/accordion/accordion.slds.css +1 -2
  19. package/src/lightning/accordionSection/accordion-section.slds.css +3 -3
  20. package/src/lightning/accordionSection/accordionSection.js +3 -1
  21. package/src/lightning/accordionSection/button.slds.css +1 -1
  22. package/src/lightning/avatar/avatar.html +1 -0
  23. package/src/lightning/badge/badge.html +3 -3
  24. package/src/lightning/badge/badge.js +1 -0
  25. package/src/lightning/badge/badge.js-meta.xml +3 -0
  26. package/src/lightning/baseCombobox/base-combobox.slds.css +11 -6
  27. package/src/lightning/baseCombobox/baseCombobox.html +5 -2
  28. package/src/lightning/baseCombobox/baseCombobox.js +5 -18
  29. package/src/lightning/baseCombobox/baseCombobox.js-meta.xml +6 -0
  30. package/src/lightning/baseCombobox/input-text.slds.css +41 -68
  31. package/src/lightning/baseCombobox/keyboard.js +12 -4
  32. package/src/lightning/baseCombobox/listbox.slds.css +51 -99
  33. package/src/lightning/baseCombobox/spinner.slds.css +62 -62
  34. package/src/lightning/baseComboboxFormattedText/baseComboboxFormattedText.js-meta.xml +6 -0
  35. package/src/lightning/baseComboboxItem/baseComboboxItem.js +10 -6
  36. package/src/lightning/baseComboboxItem/baseComboboxItem.js-meta.xml +6 -0
  37. package/src/lightning/baseComboboxItem/listbox.slds.css +51 -99
  38. package/src/lightning/baseFormattedText/baseFormattedText.js +2 -2
  39. package/src/lightning/button/__docs__/button.md +2 -1
  40. package/src/lightning/button/button.js +5 -5
  41. package/src/lightning/button/button.slds.css +1 -1
  42. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +1 -0
  43. package/src/lightning/buttonIcon/button-icon.slds.css +1 -1
  44. package/src/lightning/buttonIcon/buttonIcon.html +1 -1
  45. package/src/lightning/buttonIcon/buttonIcon.js +18 -17
  46. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +4 -2
  47. package/src/lightning/buttonIconStateful/button-icon.slds.css +1 -1
  48. package/src/lightning/buttonIconStateful/button.slds.css +1 -1
  49. package/src/lightning/buttonMenu/button-icon.slds.css +1 -1
  50. package/src/lightning/buttonMenu/button-menu.slds.css +8 -2
  51. package/src/lightning/buttonMenu/button.slds.css +1 -1
  52. package/src/lightning/buttonMenu/buttonMenu.css +5 -0
  53. package/src/lightning/buttonMenu/buttonMenu.js +2 -0
  54. package/src/lightning/buttonStateful/button-stateful.slds.css +6 -2
  55. package/src/lightning/buttonStateful/button.slds.css +1 -1
  56. package/src/lightning/buttonStateful/buttonStateful.js +4 -1
  57. package/src/lightning/calendar/calendar.js-meta.xml +6 -0
  58. package/src/lightning/calendar/calendar.slds.css +9 -2
  59. package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +22 -23
  60. package/src/lightning/colorPickerCustom/colorPickerCustom.js +12 -0
  61. package/src/lightning/colorPickerCustom/input-text.slds.css +41 -68
  62. package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +9 -10
  63. package/src/lightning/colorPickerPanel/colorPickerPanel.js +11 -1
  64. package/src/lightning/colorPickerPanel/popover.slds.css +0 -2
  65. package/src/lightning/combobox/combobox.html +1 -0
  66. package/src/lightning/combobox/combobox.slds.css +1 -2
  67. package/src/lightning/combobox/form-element.slds.css +54 -54
  68. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.html +11 -0
  69. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.js +25 -0
  70. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/generateData.js +15 -0
  71. package/src/lightning/datatable/__examples__disabled/customDatatableWrapper/customDatatableWrapper.js +89 -0
  72. package/src/lightning/datatable/__examples__disabled/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +6 -0
  73. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.js +1 -16
  74. package/src/lightning/datatable/__examples__disabled/customDatatypeLink/customDatatypeLink.html +9 -0
  75. package/src/lightning/datatable/__examples__disabled/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html +3 -0
  76. package/src/lightning/datatable/__examples__disabled/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +3 -0
  77. package/src/lightning/datatable/__examples__disabled/customDatatypeTable/customNumber.html +3 -0
  78. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customNumberEdit.html +2 -0
  79. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/deleteRow.html +3 -2
  80. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/iconPill.html +1 -1
  81. package/src/lightning/datatable/{__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html → __examples__disabled/customNestedComponent/customNestedComponent.html} +2 -2
  82. package/src/lightning/datatable/__examples__disabled/customNestedComponent/customNestedComponent.js +12 -0
  83. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/customInput.html +4 -0
  84. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/myCustomTypeDatatable.js +17 -0
  85. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/nestedSimpleComponentParent.html +7 -0
  86. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.html +9 -0
  87. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.js +6 -0
  88. package/src/lightning/datatable/autoWidthStrategy.js +145 -217
  89. package/src/lightning/datatable/columnResizer.js +80 -190
  90. package/src/lightning/datatable/columnWidthManager.js +128 -243
  91. package/src/lightning/datatable/columns.js +192 -283
  92. package/src/lightning/datatable/datagrid.slds.css +187 -0
  93. package/src/lightning/datatable/datatable.js +647 -614
  94. package/src/lightning/datatable/errors.js +19 -28
  95. package/src/lightning/datatable/fixedWidthStrategy.js +27 -49
  96. package/src/lightning/datatable/headerActions.js +10 -42
  97. package/src/lightning/datatable/indexes.js +42 -0
  98. package/src/lightning/datatable/infiniteLoading.js +27 -46
  99. package/src/lightning/datatable/inlineEdit.js +311 -322
  100. package/src/lightning/datatable/keyboard.js +490 -510
  101. package/src/lightning/datatable/renderManager.js +10 -11
  102. package/src/lightning/datatable/resizeObserver.js +10 -67
  103. package/src/lightning/datatable/rowLevelActions.js +7 -6
  104. package/src/lightning/datatable/rowNumber.js +41 -79
  105. package/src/lightning/datatable/rowSelection.js +236 -291
  106. package/src/lightning/datatable/rowSelectionShared.js +26 -33
  107. package/src/lightning/datatable/rows.js +264 -476
  108. package/src/lightning/datatable/sort.js +27 -82
  109. package/src/lightning/datatable/templates/div/div.css +2 -57
  110. package/src/lightning/datatable/templates/div/div.html +25 -10
  111. package/src/lightning/datatable/templates/div/div.lbc.native.css +3 -0
  112. package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +80 -0
  113. package/src/lightning/datatable/templates/table/table.html +16 -5
  114. package/src/lightning/datatable/tree.js +17 -35
  115. package/src/lightning/datatable/types.js +10 -31
  116. package/src/lightning/datatable/utils.js +54 -29
  117. package/src/lightning/datatable/virtualization.js +2 -5
  118. package/src/lightning/datatable/widthManagerShared.js +24 -41
  119. package/src/lightning/datatable/wrapText.js +45 -77
  120. package/src/lightning/datepicker/datepicker.js +32 -9
  121. package/src/lightning/datepicker/datepicker.js-meta.xml +6 -0
  122. package/src/lightning/datepicker/form-element.slds.css +54 -54
  123. package/src/lightning/datepicker/input-text.slds.css +41 -68
  124. package/src/lightning/datetimepicker/datetimepicker.js-meta.xml +6 -0
  125. package/src/lightning/datetimepicker/form-element.slds.css +54 -54
  126. package/src/lightning/datetimepicker/input-text.slds.css +41 -68
  127. package/src/lightning/dualListbox/dual-listbox.slds.css +7 -2
  128. package/src/lightning/dualListbox/dualListbox.js +7 -8
  129. package/src/lightning/dualListbox/form-element.slds.css +54 -54
  130. package/src/lightning/dualListbox/listbox.slds.css +51 -99
  131. package/src/lightning/dynamicIcon/dynamic-icon-strength.slds.css +1 -2
  132. package/src/lightning/dynamicIcon/dynamic-icon-trend.slds.css +1 -2
  133. package/src/lightning/formattedDateTime/formattedDateTime.js +7 -62
  134. package/src/lightning/formattedDateTime/formattedDateTime.js-meta.xml +3 -0
  135. package/src/lightning/formattedLocation/formattedLocation.html +1 -3
  136. package/src/lightning/formattedLocation/formattedLocation.js +3 -25
  137. package/src/lightning/formattedLookup/events.js +2 -4
  138. package/src/lightning/formattedName/formattedName.js +3 -2
  139. package/src/lightning/formattedName/formattedName.js-meta.xml +3 -0
  140. package/src/lightning/formattedNumber/formattedNumber.js +5 -51
  141. package/src/lightning/formattedNumber/formattedNumber.js-meta.xml +3 -0
  142. package/src/lightning/formattedRichText/formattedRichText.js +5 -5
  143. package/src/lightning/formattedRichText/linkTextNodes.js +58 -0
  144. package/src/lightning/formattedRichText/richTextConfig.js +1 -0
  145. package/src/lightning/groupedCombobox/form-element.slds.css +54 -54
  146. package/src/lightning/groupedCombobox/grouped-combobox.slds.css +0 -2
  147. package/src/lightning/groupedCombobox/groupedCombobox.js-meta.xml +1 -1
  148. package/src/lightning/groupedCombobox/input-text.slds.css +41 -68
  149. package/src/lightning/helptext/button-icon.slds.css +1 -1
  150. package/src/lightning/helptext/form-element.slds.css +54 -54
  151. package/src/lightning/helptext/helptext.css +7 -0
  152. package/src/lightning/helptext/helptext.js +3 -4
  153. package/src/lightning/icon/icon.html +1 -1
  154. package/src/lightning/icon/icon.slds.css +12 -25
  155. package/src/lightning/input/form-element.slds.css +54 -54
  156. package/src/lightning/input/input.html +5 -0
  157. package/src/lightning/inputAddress/addressFormat.js +31 -4
  158. package/src/lightning/inputAddress/fieldsLayout.js +6 -0
  159. package/src/lightning/inputAddress/form-element.slds.css +54 -54
  160. package/src/lightning/inputAddress/input-address.slds.css +1 -2
  161. package/src/lightning/inputAddress/input-text.slds.css +41 -68
  162. package/src/lightning/inputAddress/inputAddress.html +19 -1
  163. package/src/lightning/inputAddress/inputAddress.js +75 -3
  164. package/src/lightning/inputAddress/inputAddress.js-meta.xml +3 -0
  165. package/src/lightning/inputLocation/form-element.slds.css +54 -54
  166. package/src/lightning/inputLocation/input-location.slds.css +1 -2
  167. package/src/lightning/inputLocation/input-text.slds.css +41 -68
  168. package/src/lightning/inputName/form-element.slds.css +54 -54
  169. package/src/lightning/inputName/input-text.slds.css +41 -68
  170. package/src/lightning/interactiveDialogBase/interactive-dialog-base.slds.css +0 -3
  171. package/src/lightning/interactiveDialogBase/interactiveDialogBase.js-meta.xml +6 -0
  172. package/src/lightning/internationalizationLibrary/address/AddressFormat.js +553 -610
  173. package/src/lightning/lookupAddress/form-element.slds.css +54 -54
  174. package/src/lightning/lookupAddress/listbox.slds.css +51 -99
  175. package/src/lightning/lookupAddress/location.js +2 -0
  176. package/src/lightning/lookupAddress/lookup-address.slds.css +0 -2
  177. package/src/lightning/lookupAddress/lookupAddress.html +6 -1
  178. package/src/lightning/lookupAddress/lookupAddress.js +40 -10
  179. package/src/lightning/menuDivider/menu-divider.slds.css +0 -2
  180. package/src/lightning/menuItem/menu-item.slds.css +8 -2
  181. package/src/lightning/menuSubheader/menu-subheader.slds.css +1 -2
  182. package/src/lightning/modal/__docs__/modal.md +10 -1
  183. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +3 -7
  184. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +39 -133
  185. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
  186. package/src/lightning/modal/modal.js +1 -1
  187. package/src/lightning/modalBase/modal-base.slds.css +3 -3
  188. package/src/lightning/modalBase/modalBase.html +15 -10
  189. package/src/lightning/modalBase/modalBase.js +131 -154
  190. package/src/lightning/modalBase/modalBase.js-meta.xml +6 -0
  191. package/src/lightning/modalBody/modal-body.slds.css +1 -2
  192. package/src/lightning/modalBody/modalBody.css +6 -0
  193. package/src/lightning/modalFooter/modal-footer.slds.css +2 -2
  194. package/src/lightning/modalFooter/modalFooter.js +0 -21
  195. package/src/lightning/modalHeader/modal-header.slds.css +1 -2
  196. package/src/lightning/modalHeader/modalHeader.html +16 -4
  197. package/src/lightning/modalHeader/modalHeader.js +61 -36
  198. package/src/lightning/overlay/overlay.js-meta.xml +6 -0
  199. package/src/lightning/pill/link.html +1 -0
  200. package/src/lightning/pill/pill.slds.css +32 -58
  201. package/src/lightning/pill/plain.html +1 -0
  202. package/src/lightning/pill/plainLink.html +1 -0
  203. package/src/lightning/pillContainer/button.slds.css +1 -1
  204. package/src/lightning/pillContainer/listbox.slds.css +51 -99
  205. package/src/lightning/pillContainer/pill-container.slds.css +6 -10
  206. package/src/lightning/pillContainer/pill.slds.css +32 -58
  207. package/src/lightning/popup/popover.slds.css +0 -2
  208. package/src/lightning/primitiveBubble/primitiveBubble.js +42 -0
  209. package/src/lightning/primitiveBubble/primitiveBubble.js-meta.xml +6 -0
  210. package/src/lightning/primitiveButton/primitiveButoon.js-meta.xml +6 -0
  211. package/src/lightning/primitiveCellCheckbox/checkbox.css +2 -0
  212. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +16 -38
  213. package/src/lightning/primitiveCustomCell/primitiveCustomCell.js +26 -1
  214. package/src/lightning/primitiveDatatableCell/primitiveDatatableCell.js +1 -1
  215. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.html +1 -1
  216. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.js +13 -0
  217. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.css +1 -0
  218. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.html +19 -6
  219. package/src/lightning/primitiveHeaderFactory/selectableHeader.css +2 -0
  220. package/src/lightning/primitiveHeaderFactory/sortableHeader.html +3 -1
  221. package/src/lightning/primitiveIcon/icon.slds.css +12 -25
  222. package/src/lightning/primitiveIcon/primitiveIcon.js-meta.xml +6 -0
  223. package/src/lightning/primitiveIframe/primitiveIframe.js +3 -1
  224. package/src/lightning/primitiveInputCheckbox/form-element.slds.css +54 -54
  225. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +5 -2
  226. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js-meta.xml +6 -0
  227. package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +54 -54
  228. package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -4
  229. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +5 -2
  230. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js-meta.xml +6 -0
  231. package/src/lightning/primitiveInputColor/form-element.slds.css +54 -54
  232. package/src/lightning/primitiveInputColor/input-color.slds.css +2 -3
  233. package/src/lightning/primitiveInputColor/input-text.slds.css +41 -68
  234. package/src/lightning/primitiveInputColor/primitiveInputColor.js +5 -2
  235. package/src/lightning/primitiveInputColor/primitiveInputColor.js-meta.xml +6 -0
  236. package/src/lightning/primitiveInputFile/button.slds.css +1 -1
  237. package/src/lightning/primitiveInputFile/form-element.slds.css +54 -54
  238. package/src/lightning/primitiveInputFile/input-file.slds.css +1 -4
  239. package/src/lightning/primitiveInputFile/primitiveInputFile.js +4 -2
  240. package/src/lightning/primitiveInputFile/primitiveInputFile.js-meta.xml +6 -0
  241. package/src/lightning/primitiveInputRadio/primitiveInputRadio.js +4 -2
  242. package/src/lightning/primitiveInputSimple/form-element.slds.css +54 -54
  243. package/src/lightning/primitiveInputSimple/input-text.slds.css +41 -68
  244. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js-meta.xml +6 -0
  245. package/src/lightning/primitiveInputToggle/form-element.slds.css +54 -54
  246. package/src/lightning/primitiveInputToggle/input-toggle.slds.css +50 -27
  247. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +5 -2
  248. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js-meta.xml +6 -0
  249. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.css +11 -0
  250. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.html +2 -1
  251. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.js +1 -0
  252. package/src/lightning/progressBar/progress-bar.slds.css +8 -10
  253. package/src/lightning/progressRing/progress-ring.slds.css +0 -23
  254. package/src/lightning/progressStep/base.html +5 -6
  255. package/src/lightning/progressStep/progressStep.js +15 -23
  256. package/src/lightning/prompt/__docs__/prompt.md +1 -1
  257. package/src/lightning/radioGroup/form-element.slds.css +54 -54
  258. package/src/lightning/radioGroup/radioGroup.html +1 -2
  259. package/src/lightning/radioGroup/radioGroup.js +1 -0
  260. package/src/lightning/routingService/routingService.js +31 -5
  261. package/src/lightning/select/form-element.slds.css +54 -54
  262. package/src/lightning/select/select.slds.css +4 -2
  263. package/src/lightning/shadowBaseClassPrivate/shadowBaseClassPrivate.js +0 -2
  264. package/src/lightning/sldsCommon/sldsCommon.css +134 -98
  265. package/src/lightning/sldsUtilsAlignment/sldsUtilsAlignment.css +1 -1
  266. package/src/lightning/sldsUtilsBox/sldsUtilsBox.css +14 -13
  267. package/src/lightning/sldsUtilsGrid/sldsUtilsGrid.css +95 -92
  268. package/src/lightning/sldsUtilsHyphenation/sldsUtilsHyphenation.css +1 -1
  269. package/src/lightning/sldsUtilsMargin/sldsUtilsMargin.css +77 -75
  270. package/src/lightning/sldsUtilsPadding/sldsUtilsPadding.css +73 -73
  271. package/src/lightning/sldsUtilsSizing/sldsUtilsSizing.css +552 -558
  272. package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +5 -1
  273. package/src/lightning/spinner/spinner.slds.css +62 -62
  274. package/src/lightning/staticMap/staticMap.js +3 -2
  275. package/src/lightning/tab/tab.js +10 -5
  276. package/src/lightning/tab/tab.js-meta.xml +3 -0
  277. package/src/lightning/tab/tab.slds.css +14 -7
  278. package/src/lightning/tabBar/tab-bar.slds.css +16 -6
  279. package/src/lightning/tabBar/tabBar.js +10 -5
  280. package/src/lightning/tabset/__docs__/tabset.md +24 -1
  281. package/src/lightning/tabset/tabset.html +2 -0
  282. package/src/lightning/tabset/tabset.js +25 -38
  283. package/src/lightning/tabset/tabset.js-meta.xml +3 -0
  284. package/src/lightning/tabset/tabset.slds.css +0 -2
  285. package/src/lightning/textarea/form-element.slds.css +54 -54
  286. package/src/lightning/textarea/textarea.js +11 -2
  287. package/src/lightning/textarea/textarea.slds.css +22 -9
  288. package/src/lightning/timepicker/form-element.slds.css +54 -54
  289. package/src/lightning/timepicker/timepicker.js-meta.xml +6 -0
  290. package/src/lightning/timepicker/timepicker.slds.css +2 -2
  291. package/src/lightning/toast/__docs__/toast.md +20 -22
  292. package/src/lightning/toast/button-icon.slds.css +1 -1
  293. package/src/lightning/toast/icon.slds.css +12 -25
  294. package/src/lightning/toast/toast.js +15 -12
  295. package/src/lightning/toast/toast.slds.css +6 -18
  296. package/src/lightning/toastContainer/__docs__/toastContainer.md +3 -2
  297. package/src/lightning/toastContainer/toast.slds.css +6 -18
  298. package/src/lightning/toastContainer/toastContainer.js +25 -17
  299. package/src/lightning/tooltipLibrary/tooltipLibrary.js +36 -24
  300. package/src/lightning/tree/tree.js +2 -0
  301. package/src/lightning/utils/classSet.js +9 -3
  302. package/src/lightning/utilsPrivate/formatUtils.js +158 -0
  303. package/src/lightning/utilsPrivate/textUtils.js +16 -0
  304. package/src/lightning/utilsPrivate/utilsPrivate.js +56 -15
  305. package/src/lightning/utilsPrivate/validationUtils.js +59 -0
  306. package/src/lightning/verticalNavigation/vertical-navigation.slds.css +14 -0
  307. package/src/lightning/verticalNavigation/verticalNavigation.css +1 -1
  308. package/src/lightning/verticalNavigation/verticalNavigation.html +1 -1
  309. package/src/lightning/verticalNavigation/verticalNavigation.js +66 -28
  310. package/src/lightning/verticalNavigation/verticalNavigation.js-meta.xml +3 -0
  311. package/src/lightning/verticalNavigationItem/vertical-navigation-item.slds.css +63 -0
  312. package/src/lightning/verticalNavigationItem/verticalNavigationItem.css +2 -3
  313. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js +29 -15
  314. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js-meta.xml +3 -0
  315. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.native.css +2 -0
  316. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.synthetic.css +3 -0
  317. package/src/lightning/verticalNavigationItemBadge/badge.slds.css +76 -0
  318. package/src/lightning/verticalNavigationItemBadge/vertical-navigation-item.slds.css +63 -0
  319. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.css +2 -3
  320. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.html +1 -1
  321. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js +28 -15
  322. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js-meta.xml +3 -0
  323. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.native.css +5 -0
  324. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.synthetic.css +3 -0
  325. package/src/lightning/verticalNavigationItemIcon/vertical-navigation-item.slds.css +63 -0
  326. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.css +2 -3
  327. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js +29 -15
  328. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js-meta.xml +3 -0
  329. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.native.css +3 -0
  330. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.synthetic.css +3 -0
  331. package/src/lightning/verticalNavigationOverflow/button.slds.css +503 -0
  332. package/src/lightning/verticalNavigationOverflow/vertical-navigation-item.slds.css +63 -0
  333. package/src/lightning/verticalNavigationOverflow/vertical-navigation-section.slds.css +17 -0
  334. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.css +2 -1
  335. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.html +2 -0
  336. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js +18 -13
  337. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js-meta.xml +3 -0
  338. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.lbc.native.css +5 -0
  339. package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +13 -15
  340. package/src/lightning/verticalNavigationSection/verticalNavigationSection.js-meta.xml +3 -0
  341. package/src/lightning/datatable/__examples__/customDatatableWrapper/customDatatableWrapper.js +0 -158
  342. package/src/lightning/datatable/__examples__/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +0 -6
  343. package/src/lightning/datatable/__examples__/customDatatypeLink/customDatatypeLink.html +0 -9
  344. package/src/lightning/datatable/__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +0 -40
  345. package/src/lightning/datatable/__examples__/customDatatypeTable/customNumber.html +0 -3
  346. package/src/lightning/datatable/inlineEditShared.js +0 -26
  347. package/src/lightning/datatable/resizeSensor.js +0 -244
  348. package/src/lightning/formattedRichText/linkify.js +0 -43
  349. package/src/lightning/utilsPrivate/smartSetAttribute.js +0 -19
  350. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatableWrapper/customDatatableWrapper.html +0 -0
  351. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeLink/customDatatypeLink.js +0 -0
  352. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.html +0 -0
  353. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.js +0 -0
  354. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customDatatypeTable.js +0 -0
  355. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customLink.html +0 -0
  356. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customName.html +0 -0
  357. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/orderingButtons.html +0 -0
@@ -1,10 +1,12 @@
1
1
  <template>
2
2
  <div class="slds-nav-vertical__overflow">
3
3
  <button
4
+ part="button"
4
5
  id="vertical-navigation-button"
5
6
  onclick={toggleOverflow}
6
7
  class="slds-button slds-button_reset slds-nav-vertical__action slds-nav-vertical__action_overflow" aria-controls="vertical-navigation-heading" aria-expanded={_isExpanded} >
7
8
  <lightning-primitive-icon
9
+ part="start"
8
10
  icon-name={computedIconName}
9
11
  svg-class="slds-button__icon slds-button__icon_left"
10
12
  variant="bare">
@@ -1,13 +1,15 @@
1
- import { LightningElement, track } from 'lwc';
1
+ import { track } from 'lwc';
2
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
2
3
  import showMoreLabel from '@salesforce/label/LightningVerticalNavigation.showMore';
3
4
  import showLessLabel from '@salesforce/label/LightningVerticalNavigation.showLess';
5
+ import { isCSR } from 'lightning/utilsPrivate';
4
6
 
5
7
  const SLDS_SHOW = 'slds-show';
6
8
  const SLDS_HIDE = 'slds-hide';
7
9
  const COLLAPSED_ICON = 'utility:chevronright';
8
10
  const EXPANDED_ICON = 'utility:chevrondown';
9
11
 
10
- export default class LightningVerticalNavigationSection extends LightningElement {
12
+ export default class LightningVerticalNavigationSection extends LightningShadowBaseClass {
11
13
  @track _isExpanded = false;
12
14
 
13
15
  get computedActionText() {
@@ -35,17 +37,20 @@ export default class LightningVerticalNavigationSection extends LightningElement
35
37
  }
36
38
 
37
39
  connectedCallback() {
38
- this.dispatchEvent(
39
- new CustomEvent('privateoverflowregister', {
40
- bubbles: true,
41
- composed: true,
42
- detail: {
43
- callbacks: {
44
- updateAssistiveText:
45
- this.updateAssistiveText.bind(this),
40
+ super.connectedCallback();
41
+ if (isCSR) {
42
+ this.dispatchEvent(
43
+ new CustomEvent('privateoverflowregister', {
44
+ bubbles: true,
45
+ composed: true,
46
+ detail: {
47
+ callbacks: {
48
+ updateAssistiveText:
49
+ this.updateAssistiveText.bind(this),
50
+ },
46
51
  },
47
- },
48
- })
49
- );
52
+ })
53
+ );
54
+ }
50
55
  }
51
56
  }
@@ -2,4 +2,7 @@
2
2
  <LightningComponentBundle xmlns="xmlns=http://soap.sforce.com/2006/04/metadata">
3
3
  <isExposed>true</isExposed>
4
4
  <minApiVersion>41.0</minApiVersion>
5
+ <capabilities>
6
+ <capability>lightning__ServerRenderableWithHydration</capability>
7
+ </capabilities>
5
8
  </LightningComponentBundle>
@@ -0,0 +1,5 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import 'lightning/sldsUtilsVisibility';
3
+ @import './vertical-navigation-section.slds.css';
4
+ @import './button.slds.css';
5
+ @import './vertical-navigation-item.slds.css';
@@ -1,19 +1,17 @@
1
1
 
2
- @supports (--styling-hooks: '') {
3
- :host([data-render-mode="shadow"]) .slds-nav-vertical__title {
4
- padding-block-start: var(--slds-g-spacing-2);
5
- padding-block-end: var(--slds-g-spacing-2);
6
- padding-inline-start: var(--slds-g-spacing-5);
7
- padding-inline-end: var(--slds-g-spacing-4);
8
- font-size: var(--slds-g-font-size-base);
9
- font-weight: var(--slds-g-font-weight-7);
10
- }
2
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__title {
3
+ padding-block-start: var(--slds-c-verticalnavigationsection-spacing-blockstart, var(--slds-g-spacing-2));
4
+ padding-block-end: var(--slds-c-verticalnavigationsection-spacing-blockend, var(--slds-g-spacing-2));
5
+ padding-inline-start: var(--slds-c-verticalnavigationsection-spacing-inlinestart, var(--slds-g-spacing-5));
6
+ padding-inline-end: var(--slds-g-spacing-4);
7
+ font-size: var(--slds-g-spacing-4);
8
+ font-weight: var(--slds-g-font-weight-7);
9
+ }
11
10
 
12
- :host([data-render-mode="shadow"]) .slds-nav-vertical__section:not(:first-of-type) {
13
- margin-block-start: var(--slds-g-spacing-2);
14
- }
11
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__section:not(:first-of-type) {
12
+ margin-block-start: var(--slds-g-spacing-2);
13
+ }
15
14
 
16
- :host([data-render-mode="shadow"]) .slds-nav-vertical__title:not(:first-of-type) {
17
- margin-block-start: var(--slds-g-spacing-2);
18
- }
15
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__title:not(:first-of-type) {
16
+ margin-block-start: var(--slds-g-spacing-2);
19
17
  }
@@ -2,4 +2,7 @@
2
2
  <LightningComponentBundle xmlns="xmlns=http://soap.sforce.com/2006/04/metadata">
3
3
  <isExposed>true</isExposed>
4
4
  <minApiVersion>41.0</minApiVersion>
5
+ <capabilities>
6
+ <capability>lightning__ServerRenderableWithHydration</capability>
7
+ </capabilities>
5
8
  </LightningComponentBundle>
@@ -1,158 +0,0 @@
1
- import { LightningElement, track } from 'lwc';
2
-
3
- // Add <datatable-custom-datatable-wrapper></datatable-custom-datatable-wrapper> to the lwr-playground to see the table
4
-
5
- const columns = [
6
- {
7
- label: 'Reorder',
8
- type: 'orderingButtons',
9
- fixedWidth: 90,
10
- fieldName: 'id',
11
- typeAttributes: {
12
- isFirstRow: { fieldName: 'isFirstRow' },
13
- isLastRow: { fieldName: 'isLastRow' },
14
- },
15
- },
16
- {
17
- label: 'Account Name',
18
- type: 'customName',
19
- typeAttributes: {
20
- accountName: { fieldName: 'name' },
21
- },
22
- },
23
- {
24
- label: 'Website',
25
- fieldName: 'website',
26
- type: 'customLink',
27
- typeAttributes: {
28
- label: { fieldName: 'name' },
29
- tooltip: { fieldName: 'name' },
30
- },
31
- hideDefaultActions: true,
32
- actions: [
33
- { label: 'Action 1', name: 'action1' },
34
- { label: 'Action 2', name: 'action2' },
35
- ],
36
- },
37
- {
38
- label: 'Amount',
39
- type: 'customNumber',
40
- fieldName: 'amount',
41
- editable: true,
42
- typeAttributes: {
43
- min: 0,
44
- },
45
- },
46
- { label: 'Icon', type: 'iconPill' },
47
- {
48
- label: '',
49
- type: 'deleteRowButton',
50
- fieldName: 'id',
51
- fixedWidth: 70,
52
- typeAttributes: {
53
- attrA: { fieldName: 'attrA' },
54
- attrB: { fieldName: 'attrB' },
55
- },
56
- },
57
- ];
58
-
59
- const exampleData = [
60
- {
61
- id: 1,
62
- name: 'Name 1',
63
- website: 'https://www.google.com',
64
- amount: 200.0,
65
- isFirstRow: true,
66
- isLastRow: false,
67
- },
68
- {
69
- id: 2,
70
- name: 'Name 2',
71
- website: 'https://www.salesforce.com',
72
- amount: 500000.0,
73
- isFirstRow: false,
74
- isLastRow: false,
75
- },
76
- {
77
- id: 3,
78
- name: 'Name 3',
79
- website: 'https://www.quora.com',
80
- amount: 600.0,
81
- isFirstRow: false,
82
- isLastRow: true,
83
- },
84
- ];
85
-
86
- export default class CustomDatatableWrapper extends LightningElement {
87
- @track data = exampleData;
88
- @track columns = columns;
89
-
90
- moveRowUp(event) {
91
- const { rowId } = event.detail;
92
- const index = findRowIndex(this.data, rowId);
93
- if (index > 0) {
94
- const row = this.data[index];
95
- const previous = this.data[index - 1];
96
- this.data = this.data
97
- .slice(0, index - 1)
98
- .concat([row, previous])
99
- .concat(this.data.slice(index + 1));
100
- if (index - 1 === 0) {
101
- this.data[0].isFirstRow = true;
102
- this.data[1].isFirstRow = false;
103
- } else if (index === this.data.length - 1) {
104
- this.data[index].isLastRow = true;
105
- this.data[index - 1].isLastRow = false;
106
- }
107
- }
108
- }
109
-
110
- moveRowDown(event) {
111
- const { rowId } = event.detail;
112
- const index = findRowIndex(this.data, rowId);
113
- const length = this.data.length;
114
- if (index < length - 1) {
115
- const row = this.data[index];
116
- const next = this.data[index + 1];
117
- this.data = this.data
118
- .slice(0, index)
119
- .concat([next, row])
120
- .concat(this.data.slice(index + 2));
121
- if (index === 0) {
122
- this.data[0].isFirstRow = true;
123
- this.data[1].isFirstRow = false;
124
- } else if (index === this.data.length - 2) {
125
- this.data[index].isLastRow = false;
126
- this.data[index + 1].isLastRow = true;
127
- }
128
- }
129
- }
130
-
131
- deleteRow(event) {
132
- const { rowId } = event.detail;
133
- const index = findRowIndex(this.data, rowId);
134
- const length = this.data.length;
135
- if (index >= 0) {
136
- this.data = this.data
137
- .slice(0, index)
138
- .concat(this.data.slice(index + 1));
139
- if (index === 0) {
140
- this.data[0].isFirstRow = true;
141
- } else if (index === length - 1) {
142
- this.data[length - 2].isLastRow = true;
143
- }
144
- }
145
- }
146
- }
147
-
148
- function findRowIndex(data, rowId) {
149
- let index = -1;
150
- data.some((row, i) => {
151
- if (row.id === rowId) {
152
- index = i;
153
- return true;
154
- }
155
- return false;
156
- });
157
- return index;
158
- }
@@ -1,6 +0,0 @@
1
- <template>
2
- <div style="text-align: center;">
3
- <lightning-button-icon icon-name="utility:delete" onclick={fireDeleteRow}>
4
- </lightning-button-icon>
5
- </div>
6
- </template>
@@ -1,9 +0,0 @@
1
- <template>
2
- <div>
3
- <p><lightning-formatted-url value={url} tooltip="Omit leading slash" label={label} target="_blank"></lightning-formatted-url></p>
4
- <p><lightning-formatted-url value={url} tooltip="Use full domain name" label={label}
5
- target="_blank"></lightning-formatted-url></p>
6
- <p><lightning-formatted-url value={url} tooltip="Use https://domain-name"
7
- label={label} target="_blank"></lightning-formatted-url></p>
8
- </div>
9
- </template>
@@ -1,40 +0,0 @@
1
- import { LightningElement, api } from 'lwc';
2
- import mix from 'lightning/mixinBuilder';
3
- import { baseNavigation } from 'lightning/datatableKeyboardMixins';
4
- import template from './customDatatypeRowOrderingBtn.html';
5
-
6
- export default class CustomDatatypeRowOrderingBtn extends mix(
7
- LightningElement
8
- ).with(baseNavigation) {
9
- @api rowId;
10
- @api isFirstRow;
11
- @api isLastRow;
12
-
13
- render() {
14
- return template;
15
- }
16
-
17
- fireMoveRowUp() {
18
- const event = new CustomEvent('privatemoverowup', {
19
- composed: true,
20
- bubbles: true,
21
- cancelable: true,
22
- detail: {
23
- rowId: this.rowId,
24
- },
25
- });
26
- this.dispatchEvent(event);
27
- }
28
-
29
- fireMoveRowDown() {
30
- const event = new CustomEvent('privatemoverowdown', {
31
- composed: true,
32
- bubbles: true,
33
- cancelable: true,
34
- detail: {
35
- rowId: this.rowId,
36
- },
37
- });
38
- this.dispatchEvent(event);
39
- }
40
- }
@@ -1,3 +0,0 @@
1
- <template>
2
- <datatable-custom-datatype-number value={value}></datatable-custom-datatype-number>
3
- </template>
@@ -1,26 +0,0 @@
1
- /**
2
- * Retrieves the dirty/unsaved value of a cell that resulted from an inline
3
- * edit change. If no change was made on the cell, this function
4
- * returns `undefined`.
5
- *
6
- * @param {Object} state - datatable's state object
7
- * @param {String} rowKeyValue - computed id for the row
8
- * @param {String} colKeyValue - computed id for the column
9
- * @returns {String} The dirty/unsaved value of the cell.
10
- * If no change was made, this returns `undefined`
11
- */
12
- export function getDirtyValueFromCell(state, rowKeyValue, colKeyValue) {
13
- const dirtyValues = state.inlineEdit.dirtyValues;
14
-
15
- if (
16
- dirtyValues &&
17
- // eslint-disable-next-line no-prototype-builtins
18
- dirtyValues.hasOwnProperty(rowKeyValue) &&
19
- // eslint-disable-next-line no-prototype-builtins
20
- dirtyValues[rowKeyValue].hasOwnProperty(colKeyValue)
21
- ) {
22
- return dirtyValues[rowKeyValue][colKeyValue];
23
- }
24
-
25
- return undefined;
26
- }
@@ -1,244 +0,0 @@
1
- /**
2
- * IMPORTANT: This ResizeSensor is only used in the event that the standard ResizeObserver
3
- * is NOT available on the browser.
4
- *
5
- * Currently only IE11 does not support the ResizeObserver. We should be able to
6
- * remove this once we fully drop support of IE11.
7
- */
8
-
9
- /**
10
- * Based on Marc J. Schmidt library: https://github.com/marcj/css-element-queries/blob/master
11
- */
12
-
13
- class EventQueue {
14
- q = [];
15
-
16
- add(ev) {
17
- this.q.push(ev);
18
- }
19
-
20
- call(sizeInfo) {
21
- for (let i = 0, j = this.q.length; i < j; i++) {
22
- this.q[i].call(this, sizeInfo);
23
- }
24
- }
25
-
26
- remove(ev) {
27
- const newQueue = [];
28
- for (let i = 0, j = this.q.length; i < j; i++) {
29
- if (this.q[i] !== ev) {
30
- newQueue.push(this.q[i]);
31
- }
32
- }
33
- this.q = newQueue;
34
- }
35
-
36
- length() {
37
- return this.q.length;
38
- }
39
- }
40
-
41
- /**
42
- * Get element size
43
- *
44
- * @param {HTMLElement} element Element to return the size.
45
- * @returns {Object} {width, height}
46
- */
47
- function getElementSize(element) {
48
- const rect = element.getBoundingClientRect();
49
- return {
50
- width: Math.round(rect.width),
51
- height: Math.round(rect.height),
52
- };
53
- }
54
-
55
- function createResizeSensor() {
56
- const resizeSensor = document.createElement('div');
57
- resizeSensor.dir = 'ltr';
58
- resizeSensor.className = 'resize-sensor';
59
- const style =
60
- 'position: absolute; left: -10px; top: -10px; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;';
61
- const styleChild = 'position: absolute; left: 0; top: 0; transition: 0s;';
62
-
63
- resizeSensor.style.cssText = style;
64
- // eslint-disable-next-line @lwc/lwc/no-inner-html
65
- resizeSensor.innerHTML =
66
- `<div class="resize-sensor-expand" style="${style}">` +
67
- `<div style="${styleChild}"></div>` +
68
- `</div>` +
69
- `<div class="resize-sensor-shrink" style="${style}">` +
70
- `<div style="${styleChild} width: 200%; height: 200%"></div>` +
71
- `</div>`;
72
-
73
- return resizeSensor;
74
- }
75
-
76
- /**
77
- * Attaches the resize event to an element
78
- *
79
- * @param {HTMLElement} element Element to listen resize
80
- * @param {Function} resizeListener Resize event listener
81
- */
82
- function attachResizeEvent(element, resizeListener) {
83
- if (!element) {
84
- return;
85
- }
86
- if (element.resizedAttached) {
87
- element.resizedAttached.add(resizeListener);
88
- return;
89
- }
90
-
91
- element.resizedAttached = new EventQueue();
92
- element.resizedAttached.add(resizeListener);
93
-
94
- const resizeSensor = createResizeSensor();
95
- element.resizeSensor = resizeSensor;
96
- element.appendChild(resizeSensor);
97
-
98
- const position = (
99
- window.getComputedStyle(element) || element.style
100
- ).getPropertyValue('position');
101
-
102
- if (
103
- position !== 'absolute' &&
104
- position !== 'relative' &&
105
- position !== 'fixed'
106
- ) {
107
- element.style.position = 'relative';
108
- }
109
-
110
- const expand = resizeSensor.childNodes[0];
111
- const expandChild = expand.childNodes[0];
112
- const shrink = resizeSensor.childNodes[1];
113
-
114
- let dirty, rafId;
115
- let size = getElementSize(element);
116
- let lastWidth = size.width;
117
- let lastHeight = size.height;
118
- let initialHiddenCheck = true,
119
- resetRafId;
120
-
121
- const resetExpandShrink = function () {
122
- expandChild.style.width = '100000px';
123
- expandChild.style.height = '100000px';
124
-
125
- expand.scrollLeft = 100000;
126
- expand.scrollTop = 100000;
127
-
128
- shrink.scrollLeft = 100000;
129
- shrink.scrollTop = 100000;
130
- };
131
-
132
- const reset = function () {
133
- // Check if element is hidden
134
- if (initialHiddenCheck) {
135
- if (!expand.scrollTop && !expand.scrollLeft) {
136
- // reset
137
- resetExpandShrink();
138
-
139
- // Check in next frame
140
- if (!resetRafId) {
141
- // eslint-disable-next-line @lwc/lwc/no-async-operation
142
- resetRafId = requestAnimationFrame(() => {
143
- resetRafId = 0;
144
- reset();
145
- });
146
- }
147
-
148
- return;
149
- }
150
-
151
- initialHiddenCheck = false;
152
- }
153
-
154
- resetExpandShrink();
155
- };
156
- resizeSensor.resetSensor = reset;
157
-
158
- const onResized = function () {
159
- rafId = 0;
160
-
161
- if (!dirty) {
162
- return;
163
- }
164
-
165
- lastWidth = size.width;
166
- lastHeight = size.height;
167
-
168
- if (element.resizedAttached) {
169
- element.resizedAttached.call(size);
170
- }
171
- };
172
-
173
- const onScroll = function () {
174
- size = getElementSize(element);
175
- dirty = size.width !== lastWidth || size.height !== lastHeight;
176
-
177
- if (dirty && !rafId) {
178
- // eslint-disable-next-line @lwc/lwc/no-async-operation
179
- rafId = requestAnimationFrame(onResized);
180
- }
181
-
182
- reset();
183
- };
184
-
185
- const addEvent = function (el, name, cb) {
186
- el.addEventListener(name, cb);
187
- };
188
-
189
- addEvent(expand, 'scroll', onScroll);
190
- addEvent(shrink, 'scroll', onScroll);
191
-
192
- // Fix for custom Elements
193
- // eslint-disable-next-line @lwc/lwc/no-async-operation
194
- requestAnimationFrame(reset);
195
- }
196
-
197
- /**
198
- * Removes a resize event from an element.
199
- *
200
- * @param {HTMLElement} element Element to remove resize listener from
201
- * @param {Event} event The event to remove
202
- */
203
- function detach(elem, ev) {
204
- if (!elem) {
205
- return;
206
- }
207
- if (elem.resizedAttached && typeof ev === 'function') {
208
- elem.resizedAttached.remove(ev);
209
- if (elem.resizedAttached.length()) {
210
- return;
211
- }
212
- }
213
- if (elem.resizeSensor) {
214
- if (elem.contains(elem.resizeSensor)) {
215
- elem.removeChild(elem.resizeSensor);
216
- }
217
- delete elem.resizeSensor;
218
- delete elem.resizedAttached;
219
- }
220
- }
221
-
222
- export class ResizeSensor {
223
- constructor(element, resizeListener) {
224
- this.targetElement = element;
225
- this.resizeListener = resizeListener;
226
-
227
- attachResizeEvent(this.targetElement, this.resizeListener);
228
- }
229
-
230
- detach() {
231
- detach(this.targetElement, this.resizeListener);
232
- }
233
-
234
- // Reattach resize event with existing target element and listener
235
- reattach(targetElement) {
236
- this.targetElement = targetElement;
237
-
238
- attachResizeEvent(this.targetElement, this.resizeListener);
239
- }
240
-
241
- reset() {
242
- this.targetElement.resizeSensor.resetSensor();
243
- }
244
- }
@@ -1,43 +0,0 @@
1
- import {
2
- urlRegexString,
3
- emailRegexString,
4
- tagRegexString,
5
- createHttpHref,
6
- createEmailHref,
7
- } from 'lightning/utilsPrivate';
8
-
9
- const linkRegex = new RegExp(
10
- `${tagRegexString}|${emailRegexString}|${urlRegexString}`,
11
- 'gi'
12
- );
13
-
14
- const createHttpLink = function (match) {
15
- const href = createHttpHref(match);
16
- return `<a href="${href}" target="_blank" rel="noopener">${match}</a>`;
17
- };
18
-
19
- const createEmailLink = function (match) {
20
- const href = createEmailHref(match);
21
- return `<a href="${href}">${match}</a>`;
22
- };
23
-
24
- export const linkify = function (text) {
25
- if (typeof text !== 'string') {
26
- return '';
27
- }
28
- return text.replace(linkRegex, (match, tagMatch, emailMatch, hrefMatch) => {
29
- if (tagMatch) {
30
- return tagMatch;
31
- } else if (hrefMatch) {
32
- const endsWithQuote = hrefMatch.endsWith('&quot');
33
- let href = hrefMatch;
34
- if (endsWithQuote) {
35
- href = hrefMatch.slice(0, hrefMatch.lastIndexOf('&quot'));
36
- }
37
- return createHttpLink(href) + (endsWithQuote ? '&quot' : '');
38
- } else if (emailMatch) {
39
- return createEmailLink(emailMatch);
40
- }
41
- return match;
42
- });
43
- };
@@ -1,19 +0,0 @@
1
- /**
2
- * Set an attribute on an element, if it's a normal element
3
- * it will use setAttribute, if it's an LWC component
4
- * it will use the public property
5
- *
6
- * @param {HTMLElement} element The element to act on
7
- * @param {String} attribute the attribute to set
8
- * @param {Any} value the value to set
9
- */
10
- export function smartSetAttribute(element, attribute, value) {
11
- if (element.tagName.match(/^LIGHTNING/i)) {
12
- attribute = attribute.replace(/-\w/g, (m) => m[1].toUpperCase());
13
- element[attribute] = value ? value : null;
14
- } else if (value) {
15
- element.setAttribute(attribute, value);
16
- } else {
17
- element.removeAttribute(attribute);
18
- }
19
- }