lightning-base-components 1.18.1-alpha → 1.18.3-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/metadata/raptor.json +9 -0
  2. package/package.json +57 -1
  3. package/src/lightning/accordion/__docs__/accordion.md +2 -2
  4. package/src/lightning/accordion/accordion.css +12 -0
  5. package/src/lightning/accordion/accordion.html +3 -1
  6. package/src/lightning/accordion/accordion.js +4 -2
  7. package/src/lightning/accordion/accordion.slds.css +671 -0
  8. package/src/lightning/accordionSection/accordion-section.slds.css +647 -0
  9. package/src/lightning/accordionSection/accordionSection.css +14 -0
  10. package/src/lightning/accordionSection/accordionSection.html +23 -19
  11. package/src/lightning/accordionSection/accordionSection.js +29 -2
  12. package/src/lightning/ariaObserver/__docs__/ariaObserver.md +21 -9
  13. package/src/lightning/ariaObserver/ariaObserver.js +185 -154
  14. package/src/lightning/ariaObserver/polyfill.js +639 -0
  15. package/src/lightning/avatar/__docs__/avatar.md +7 -7
  16. package/src/lightning/avatar/avatar.css +2 -0
  17. package/src/lightning/avatar/avatar.html +2 -0
  18. package/src/lightning/avatar/avatar.js +18 -15
  19. package/src/lightning/avatar/avatar.slds.css +272 -0
  20. package/src/lightning/badge/__docs__/badge.md +2 -2
  21. package/src/lightning/baseCombobox/base-combobox.slds.css +1585 -0
  22. package/src/lightning/baseCombobox/baseCombobox.css +11 -1
  23. package/src/lightning/baseCombobox/baseCombobox.html +154 -146
  24. package/src/lightning/baseCombobox/baseCombobox.js +122 -46
  25. package/src/lightning/baseCombobox/spinner.slds.css +438 -0
  26. package/src/lightning/baseComboboxItem/baseComboboxItem.js +4 -2
  27. package/src/lightning/baseComboboxItem/inline.css +2 -0
  28. package/src/lightning/breadcrumb/breadcrumb.css +2 -2
  29. package/src/lightning/breadcrumb/breadcrumb.js +4 -2
  30. package/src/lightning/breadcrumb/breadcrumb.slds.css +2 -7
  31. package/src/lightning/breadcrumbs/__docs__/breadcrumbs.md +3 -3
  32. package/src/lightning/breadcrumbs/breadcrumbs.css +2 -2
  33. package/src/lightning/breadcrumbs/breadcrumbs.js +3 -2
  34. package/src/lightning/breadcrumbs/breadcrumbs.slds.css +7 -1
  35. package/src/lightning/button/__docs__/button.md +15 -15
  36. package/src/lightning/button/__examples__/inverse/inverse.css +8 -0
  37. package/src/lightning/button/__examples__/inverse/inverse.html +3 -2
  38. package/src/lightning/button/button.css +2 -0
  39. package/src/lightning/button/button.html +4 -2
  40. package/src/lightning/button/button.js +21 -0
  41. package/src/lightning/button/button.slds.css +527 -0
  42. package/src/lightning/buttonGroup/buttonGroup.css +2 -2
  43. package/src/lightning/buttonGroup/buttonGroup.js +3 -2
  44. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +9 -9
  45. package/src/lightning/buttonIcon/button-icon.slds.css +215 -453
  46. package/src/lightning/buttonIcon/buttonIcon.css +2 -2
  47. package/src/lightning/buttonIcon/buttonIcon.js +4 -0
  48. package/src/lightning/buttonIconStateful/__docs__/buttonIconStateful.md +9 -9
  49. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +215 -453
  50. package/src/lightning/buttonIconStateful/buttonIconStateful.css +2 -2
  51. package/src/lightning/buttonMenu/__docs__/buttonMenu.md +8 -8
  52. package/src/lightning/buttonMenu/{dropdown.slds.css → button-menu.slds.css} +853 -217
  53. package/src/lightning/buttonMenu/buttonMenu.css +2 -2
  54. package/src/lightning/buttonMenu/buttonMenu.html +2 -2
  55. package/src/lightning/buttonMenu/buttonMenu.js +10 -14
  56. package/src/lightning/buttonStateful/__docs__/buttonStateful.md +12 -12
  57. package/src/lightning/buttonStateful/button-stateful.slds.css +225 -457
  58. package/src/lightning/buttonStateful/buttonStateful.css +2 -2
  59. package/src/lightning/buttonStateful/buttonStateful.js +3 -2
  60. package/src/lightning/calendar/__examples__/basic/basic.html +7 -0
  61. package/src/lightning/calendar/__examples__/basic/basic.js +3 -0
  62. package/src/lightning/calendar/calendar.css +3 -0
  63. package/src/lightning/calendar/calendar.html +12 -9
  64. package/src/lightning/calendar/calendar.js +18 -2
  65. package/src/lightning/calendar/calendar.slds.css +2048 -0
  66. package/src/lightning/card/__docs__/card.md +3 -3
  67. package/src/lightning/card/card.css +2 -2
  68. package/src/lightning/card/card.js +3 -2
  69. package/src/lightning/card/card.slds.css +141 -88
  70. package/src/lightning/checkboxGroup/__docs__/checkboxGroup.md +2 -2
  71. package/src/lightning/colorPickerCustom/colorPickerCustom.css +2 -2
  72. package/src/lightning/colorPickerCustom/colorPickerCustom.js +3 -2
  73. package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +11 -38
  74. package/src/lightning/colorPickerPanel/colorPickerPanel.css +3 -2
  75. package/src/lightning/colorPickerPanel/colorPickerPanel.js +4 -2
  76. package/src/lightning/colorPickerPanel/popover.slds.css +121 -0
  77. package/src/lightning/combobox/combobox.css +4 -0
  78. package/src/lightning/combobox/combobox.html +31 -29
  79. package/src/lightning/combobox/combobox.js +21 -4
  80. package/src/lightning/combobox/combobox.slds.css +13 -0
  81. package/src/lightning/combobox/form-element.slds.css +281 -0
  82. package/src/lightning/configProvider/defaultConfig.js +2 -1
  83. package/src/lightning/datatable/__docs__/datatable.md +45 -35
  84. package/src/lightning/datatable/autoWidthStrategy.js +3 -0
  85. package/src/lightning/datatable/columnWidthManager.js +1 -1
  86. package/src/lightning/datatable/datatable.js +8 -7
  87. package/src/lightning/datatable/rowSelection.js +7 -4
  88. package/src/lightning/datatable/templates/table/table.html +1 -0
  89. package/src/lightning/datepicker/datepicker.css +3 -0
  90. package/src/lightning/datepicker/datepicker.html +7 -4
  91. package/src/lightning/datepicker/datepicker.js +76 -20
  92. package/src/lightning/datepicker/form-element.slds.css +281 -0
  93. package/src/lightning/datepicker/input-text.slds.css +398 -0
  94. package/src/lightning/datetimepicker/datetimepicker.css +3 -0
  95. package/src/lightning/datetimepicker/datetimepicker.html +9 -3
  96. package/src/lightning/datetimepicker/datetimepicker.js +42 -36
  97. package/src/lightning/datetimepicker/form-element.slds.css +281 -0
  98. package/src/lightning/datetimepicker/input-text.slds.css +398 -0
  99. package/src/lightning/dualListbox/dualListbox.css +2 -2
  100. package/src/lightning/dualListbox/dualListbox.html +3 -3
  101. package/src/lightning/dualListbox/dualListbox.js +47 -13
  102. package/src/lightning/dualListbox/form-element.slds.css +83 -34
  103. package/src/lightning/dualListbox/keyboard.js +20 -1
  104. package/src/lightning/dynamicIcon/dynamicIcon.js +3 -2
  105. package/src/lightning/dynamicIcon/ellie.css +1 -1
  106. package/src/lightning/dynamicIcon/eq.css +1 -1
  107. package/src/lightning/dynamicIcon/score.css +1 -1
  108. package/src/lightning/dynamicIcon/strength.css +1 -1
  109. package/src/lightning/dynamicIcon/trend.css +1 -1
  110. package/src/lightning/dynamicIcon/waffle.css +1 -1
  111. package/src/lightning/formattedRichText/formatted-rich-text.slds.css +230 -0
  112. package/src/lightning/formattedRichText/formattedRichText.css +2 -0
  113. package/src/lightning/formattedRichText/formattedRichText.js +4 -2
  114. package/src/lightning/formattedRichText/linkify.js +2 -2
  115. package/src/lightning/formattedText/formattedText.css +1 -0
  116. package/src/lightning/formattedText/formattedText.js +3 -2
  117. package/src/lightning/helptext/__docs__/helptext.md +2 -2
  118. package/src/lightning/helptext/form-element.slds.css +83 -34
  119. package/src/lightning/helptext/help-text.slds.css +215 -453
  120. package/src/lightning/helptext/helptext.css +2 -2
  121. package/src/lightning/helptext/helptext.js +3 -2
  122. package/src/lightning/i18nCldrOptions/README.md +5 -0
  123. package/src/lightning/i18nService/README.md +5 -0
  124. package/src/lightning/icon/__docs__/icon.md +5 -5
  125. package/src/lightning/icon/icon.css +2 -2
  126. package/src/lightning/icon/icon.js +21 -2
  127. package/src/lightning/icon/icon.slds.css +29 -17
  128. package/src/lightning/icon/iconColors.js +1 -0
  129. package/src/lightning/iconUtils/iconUtils.js +0 -12
  130. package/src/lightning/iconUtils/polyfill.js +5 -90
  131. package/src/lightning/input/__docs__/input.md +7 -7
  132. package/src/lightning/input/__examples__/checkboxbutton/checkboxbutton.css +6 -0
  133. package/src/lightning/input/__examples__/checkboxbutton/checkboxbutton.html +2 -1
  134. package/src/lightning/input/__examples__/checkboxbutton/checkboxbutton.js +1 -1
  135. package/src/lightning/input/__examples__/number/number.html +0 -5
  136. package/src/lightning/input/__examples__/text/text.html +0 -1
  137. package/src/lightning/input/form-element.slds.css +281 -0
  138. package/src/lightning/input/input.css +2 -3
  139. package/src/lightning/input/input.html +154 -244
  140. package/src/lightning/input/input.js +306 -595
  141. package/src/lightning/inputAddress/__docs__/inputAddress.md +3 -3
  142. package/src/lightning/inputUtils/inputUtils.js +15 -20
  143. package/src/lightning/inputUtils/normalize.js +7 -0
  144. package/src/lightning/{input/numberUtil.js → inputUtils/number.js} +1 -1
  145. package/src/lightning/inputUtils/utils.js +18 -0
  146. package/src/lightning/internationalizationLibrary/README.md +24 -0
  147. package/src/lightning/internationalizationLibrary/utils.js +4 -1
  148. package/src/lightning/layout/__docs__/layout.md +1 -1
  149. package/src/lightning/layout/__examples__/simple/simple.css +1 -1
  150. package/src/lightning/layout/layout.css +5 -1
  151. package/src/lightning/layout/layout.js +4 -2
  152. package/src/lightning/layoutItem/__examples__/alignmentBump/alignmentBump.css +1 -1
  153. package/src/lightning/layoutItem/__examples__/sizePerDevice/sizePerDevice.css +0 -1
  154. package/src/lightning/layoutItem/layoutItem.css +5 -0
  155. package/src/lightning/layoutItem/layoutItem.js +4 -2
  156. package/src/lightning/menuDivider/menu-divider.slds.css +15 -0
  157. package/src/lightning/menuDivider/menuDivider.css +3 -0
  158. package/src/lightning/menuDivider/menuDivider.html +1 -1
  159. package/src/lightning/menuDivider/menuDivider.js +4 -2
  160. package/src/lightning/menuItem/menu-item.slds.css +140 -0
  161. package/src/lightning/menuItem/menuItem.css +3 -0
  162. package/src/lightning/menuItem/menuItem.html +43 -41
  163. package/src/lightning/menuItem/menuItem.js +4 -4
  164. package/src/lightning/menuSubheader/menu-subheader.slds.css +22 -0
  165. package/src/lightning/menuSubheader/menuSubheader.css +3 -0
  166. package/src/lightning/menuSubheader/menuSubheader.html +3 -1
  167. package/src/lightning/menuSubheader/menuSubheader.js +4 -6
  168. package/src/lightning/modal/__docs__/modal.md +3 -1
  169. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +267 -0
  170. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +1165 -0
  171. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +131 -0
  172. package/src/lightning/modal/modal.js +1 -1
  173. package/src/lightning/modalBody/__docs__/modalBody.md +9 -9
  174. package/src/lightning/modalFooter/__docs__/modalFooter.md +9 -9
  175. package/src/lightning/modalHeader/__docs__/modalHeader.md +9 -9
  176. package/src/lightning/overlayContainer/overlayContainer.js +4 -2
  177. package/src/lightning/pill/__docs__/pill.md +3 -3
  178. package/src/lightning/pill/avatar.slds.css +272 -0
  179. package/src/lightning/pill/link.css +3 -0
  180. package/src/lightning/pill/link.html +1 -1
  181. package/src/lightning/pill/pill.js +29 -9
  182. package/src/lightning/pill/pill.slds.css +168 -0
  183. package/src/lightning/pill/plain.css +3 -0
  184. package/src/lightning/pill/plain.html +1 -1
  185. package/src/lightning/pill/plainLink.css +3 -0
  186. package/src/lightning/pill/plainLink.html +1 -1
  187. package/src/lightning/pillContainer/__docs__/pillContainer.md +14 -14
  188. package/src/lightning/pillContainer/barePillContainer.css +3 -0
  189. package/src/lightning/pillContainer/barePillContainer.html +1 -2
  190. package/src/lightning/pillContainer/listbox.slds.css +267 -0
  191. package/src/lightning/pillContainer/pill-container.slds.css +22 -0
  192. package/src/lightning/pillContainer/pill.slds.css +168 -0
  193. package/src/lightning/pillContainer/pillContainer.js +7 -3
  194. package/src/lightning/pillContainer/standardPillContainer.css +4 -0
  195. package/src/lightning/pillContainer/standardPillContainer.html +2 -2
  196. package/src/lightning/popup/popover.slds.css +119 -119
  197. package/src/lightning/popup/popup.css +1 -2
  198. package/src/lightning/popup/popup.js +3 -2
  199. package/src/lightning/positionLibrary/elementProxy.js +7 -2
  200. package/src/lightning/positionLibrary/util.js +8 -0
  201. package/src/lightning/primitiveBubble/primitiveBubble.css +2 -2
  202. package/src/lightning/primitiveBubble/primitiveBubble.js +4 -2
  203. package/src/lightning/primitiveButton/primitiveButton.js +5 -4
  204. package/src/lightning/primitiveCellFactory/cellWithStandardLayout.html +29 -21
  205. package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +4 -0
  206. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +31 -19
  207. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.css +2 -2
  208. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +5 -3
  209. package/src/lightning/primitiveIcon/icon.slds.css +209 -0
  210. package/src/lightning/primitiveIcon/primitiveIcon.css +2 -1
  211. package/src/lightning/primitiveIcon/primitiveIcon.html +1 -1
  212. package/src/lightning/primitiveIcon/primitiveIcon.js +26 -16
  213. package/src/lightning/progressStep/progressStep.js +10 -13
  214. package/src/lightning/radioGroup/__docs__/radioGroup.md +4 -4
  215. package/src/lightning/radioGroup/radioGroup.css +2 -1
  216. package/src/lightning/radioGroup/radioGroup.js +4 -2
  217. package/src/lightning/select/__docs__/select.md +2 -2
  218. package/src/lightning/select/form-element.slds.css +83 -34
  219. package/src/lightning/select/select.css +2 -2
  220. package/src/lightning/select/select.js +4 -2
  221. package/src/lightning/select/select.slds.css +86 -34
  222. package/src/lightning/shadowBaseClassPrivate/shadowBaseClassPrivate.js +1 -1
  223. package/src/lightning/sldsCommon/sldsCommon.css +251 -89
  224. package/src/lightning/sldsUtilsAlignment/sldsUtilsAlignment.css +10 -0
  225. package/src/lightning/sldsUtilsAlignment/sldsUtilsAlignment.js-meta.xml +4 -0
  226. package/src/lightning/sldsUtilsBorders/sldsUtilsBorders.css +18 -0
  227. package/src/lightning/sldsUtilsBorders/sldsUtilsBorders.js-meta.xml +4 -0
  228. package/src/lightning/sldsUtilsBox/sldsUtilsBox.css +24 -0
  229. package/src/lightning/sldsUtilsBox/sldsUtilsBox.js-meta.xml +4 -0
  230. package/src/lightning/sldsUtilsFloats/sldsUtilsFloats.css +20 -0
  231. package/src/lightning/sldsUtilsFloats/sldsUtilsFloats.js-meta.xml +4 -0
  232. package/src/lightning/sldsUtilsGrid/sldsUtilsGrid.css +259 -0
  233. package/src/lightning/sldsUtilsGrid/sldsUtilsGrid.js-meta.xml +4 -0
  234. package/src/lightning/sldsUtilsHyphenation/sldsUtilsHyphenation.css +8 -0
  235. package/src/lightning/sldsUtilsHyphenation/sldsUtilsHyphenation.js-meta.xml +4 -0
  236. package/src/lightning/sldsUtilsLineClamp/sldsUtilsLineClamp.css +57 -0
  237. package/src/lightning/sldsUtilsLineClamp/sldsUtilsLineClamp.js-meta.xml +4 -0
  238. package/src/lightning/sldsUtilsMargin/sldsUtilsMargin.css +313 -0
  239. package/src/lightning/sldsUtilsMargin/sldsUtilsMargin.js-meta.xml +4 -0
  240. package/src/lightning/sldsUtilsPadding/sldsUtilsPadding.css +308 -0
  241. package/src/lightning/sldsUtilsPadding/sldsUtilsPadding.js-meta.xml +4 -0
  242. package/src/lightning/sldsUtilsPosition/sldsUtilsPosition.css +18 -0
  243. package/src/lightning/sldsUtilsPosition/sldsUtilsPosition.js-meta.xml +4 -0
  244. package/src/lightning/sldsUtilsSizing/sldsUtilsSizing.css +1408 -0
  245. package/src/lightning/sldsUtilsSizing/sldsUtilsSizing.js-meta.xml +4 -0
  246. package/src/lightning/sldsUtilsThemes/sldsUtilsThemes.css +295 -0
  247. package/src/lightning/sldsUtilsThemes/sldsUtilsThemes.js-meta.xml +4 -0
  248. package/src/lightning/sldsUtilsTruncation/sldsUtilsTruncation.css +14 -0
  249. package/src/lightning/sldsUtilsTruncation/sldsUtilsTruncation.js-meta.xml +4 -0
  250. package/src/lightning/slider/__docs__/slider.md +2 -2
  251. package/src/lightning/spinner/spinner.css +2 -2
  252. package/src/lightning/spinner/spinner.js +4 -2
  253. package/src/lightning/tabBar/tab-bar.slds.css +334 -0
  254. package/src/lightning/tabBar/tabBar.css +2 -0
  255. package/src/lightning/tabBar/tabBar.html +4 -3
  256. package/src/lightning/tabBar/tabBar.js +30 -3
  257. package/src/lightning/tabset/__docs__/tabset.md +2 -2
  258. package/src/lightning/tabset/tabset.html +5 -4
  259. package/src/lightning/tabset/tabset.js +29 -11
  260. package/src/lightning/textarea/__docs__/textarea.md +2 -2
  261. package/src/lightning/timepicker/form-element.slds.css +281 -0
  262. package/src/lightning/timepicker/timepicker.css +3 -0
  263. package/src/lightning/timepicker/timepicker.html +5 -1
  264. package/src/lightning/timepicker/timepicker.js +22 -17
  265. package/src/lightning/timepicker/timepicker.slds.css +18 -0
  266. package/src/lightning/toast/toast.js-meta.xml +2 -0
  267. package/src/lightning/toastContainer/__docs__/toastContainer.md +14 -34
  268. package/src/lightning/toastContainer/toastContainer.js +10 -15
  269. package/src/lightning/tooltipLibrary/tooltipLibrary.js +32 -23
  270. package/src/lightning/utilsPrivate/browser.js +5 -3
  271. package/src/lightning/utilsPrivate/os.js +6 -4
  272. package/src/lightning/utilsPrivate/ssr.js +4 -0
  273. package/src/lightning/utilsPrivate/utilsPrivate.js +2 -0
  274. package/src/lightning/verticalNavigation/verticalNavigation.css +2 -1
  275. package/src/lightning/verticalNavigation/verticalNavigation.js +3 -2
  276. package/src/lightning/verticalNavigationSection/verticalNavigationSection.css +2 -1
  277. package/src/lightning/verticalNavigationSection/verticalNavigationSection.js +3 -2
  278. package/src/lightning/accordion/__perf__DISABLED/accordion-perf-utils.js +0 -76
  279. package/src/lightning/accordion/__perf__DISABLED/accordion10Multiple25SectionEach.perf.js +0 -57
  280. package/src/lightning/accordion/__perf__DISABLED/accordion10Simple25SectionEach.perf.js +0 -37
  281. package/src/lightning/accordion/__perf__DISABLED/accordionMultiple50Section.perf.js +0 -45
  282. package/src/lightning/accordion/__perf__DISABLED/accordionSimple50Section.perf.js +0 -35
  283. package/src/lightning/accordion/__perf__DISABLED/container/container.html +0 -15
  284. package/src/lightning/accordion/__perf__DISABLED/container/container.js +0 -7
  285. package/src/lightning/iconUtils/isIframeInEdge.js +0 -7
  286. package/src/lightning/iconUtils/supportsSvg.js +0 -16
  287. package/src/lightning/input/input-checkbox.slds.css +0 -404
  288. package/src/lightning/input/input-text.slds.css +0 -287
  289. package/src/lightning/input/normalize.js +0 -6
  290. package/src/lightning/input/selection.js +0 -131
  291. package/src/lightning/positionLibrary/__component__/positionLibraryBounding.spec.js +0 -319
  292. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.css +0 -16
  293. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.html +0 -36
  294. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.js +0 -122
  295. /package/src/lightning/{baseCombobox → baseComboboxItem}/listbox.slds.css +0 -0
  296. /package/src/lightning/formattedRichText/{__examples__disabled → __examples__}/basic/basic.html +0 -0
  297. /package/src/lightning/formattedRichText/{__examples__disabled → __examples__}/basic/basic.js +0 -0
  298. /package/src/lightning/{input/emailUtil.js → inputUtils/email.js} +0 -0
@@ -1,6 +1,8 @@
1
- export const isIE11 = isIE11Test(navigator);
2
- export const isChrome = isChromeTest(navigator);
3
- export const isSafari = isSafariTest(navigator);
1
+ import { isCSR } from './ssr';
2
+
3
+ export const isIE11 = isCSR && isIE11Test(navigator);
4
+ export const isChrome = isCSR && isChromeTest(navigator);
5
+ export const isSafari = isCSR && isSafariTest(navigator);
4
6
 
5
7
  // The following functions are for tests only
6
8
  export function isIE11Test(navigator) {
@@ -1,3 +1,5 @@
1
+ import { isCSR } from './ssr';
2
+
1
3
  /**
2
4
  * Verify if user is using MAC OS or not
3
5
  * @returns {boolean} - true if Mac OS
@@ -30,7 +32,7 @@ export const isAndroidOSTest = ({ userAgent }) => {
30
32
  return /android/i.test(userAgent);
31
33
  };
32
34
 
33
- export const isMacOS = isMacOSTest(navigator);
34
- export const isWindowsOS = isWindowsOSTest(navigator);
35
- export const isiOS = isiOSTest(navigator);
36
- export const isAndroidOS = isAndroidOSTest(navigator);
35
+ export const isMacOS = isCSR && isMacOSTest(navigator);
36
+ export const isWindowsOS = isCSR && isWindowsOSTest(navigator);
37
+ export const isiOS = isCSR && isiOSTest(navigator);
38
+ export const isAndroidOS = isCSR && isAndroidOSTest(navigator);
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Determine if environment is CSR or SSR
3
+ */
4
+ export const isCSR = typeof window !== 'undefined';
@@ -51,6 +51,8 @@ export {
51
51
  isHeadingLevelValid,
52
52
  } from './ariaLevelHeadingUtils.js';
53
53
 
54
+ export { isCSR } from './ssr';
55
+
54
56
  /**
55
57
  * @param {HTMLElement} element Element to act on
56
58
  * @param {Object} values values and attributes to set, if the value is
@@ -1 +1,2 @@
1
- /* @import './vertical-navigation.slds.css'; */
1
+ @import 'lightning/sldsCommon';
2
+ @import './vertical-navigation.slds.css';
@@ -1,4 +1,5 @@
1
- import { LightningElement, api, track } from 'lwc';
1
+ import { api, track } from 'lwc';
2
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
2
3
  import { classSet } from 'lightning/utils';
3
4
  import {
4
5
  assert,
@@ -17,7 +18,7 @@ const ALLOWED_CHILDREN = [
17
18
  * A vertical list of links that either take the user to another page or parts of the page the user is in.
18
19
  * @slot default Placeholder for lightning-vertical-navigation-section and lightning-vertical-navigation-overflow.
19
20
  */
20
- export default class LightningVerticalNavigation extends LightningElement {
21
+ export default class LightningVerticalNavigation extends LightningShadowBaseClass {
21
22
  @track _compact;
22
23
  @track _shaded;
23
24
  @track _selectedItem;
@@ -1,4 +1,5 @@
1
- /* @import './vertical-navigation-section.slds.css'; */
1
+ @import 'lightning/sldsCommon';
2
+ @import './vertical-navigation-section.slds.css';
2
3
 
3
4
  div[role="list"] {
4
5
  list-style: none;
@@ -1,7 +1,8 @@
1
- import { LightningElement, api, track } from 'lwc';
1
+ import { api, track } from 'lwc';
2
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
2
3
  import { guid, isHeadingLevelValid } from 'lightning/utilsPrivate';
3
4
 
4
- export default class LightningVerticalNavigationSection extends LightningElement {
5
+ export default class LightningVerticalNavigationSection extends LightningShadowBaseClass {
5
6
  headingId = guid();
6
7
 
7
8
  @track _label;
@@ -1,76 +0,0 @@
1
- /**
2
- * Generates N Sections belonging to the ownerAccordionId.
3
- *
4
- * @param {Integer} n - The number of sections to generate
5
- * @param {String} ownerAccordionId - The owner accordion of these sections (the section name will be prefixed with it)
6
- * @return {Array} The generated sections.
7
- */
8
- export function generateSections(n, ownerAccordionId) {
9
- const result = [];
10
-
11
- for (let i = 0; i < n; i++) {
12
- result.push({
13
- name: `${ownerAccordionId}-section-${i}`,
14
- label: `${ownerAccordionId}-label-for-section-${i}`,
15
- content: `${ownerAccordionId}-content-${i} Content paragraph`,
16
- });
17
- }
18
-
19
- return result;
20
- }
21
-
22
- /**
23
- * Gets an array of section names belonging to ownerAccordionId accordion.
24
- *
25
- * @param {String} ownerAccordionId - the owner accordion id.
26
- * @param {Integer} firstSectionId - Start getting names from $firstSectionId section.
27
- * @param {Integer} sectionIdIncrement - The gap between sections (sectionIdIncrement - 1)
28
- * @param {Integer} maxSectionId - The max sectionId that is allowed to be returned
29
- * @return {Array} The sections names satisfying the above constrains.
30
- */
31
- export function getSectionNames({
32
- ownerAccordionId,
33
- firstSectionId,
34
- sectionIdIncrement,
35
- maxSectionId,
36
- }) {
37
- const result = [];
38
-
39
- for (let i = firstSectionId; i < maxSectionId; i += sectionIdIncrement) {
40
- result.push(`${ownerAccordionId}-section-${i}`);
41
- }
42
-
43
- return result;
44
- }
45
-
46
- /**
47
- * Generates N accordions data. Each one with the following:
48
- * - activeSectionName: For accordion i, the open section is i. Ex: acc-2 has open the section 2 (acc-2-section-2)
49
- * - sections: An array of sections containing nSections.
50
- * - allowMultipleSectionsOpen: true or false according allowMultipleSectionsOpen.
51
- *
52
- * @param {Integer} numberOfAccordions - number of accordions to generate (0..N-1)
53
- * @param {Integer} numberOfSectionsPerAccordion - number of sections to generate for each accordion.
54
- * @param {Boolean} [allowMultipleSectionsOpen=false] - whether or not the accordions allow multiple sections open at one time.
55
- * @return {Array} - The generated accordions.
56
- */
57
- export function generateAccordions({
58
- numberOfAccordions,
59
- numberOfSectionsPerAccordion,
60
- allowMultipleSectionsOpen = false,
61
- }) {
62
- const results = [];
63
-
64
- for (let i = 0; i < numberOfAccordions; i++) {
65
- results.push({
66
- activeSectionName: `acc-${i}-section-${i}`,
67
- allowMultipleSectionsOpen,
68
- sections: generateSections(
69
- numberOfSectionsPerAccordion,
70
- 'acc-' + i
71
- ),
72
- });
73
- }
74
-
75
- return results;
76
- }
@@ -1,57 +0,0 @@
1
- import { measure, main } from '../../../perf';
2
- import { createElement } from 'lwc';
3
- import PerfAccordionContainer from './container/container';
4
- import { generateAccordions, getSectionNames } from './accordion-perf-utils';
5
-
6
- const measureName = 'accordion-10-multiple-25-sections-each';
7
-
8
- // eslint-disable-next-line no-undef
9
- measure(measureName, 10, benchmark, run, (tag, run) => {
10
- const elements = [];
11
- const accordions = generateAccordions({
12
- numberOfAccordions: 10,
13
- numberOfSectionsPerAccordion: 25,
14
- allowMultipleSectionsOpen: true,
15
- });
16
-
17
- // we need to rewrite the open sections
18
- for (let i = 0, n = accordions.length; i < n; i++) {
19
- accordions[i].activeSectionName = getSectionNames({
20
- ownerAccordionId: 'acc-' + i,
21
- firstSectionId: 0,
22
- sectionIdIncrement: 2,
23
- maxSectionId: 25,
24
- });
25
- }
26
-
27
- // lets store the new values for sections in the update
28
- const openUpdates = [];
29
-
30
- for (let i = 0, n = accordions.length; i < n; i++) {
31
- openUpdates[i] = getSectionNames({
32
- ownerAccordionId: 'acc-' + i,
33
- firstSectionId: 1,
34
- sectionIdIncrement: 2,
35
- maxSectionId: 25,
36
- });
37
- }
38
-
39
- run('create', (i) => {
40
- const element = createElement(tag, { is: PerfAccordionContainer });
41
- Object.assign(element, accordions[i]);
42
-
43
- elements[i] = element;
44
- });
45
-
46
- run('append', (i) => {
47
- main.appendChild(elements[i]);
48
- });
49
-
50
- run('update - open a section', (i) => {
51
- elements[i].activeSectionName = openUpdates[i];
52
- });
53
-
54
- run('remove', (i) => {
55
- main.removeChild(elements[i]);
56
- });
57
- });
@@ -1,37 +0,0 @@
1
- import { measure, main } from '../../../perf';
2
- import { createElement } from 'lwc';
3
- import PerfAccordionContainer from './container/container';
4
- import { generateAccordions } from './accordion-perf-utils';
5
-
6
- const measureName = 'accordion-10-single-25-sections-each';
7
-
8
- // eslint-disable-next-line no-undef
9
- measure(measureName, 10, benchmark, run, (tag, run) => {
10
- const elements = [];
11
- const accordions = generateAccordions({
12
- numberOfAccordions: 10,
13
- numberOfSectionsPerAccordion: 25,
14
- allowMultipleSectionsOpen: false,
15
- });
16
-
17
- run('create', (i) => {
18
- const element = createElement(tag, { is: PerfAccordionContainer });
19
- Object.assign(element, accordions[i]);
20
-
21
- elements[i] = element;
22
- });
23
-
24
- run('append', (i) => {
25
- main.appendChild(elements[i]);
26
- });
27
-
28
- run('update - open a section', (i) => {
29
- // section 20 is always closed given that in the accordion i the open section is i,
30
- // and we only have 10 accordions with 25 sections each
31
- elements[i].activeSectionName = 'acc-' + i + '-section-20';
32
- });
33
-
34
- run('remove', (i) => {
35
- main.removeChild(elements[i]);
36
- });
37
- });
@@ -1,45 +0,0 @@
1
- import { measure, main } from '../../../perf';
2
- import { createElement } from 'lwc';
3
- import PerfAccordionContainer from './container/container';
4
- import { generateSections, getSectionNames } from './accordion-perf-utils';
5
-
6
- const measureName = 'accordion-1-multipleSection-50-sections';
7
-
8
- // eslint-disable-next-line no-undef
9
- measure(measureName, 1, benchmark, run, (tag, run) => {
10
- const elements = [];
11
- const accordion = {
12
- activeSectionName: getSectionNames({
13
- ownerAccordionId: 'acc-1',
14
- firstSectionId: 0,
15
- sectionIdIncrement: 2,
16
- maxSectionId: 50,
17
- }),
18
- allowMultipleSectionsOpen: true,
19
- sections: generateSections(50, 'acc-1'),
20
- };
21
-
22
- run('create', (i) => {
23
- const element = createElement(tag, { is: PerfAccordionContainer });
24
- Object.assign(element, accordion);
25
-
26
- elements[i] = element;
27
- });
28
-
29
- run('append', (i) => {
30
- main.appendChild(elements[i]);
31
- });
32
-
33
- run('update - open/close a section', (i) => {
34
- elements[i].activeSectionName = getSectionNames({
35
- ownerAccordionId: 'acc-1',
36
- firstSectionId: 1,
37
- sectionIdIncrement: 2,
38
- maxSectionId: 50,
39
- });
40
- });
41
-
42
- run('remove', (i) => {
43
- main.removeChild(elements[i]);
44
- });
45
- });
@@ -1,35 +0,0 @@
1
- import { measure, main } from '../../../perf';
2
- import { createElement } from 'lwc';
3
- import PerfAccordionContainer from './container/container';
4
- import { generateSections } from './accordion-perf-utils';
5
-
6
- const measureName = 'accordion-1-singleSection-50-sections';
7
-
8
- // eslint-disable-next-line no-undef
9
- measure(measureName, 1, benchmark, run, (tag, run) => {
10
- const elements = [];
11
- const accordion = {
12
- activeSectionName: 'acc-1-section-10', // section 10 is open
13
- allowMultipleSectionsOpen: false,
14
- sections: generateSections(50, 'acc-1'),
15
- };
16
-
17
- run('create', (i) => {
18
- const element = createElement(tag, { is: PerfAccordionContainer });
19
- Object.assign(element, accordion);
20
-
21
- elements[i] = element;
22
- });
23
-
24
- run('append', (i) => {
25
- main.appendChild(elements[i]);
26
- });
27
-
28
- run('update - open a section', (i) => {
29
- elements[i].activeSectionName = 'acc-1-section-30';
30
- });
31
-
32
- run('remove', (i) => {
33
- main.removeChild(elements[i]);
34
- });
35
- });
@@ -1,15 +0,0 @@
1
- <template>
2
- <lightning-accordion
3
- active-section-name={activeSectionName}
4
- allow-multiple-sections-open={allowMultipleSectionsOpen}
5
- >
6
- <template for:each={sections} for:item="section">
7
- <lightning-accordion-section
8
- key={section.name}
9
- name={section.name}
10
- label={section.label}>
11
- <p>{section.content}</p>
12
- </lightning-accordion-section>
13
- </template>
14
- </lightning-accordion>
15
- </template>
@@ -1,7 +0,0 @@
1
- import { LightningElement, api } from 'lwc';
2
-
3
- export default class PerfAccordionContainer extends LightningElement {
4
- @api activeSectionName;
5
- @api sections = [];
6
- @api allowMultipleSectionsOpen = false;
7
- }
@@ -1,7 +0,0 @@
1
- // Taken from https://github.com/jonathantneal/svg4everybody/pull/139
2
- // Remove this iframe-in-edge check once the following is resolved https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8323875/
3
- const isEdgeUA = /\bEdge\/.(\d+)\b/.test(navigator.userAgent);
4
- const inIframe = window.top !== window.self;
5
- const isIframeInEdge = isEdgeUA && inIframe;
6
-
7
- export default isIframeInEdge;
@@ -1,16 +0,0 @@
1
- import isIframeInEdge from './isIframeInEdge';
2
-
3
- // Taken from https://git.soma.salesforce.com/aura/lightning-global/blob/999dc35f948246181510df6e56f45ad4955032c2/src/main/components/lightning/SVGLibrary/stamper.js#L89-L98
4
- // Which looks like it was inspired by https://github.com/jonathantneal/svg4everybody/blob/377d27208fcad3671ed466e9511556cb9c8b5bd8/lib/svg4everybody.js#L92-L107
5
- // Modify at your own risk!
6
- const newerIEUA = /\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/;
7
- const webkitUA = /\bAppleWebKit\/(\d+)\b/;
8
- const olderEdgeUA = /\bEdge\/12\.(\d+)\b/;
9
- const isIE =
10
- newerIEUA.test(navigator.userAgent) ||
11
- (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 ||
12
- (navigator.userAgent.match(webkitUA) || [])[1] < 537;
13
-
14
- const supportsSvg = !isIE && !isIframeInEdge;
15
-
16
- export default supportsSvg;