@salesforcedevs/dx-components 0.26.1-alpha0.6 → 0.27.0

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 (327) hide show
  1. package/LICENSE +12 -0
  2. package/lwc.config.json +2 -1
  3. package/package.json +3 -9
  4. package/src/assets/icons/action-sprite/svg/symbols.svg +1 -0
  5. package/src/assets/icons/brand-sprite/svg/symbols.svg +1381 -0
  6. package/src/assets/icons/custom-sprite/svg/symbols.svg +1 -0
  7. package/src/assets/icons/doctype-sprite/svg/symbols.svg +1 -0
  8. package/src/assets/icons/general-sprite/svg/symbols.svg +3013 -0
  9. package/src/assets/icons/salesforcebrand-sprite/svg/symbols.svg +257 -0
  10. package/src/assets/icons/standard-sprite/svg/symbols.svg +1 -0
  11. package/src/assets/icons/utility-sprite/svg/symbols.svg +1 -0
  12. package/src/assets/svg/card-news-learn-moar.svg +415 -0
  13. package/src/assets/svg/cloud-1.svg +24 -0
  14. package/src/assets/svg/cloud-2.svg +18 -0
  15. package/src/assets/svg/codey.svg +93 -0
  16. package/src/assets/svg/command.svg +9 -0
  17. package/src/assets/svg/control.svg +10 -0
  18. package/src/assets/svg/docs-empty-state-small.svg +72 -0
  19. package/src/assets/svg/docs-empty-state.svg +86 -0
  20. package/src/assets/svg/dsc-home-news-bear.svg +3 -0
  21. package/src/assets/svg/dsc-home-news-community.png +0 -0
  22. package/src/assets/svg/dsc-home-news-goatbear.svg +257 -0
  23. package/src/assets/svg/dsc-home-news-samplegallery.svg +76 -0
  24. package/src/assets/svg/empty-state-assistant.svg +1 -0
  25. package/src/assets/svg/fch-blog-cloud-1.png +0 -0
  26. package/src/assets/svg/fch-blog-cloud-2.png +0 -0
  27. package/src/assets/svg/fch-blog-planet.png +0 -0
  28. package/src/assets/svg/feature-backdrop1.svg +10 -0
  29. package/src/assets/svg/feature-backdrop2.svg +10 -0
  30. package/src/assets/svg/featured-demo-art-blank.svg +76 -0
  31. package/src/assets/svg/featured-demo-art-eBikes.svg +77 -0
  32. package/src/assets/svg/footer-graphic-large.svg +207 -0
  33. package/src/assets/svg/footer-graphic-mountains-small.svg +17 -0
  34. package/src/assets/svg/footer-graphic-mountains.svg +21 -0
  35. package/src/assets/svg/footer-graphic-trees-small.svg +33 -0
  36. package/src/assets/svg/footer-graphic-trees.svg +62 -0
  37. package/src/assets/svg/lake-mountain.svg +79 -0
  38. package/src/assets/svg/podcast-subscription-clouds-small.svg +49 -0
  39. package/src/assets/svg/podcast-subscription-clouds.svg +57 -0
  40. package/src/assets/svg/podcasts-subscription-apple.svg +164 -0
  41. package/src/assets/svg/podcasts-subscription-google.svg +29 -0
  42. package/src/assets/svg/podcasts-subscription-spotify.svg +11 -0
  43. package/src/assets/svg/salesforce-cloud.svg +7 -0
  44. package/src/assets/svg/salesforce-logo-corporate.svg +21 -0
  45. package/src/assets/svg/salesforce-logo.svg +14 -0
  46. package/src/assets/svg/sidebar-loading.svg +34 -0
  47. package/src/assets/svg/slack-cta-podcast-background-left.svg +28 -0
  48. package/src/assets/svg/slack-cta-podcast-background-right.svg +38 -0
  49. package/src/assets/svg/trees.svg +42 -0
  50. package/src/modules/base-elements/archiveCard/archiveCard.ts +35 -0
  51. package/src/modules/base-elements/headerBase/headerBase.ts +204 -0
  52. package/src/modules/dx/banner/banner.css +46 -0
  53. package/src/modules/dx/banner/banner.html +13 -0
  54. package/src/modules/dx/banner/banner.ts +14 -0
  55. package/src/modules/dx/brandThemeProvider/brandCssVars.ts +10 -0
  56. package/src/modules/dx/brandThemeProvider/brandThemeProvider.html +3 -0
  57. package/src/modules/dx/brandThemeProvider/brandThemeProvider.ts +46 -0
  58. package/src/modules/dx/breadcrumbs/breadcrumbs.css +111 -0
  59. package/src/modules/dx/breadcrumbs/breadcrumbs.html +44 -0
  60. package/src/modules/dx/breadcrumbs/breadcrumbs.ts +122 -0
  61. package/src/modules/dx/button/button.css +175 -0
  62. package/src/modules/dx/button/button.html +43 -0
  63. package/src/modules/dx/button/button.ts +63 -0
  64. package/src/modules/dx/cardBlogPost/cardBlogPost.css +13 -0
  65. package/src/modules/dx/cardBlogPost/cardBlogPost.html +24 -0
  66. package/src/modules/dx/cardBlogPost/cardBlogPost.ts +23 -0
  67. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.css +3 -0
  68. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.html +16 -0
  69. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.ts +29 -0
  70. package/src/modules/dx/cardCallout/cardCallout.css +57 -0
  71. package/src/modules/dx/cardCallout/cardCallout.html +15 -0
  72. package/src/modules/dx/cardCallout/cardCallout.ts +37 -0
  73. package/src/modules/dx/cardContent/cardContent.css +52 -0
  74. package/src/modules/dx/cardContent/cardContent.html +59 -0
  75. package/src/modules/dx/cardContent/cardContent.ts +68 -0
  76. package/src/modules/dx/cardDemo/cardDemo.css +1 -0
  77. package/src/modules/dx/cardDemo/cardDemo.html +12 -0
  78. package/src/modules/dx/cardDemo/cardDemo.ts +11 -0
  79. package/src/modules/dx/cardDocs/cardDocs.css +50 -0
  80. package/src/modules/dx/cardDocs/cardDocs.html +20 -0
  81. package/src/modules/dx/cardDocs/cardDocs.ts +30 -0
  82. package/src/modules/dx/cardEvent/cardEvent.css +107 -0
  83. package/src/modules/dx/cardEvent/cardEvent.html +94 -0
  84. package/src/modules/dx/cardEvent/cardEvent.ts +42 -0
  85. package/src/modules/dx/cardExpanded/cardExpanded.css +49 -0
  86. package/src/modules/dx/cardExpanded/cardExpanded.html +37 -0
  87. package/src/modules/dx/cardExpanded/cardExpanded.ts +45 -0
  88. package/src/modules/dx/cardGrid/cardGrid.css +89 -0
  89. package/src/modules/dx/cardGrid/cardGrid.html +46 -0
  90. package/src/modules/dx/cardGrid/cardGrid.ts +140 -0
  91. package/src/modules/dx/cardMinimal/cardMinimal.css +31 -0
  92. package/src/modules/dx/cardMinimal/cardMinimal.html +13 -0
  93. package/src/modules/dx/cardMinimal/cardMinimal.ts +3 -0
  94. package/src/modules/dx/cardNews/cardNews.css +159 -0
  95. package/src/modules/dx/cardNews/cardNews.html +37 -0
  96. package/src/modules/dx/cardNews/cardNews.ts +62 -0
  97. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.css +19 -0
  98. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.html +36 -0
  99. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.ts +36 -0
  100. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.css +3 -0
  101. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.html +12 -0
  102. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.ts +29 -0
  103. package/src/modules/dx/cardSmall/cardSmall.css +32 -0
  104. package/src/modules/dx/cardSmall/cardSmall.html +42 -0
  105. package/src/modules/dx/cardSmall/cardSmall.ts +38 -0
  106. package/src/modules/dx/cardTitle/cardTitle.css +41 -0
  107. package/src/modules/dx/cardTitle/cardTitle.html +20 -0
  108. package/src/modules/dx/cardTitle/cardTitle.ts +27 -0
  109. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.css +24 -0
  110. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.html +20 -0
  111. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.ts +18 -0
  112. package/src/modules/dx/cardVideoPreview/cardVideoPreview.css +14 -0
  113. package/src/modules/dx/cardVideoPreview/cardVideoPreview.html +26 -0
  114. package/src/modules/dx/cardVideoPreview/cardVideoPreview.ts +13 -0
  115. package/src/modules/dx/checkbox/checkbox.css +168 -0
  116. package/src/modules/dx/checkbox/checkbox.html +26 -0
  117. package/src/modules/dx/checkbox/checkbox.ts +55 -0
  118. package/src/modules/dx/checkboxGroup/checkboxGroup.css +12 -0
  119. package/src/modules/dx/checkboxGroup/checkboxGroup.html +15 -0
  120. package/src/modules/dx/checkboxGroup/checkboxGroup.ts +77 -0
  121. package/src/modules/dx/codeBlock/codeBlock.css +128 -0
  122. package/src/modules/dx/codeBlock/codeBlock.html +79 -0
  123. package/src/modules/dx/codeBlock/codeBlock.ts +215 -0
  124. package/src/modules/dx/codeBlock/darkTheme.css +88 -0
  125. package/src/modules/dx/codeBlock/lightTheme.css +72 -0
  126. package/src/modules/dx/dropdown/dropdown.css +93 -0
  127. package/src/modules/dx/dropdown/dropdown.html +67 -0
  128. package/src/modules/dx/dropdown/dropdown.ts +182 -0
  129. package/src/modules/dx/dropdownOption/dropdownOption.css +61 -0
  130. package/src/modules/dx/dropdownOption/dropdownOption.html +53 -0
  131. package/src/modules/dx/dropdownOption/dropdownOption.ts +39 -0
  132. package/src/modules/dx/emptyState/emptyState.css +64 -0
  133. package/src/modules/dx/emptyState/emptyState.html +9 -0
  134. package/src/modules/dx/emptyState/emptyState.ts +20 -0
  135. package/src/modules/dx/feature/feature.css +135 -0
  136. package/src/modules/dx/feature/feature.html +33 -0
  137. package/src/modules/dx/feature/feature.ts +34 -0
  138. package/src/modules/dx/featureGrid/featureGrid.html +3 -0
  139. package/src/modules/dx/featureGrid/featureGrid.ts +15 -0
  140. package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +469 -0
  141. package/src/modules/dx/featuredContentHeader/featuredContentHeader.html +96 -0
  142. package/src/modules/dx/featuredContentHeader/featuredContentHeader.ts +113 -0
  143. package/src/modules/dx/featuredContentHeader/svgs.ts +35 -0
  144. package/src/modules/dx/featuresList/featuresList.css +24 -0
  145. package/src/modules/dx/featuresList/featuresList.html +20 -0
  146. package/src/modules/dx/featuresList/featuresList.ts +21 -0
  147. package/src/modules/dx/footer/footer.css +405 -0
  148. package/src/modules/dx/footer/footer.html +145 -0
  149. package/src/modules/dx/footer/footer.ts +124 -0
  150. package/src/modules/dx/footer/links.ts +140 -0
  151. package/src/modules/dx/footerOption/footerOption.css +4 -0
  152. package/src/modules/dx/footerOption/footerOption.html +12 -0
  153. package/src/modules/dx/footerOption/footerOption.ts +19 -0
  154. package/src/modules/dx/formattedDateTime/formattedDateTime.html +1 -0
  155. package/src/modules/dx/formattedDateTime/formattedDateTime.ts +72 -0
  156. package/src/modules/dx/grid/grid.css +48 -0
  157. package/src/modules/dx/grid/grid.html +3 -0
  158. package/src/modules/dx/grid/grid.md +14 -0
  159. package/src/modules/dx/grid/grid.ts +72 -0
  160. package/src/modules/dx/groupBio/groupBio.css +49 -0
  161. package/src/modules/dx/groupBio/groupBio.html +29 -0
  162. package/src/modules/dx/groupBio/groupBio.ts +41 -0
  163. package/src/modules/dx/groupText/groupText.css +119 -0
  164. package/src/modules/dx/groupText/groupText.html +65 -0
  165. package/src/modules/dx/groupText/groupText.ts +93 -0
  166. package/src/modules/dx/headTags/headTags.html +3 -0
  167. package/src/modules/dx/headTags/headTags.ts +39 -0
  168. package/src/modules/dx/header/__benchmarks__/header.benchmark.js +45 -0
  169. package/src/modules/dx/header/header.css +109 -0
  170. package/src/modules/dx/header/header.html +129 -0
  171. package/src/modules/dx/header/header.ts +27 -0
  172. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.css +160 -0
  173. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.html +73 -0
  174. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.ts +102 -0
  175. package/src/modules/dx/headerMobileNavMenuOption/headerMobileNavMenuOption.css +5 -0
  176. package/src/modules/dx/headerMobileNavMenuOption/headerMobileNavMenuOption.html +14 -0
  177. package/src/modules/dx/headerMobileNavMenuOption/headerMobileNavMenuOption.ts +20 -0
  178. package/src/modules/dx/headerNav/headerNav.css +31 -0
  179. package/src/modules/dx/headerNav/headerNav.html +48 -0
  180. package/src/modules/dx/headerNav/headerNav.ts +56 -0
  181. package/src/modules/dx/headerSearch/headerSearch.css +62 -0
  182. package/src/modules/dx/headerSearch/headerSearch.html +64 -0
  183. package/src/modules/dx/headerSearch/headerSearch.ts +159 -0
  184. package/src/modules/dx/helmet/helmet.css +83 -0
  185. package/src/modules/dx/helmet/helmet.html +39 -0
  186. package/src/modules/dx/helmet/helmet.ts +27 -0
  187. package/src/modules/dx/hr/hr.css +55 -0
  188. package/src/modules/dx/hr/hr.html +23 -0
  189. package/src/modules/dx/hr/hr.ts +45 -0
  190. package/src/modules/dx/icon/icon.css +14 -0
  191. package/src/modules/dx/icon/icon.html +11 -0
  192. package/src/modules/dx/icon/icon.ts +85 -0
  193. package/src/modules/dx/iconBadge/iconBadge.css +40 -0
  194. package/src/modules/dx/iconBadge/iconBadge.html +10 -0
  195. package/src/modules/dx/iconBadge/iconBadge.ts +42 -0
  196. package/src/modules/dx/imageAndLabel/imageAndLabel.css +54 -0
  197. package/src/modules/dx/imageAndLabel/imageAndLabel.html +22 -0
  198. package/src/modules/dx/imageAndLabel/imageAndLabel.ts +16 -0
  199. package/src/modules/dx/input/input.css +165 -0
  200. package/src/modules/dx/input/input.html +58 -0
  201. package/src/modules/dx/input/input.ts +238 -0
  202. package/src/modules/dx/input/validators.ts +5 -0
  203. package/src/modules/dx/instrumentation/instrumentation.html +1 -0
  204. package/src/modules/dx/instrumentation/instrumentation.ts +116 -0
  205. package/src/modules/dx/interactiveImage/interactiveImage.css +59 -0
  206. package/src/modules/dx/interactiveImage/interactiveImage.html +32 -0
  207. package/src/modules/dx/interactiveImage/interactiveImage.ts +71 -0
  208. package/src/modules/dx/lazy/lazy.html +5 -0
  209. package/src/modules/dx/lazy/lazy.ts +163 -0
  210. package/src/modules/dx/logo/logo.css +33 -0
  211. package/src/modules/dx/logo/logo.html +6 -0
  212. package/src/modules/dx/logo/logo.ts +8 -0
  213. package/src/modules/dx/modalDrawer/modalDrawer.css +40 -0
  214. package/src/modules/dx/modalDrawer/modalDrawer.html +11 -0
  215. package/src/modules/dx/modalDrawer/modalDrawer.ts +27 -0
  216. package/src/modules/dx/newsletterForm/newsletterForm.css +73 -0
  217. package/src/modules/dx/newsletterForm/newsletterForm.html +73 -0
  218. package/src/modules/dx/newsletterForm/newsletterForm.ts +238 -0
  219. package/src/modules/dx/pagination/pagination.css +51 -0
  220. package/src/modules/dx/pagination/pagination.html +45 -0
  221. package/src/modules/dx/pagination/pagination.ts +93 -0
  222. package/src/modules/dx/podcastHost/podcastHost.css +62 -0
  223. package/src/modules/dx/podcastHost/podcastHost.html +28 -0
  224. package/src/modules/dx/podcastHost/podcastHost.ts +13 -0
  225. package/src/modules/dx/podcastPlayer/podcastPlayer.css +10 -0
  226. package/src/modules/dx/podcastPlayer/podcastPlayer.html +3 -0
  227. package/src/modules/dx/podcastPlayer/podcastPlayer.ts +5 -0
  228. package/src/modules/dx/podcastSubscription/podcastSubscription.css +91 -0
  229. package/src/modules/dx/podcastSubscription/podcastSubscription.html +24 -0
  230. package/src/modules/dx/podcastSubscription/podcastSubscription.ts +58 -0
  231. package/src/modules/dx/popover/popover.css +63 -0
  232. package/src/modules/dx/popover/popover.html +16 -0
  233. package/src/modules/dx/popover/popover.ts +313 -0
  234. package/src/modules/dx/radioGroup/radioGroup.css +12 -0
  235. package/src/modules/dx/radioGroup/radioGroup.html +16 -0
  236. package/src/modules/dx/radioGroup/radioGroup.ts +65 -0
  237. package/src/modules/dx/relativeDateTime/relativeDateTime.html +3 -0
  238. package/src/modules/dx/relativeDateTime/relativeDateTime.ts +113 -0
  239. package/src/modules/dx/searchResults/coveo.css +18989 -0
  240. package/src/modules/dx/searchResults/searchResults.css +387 -0
  241. package/src/modules/dx/searchResults/searchResults.html +104 -0
  242. package/src/modules/dx/searchResults/searchResults.ts +186 -0
  243. package/src/modules/dx/section/section.css +130 -0
  244. package/src/modules/dx/section/section.html +66 -0
  245. package/src/modules/dx/section/section.ts +41 -0
  246. package/src/modules/dx/sectionSignup/sectionSignup.css +43 -0
  247. package/src/modules/dx/sectionSignup/sectionSignup.html +23 -0
  248. package/src/modules/dx/sectionSignup/sectionSignup.ts +44 -0
  249. package/src/modules/dx/select/select.css +44 -0
  250. package/src/modules/dx/select/select.html +60 -0
  251. package/src/modules/dx/select/select.ts +23 -0
  252. package/src/modules/dx/sidebar/sidebar.css +192 -0
  253. package/src/modules/dx/sidebar/sidebar.html +94 -0
  254. package/src/modules/dx/sidebar/sidebar.ts +255 -0
  255. package/src/modules/dx/sidebarOld/sidebarOld.css +160 -0
  256. package/src/modules/dx/sidebarOld/sidebarOld.html +70 -0
  257. package/src/modules/dx/sidebarOld/sidebarOld.ts +187 -0
  258. package/src/modules/dx/sidebarSearch/sidebarSearch.css +3 -0
  259. package/src/modules/dx/sidebarSearch/sidebarSearch.html +26 -0
  260. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +437 -0
  261. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.css +36 -0
  262. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.html +14 -0
  263. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.ts +70 -0
  264. package/src/modules/dx/skipNavLink/skipNavLink.css +21 -0
  265. package/src/modules/dx/skipNavLink/skipNavLink.html +3 -0
  266. package/src/modules/dx/skipNavLink/skipNavLink.ts +3 -0
  267. package/src/modules/dx/slackCta/slackCta.css +47 -0
  268. package/src/modules/dx/slackCta/slackCta.html +17 -0
  269. package/src/modules/dx/slackCta/slackCta.ts +12 -0
  270. package/src/modules/dx/socials/socials.css +35 -0
  271. package/src/modules/dx/socials/socials.html +22 -0
  272. package/src/modules/dx/socials/socials.ts +81 -0
  273. package/src/modules/dx/spinner/spinner.css +750 -0
  274. package/src/modules/dx/spinner/spinner.html +6 -0
  275. package/src/modules/dx/spinner/spinner.ts +20 -0
  276. package/src/modules/dx/tab/tab.css +106 -0
  277. package/src/modules/dx/tab/tab.html +13 -0
  278. package/src/modules/dx/tab/tab.ts +52 -0
  279. package/src/modules/dx/toc/toc.css +94 -0
  280. package/src/modules/dx/toc/toc.html +28 -0
  281. package/src/modules/dx/toc/toc.ts +77 -0
  282. package/src/modules/dx/tooltip/microtip.css +269 -0
  283. package/src/modules/dx/tooltip/tooltip.css +36 -0
  284. package/src/modules/dx/tooltip/tooltip.html +5 -0
  285. package/src/modules/dx/tooltip/tooltip.ts +6 -0
  286. package/src/modules/dx/topics/topics.css +25 -0
  287. package/src/modules/dx/topics/topics.html +12 -0
  288. package/src/modules/dx/topics/topics.ts +25 -0
  289. package/src/modules/dx/tree/tree.css +5 -0
  290. package/src/modules/dx/tree/tree.html +11 -0
  291. package/src/modules/dx/tree/tree.ts +72 -0
  292. package/src/modules/dx/tree/treeHandler.ts +100 -0
  293. package/src/modules/dx/treeItem/treeItem.css +14 -0
  294. package/src/modules/dx/treeItem/treeItem.html +22 -0
  295. package/src/modules/dx/treeItem/treeItem.ts +110 -0
  296. package/src/modules/dx/treeTile/treeTile.css +190 -0
  297. package/src/modules/dx/treeTile/treeTile.html +27 -0
  298. package/src/modules/dx/treeTile/treeTile.ts +59 -0
  299. package/src/modules/dx/typeBadge/typeBadge.css +74 -0
  300. package/src/modules/dx/typeBadge/typeBadge.html +5 -0
  301. package/src/modules/dx/typeBadge/typeBadge.ts +65 -0
  302. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.css +12 -0
  303. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.html +11 -0
  304. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.ts +18 -0
  305. package/src/modules/helpers/animations/animations.css +15 -0
  306. package/src/modules/helpers/button/button.css +4 -0
  307. package/src/modules/helpers/card/card.css +258 -0
  308. package/src/modules/helpers/code/code.css +296 -0
  309. package/src/modules/helpers/commonHeader/commonHeader.css +130 -0
  310. package/src/modules/helpers/reset/reset.css +559 -0
  311. package/src/modules/helpers/sidebar/sidebar.css +21 -0
  312. package/src/modules/helpers/slds/slds.css +191 -0
  313. package/src/modules/helpers/table/table.css +110 -0
  314. package/src/modules/helpers/text/text.css +163 -0
  315. package/src/modules/utils/coveo/coveo.ts +70 -0
  316. package/src/modules/utils/css/css.ts +43 -0
  317. package/src/modules/utils/devices/devices.ts +1 -0
  318. package/src/modules/utils/highlight/highlight.ts +32 -0
  319. package/src/modules/utils/normalizers/normalizers.ts +91 -0
  320. package/src/modules/utils/options/options.ts +39 -0
  321. package/src/modules/utils/prismjs/prismjs.html +3 -0
  322. package/src/modules/utils/prismjs/prismjs.ts +3321 -0
  323. package/src/modules/utils/recentSearches/recentSearches.ts +57 -0
  324. package/src/modules/utils/regexps/regexps.ts +5 -0
  325. package/src/modules/utils/seo/seo.ts +4 -0
  326. package/src/modules/utils/slot/slot.ts +17 -0
  327. package/src/modules/utils/wordpress/wordpress.ts +13 -0
@@ -0,0 +1,387 @@
1
+ @import "helpers/reset";
2
+ @import "./coveo.css";
3
+
4
+ /* stylelint-disable selector-class-pattern */
5
+ .CoveoSearchInterface {
6
+ font-family: var(--dx-g-font-sans);
7
+ background-color: #fafaf9;
8
+ }
9
+
10
+ .coveo-tab-section {
11
+ text-align: left;
12
+ background-color: transparent;
13
+ border: none;
14
+ padding-left: 10px;
15
+ margin-bottom: var(--dx-g-spacing-lg);
16
+ }
17
+
18
+ @media (max-width: 480px) {
19
+ .CoveoSearchInterface .coveo-tab-section {
20
+ background-color: transparent;
21
+ }
22
+ }
23
+
24
+ .CoveoSearchbox {
25
+ display: none;
26
+ }
27
+
28
+ .CoveoTab {
29
+ font-family: var(--dx-g-font-display);
30
+ height: auto;
31
+ padding: 0;
32
+ }
33
+
34
+ .CoveoTab.coveo-selected {
35
+ border-bottom-color: var(--dx-g-blue-vibrant-50);
36
+ }
37
+
38
+ .CoveoTab p {
39
+ color: var(--dx-g-blue-vibrant-50);
40
+ font-size: var(--dx-g-text-md);
41
+ line-height: var(--dx-g-text-md);
42
+ height: initial;
43
+ padding-bottom: var(--dx-g-spacing-sm);
44
+ }
45
+
46
+ .coveo-small-tabs .CoveoTab.coveo-selected p,
47
+ .coveo-small-tabs .CoveoTab.coveo-selected:hover p {
48
+ border-bottom-color: var(--dx-g-blue-vibrant-50);
49
+ }
50
+
51
+ .CoveoSearchInterface.coveo-small-facets .coveo-facet-dropdown-header {
52
+ border: none;
53
+ background: none;
54
+ }
55
+
56
+ .CoveoSearchInterface.coveo-small-tabs .coveo-dropdown-header,
57
+ .CoveoSearchInterface.coveo-small-facets .coveo-dropdown-header,
58
+ .CoveoSearchInterface.coveo-small-recommendation .coveo-dropdown-header {
59
+ color: var(--dx-g-blue-vibrant-50);
60
+ font-size: var(--dx-g-text-sm);
61
+ }
62
+
63
+ .CoveoSearchInterface.coveo-small-facets
64
+ .coveo-facet-column.coveo-facet-dropdown-content {
65
+ background-color: white;
66
+ padding: var(--dx-g-spacing-md);
67
+ border-radius: var(--dx-g-spacing-xs);
68
+ overflow-y: auto;
69
+ border: 1px solid var(--dx-g-gray-90);
70
+ box-shadow: 0 5px 10px 1px rgb(0 0 0 / 7%);
71
+ z-index: 30;
72
+ }
73
+
74
+ .CoveoSearchInterface.coveo-small-tabs .coveo-dropdown-header-wrapper a,
75
+ .CoveoSearchInterface.coveo-small-facets .coveo-dropdown-header-wrapper a {
76
+ margin-right: 0;
77
+ padding-bottom: 5px;
78
+ border-bottom: 2px solid transparent;
79
+ box-sizing: content-box;
80
+ }
81
+
82
+ .CoveoDynamicFacet {
83
+ background: none;
84
+ border-bottom: 1px solid #c9c9c9;
85
+ padding: 15px;
86
+ margin-bottom: 0;
87
+ }
88
+
89
+ .CoveoDynamicFacet:first-of-type {
90
+ border-top: 1px solid #c9c9c9;
91
+ }
92
+
93
+ .coveo-dynamic-facet-header {
94
+ border: none;
95
+ }
96
+
97
+ .coveo-dynamic-facet-header-title {
98
+ font-family: var(--dx-g-font-display);
99
+ font-size: var(--dx-g-text-sm);
100
+ color: var(--dx-g-gray-30);
101
+ }
102
+
103
+ .coveo-dynamic-facet-header-clear {
104
+ display: none !important; /* needs to override inline style */
105
+ }
106
+
107
+ .coveo-dynamic-facet-values {
108
+ padding-top: 10px;
109
+ }
110
+
111
+ .coveo-dynamic-facet-collapsed .coveo-dynamic-facet-values {
112
+ padding: 0;
113
+ }
114
+
115
+ .coveo-dynamic-facet-value {
116
+ font-size: var(--dx-g-text-xs);
117
+ }
118
+
119
+ .coveo-checkbox-button,
120
+ input[type="checkbox"].coveo-checkbox + button {
121
+ border-color: #dddbda;
122
+ }
123
+
124
+ input[type="checkbox"].coveo-checkbox:checked + button::before {
125
+ border-color: var(--dx-g-blue-vibrant-50);
126
+ }
127
+
128
+ .coveo-dynamic-facet-value .coveo-checkbox-span-label-suffix {
129
+ display: none;
130
+ }
131
+
132
+ .coveo-dynamic-facet-value .coveo-checkbox-span-label {
133
+ color: #3e3e3c;
134
+ }
135
+
136
+ .coveo-dynamic-facet-value.coveo-selected .coveo-checkbox-span-label {
137
+ font-weight: normal;
138
+ }
139
+
140
+ li.coveo-dynamic-facet-breadcrumb-value-list-item {
141
+ margin-top: 10px;
142
+ }
143
+
144
+ .coveo-dynamic-facet-breadcrumb-title {
145
+ color: var(--dx-g-gray-30);
146
+ font-weight: var(--dx-g-font-demi);
147
+ }
148
+
149
+ .coveo-dynamic-facet-breadcrumb-value {
150
+ background-color: white;
151
+ color: var(--dx-g-blue-vibrant-50);
152
+ border: 1px solid var(--dx-g-blue-vibrant-50);
153
+ border-radius: 500px;
154
+ padding: 8px 12px;
155
+ font-size: var(--dx-g-text-base);
156
+ font-weight: bold;
157
+ margin-right: 10px;
158
+ }
159
+
160
+ .coveo-dynamic-facet-breadcrumb-value:hover {
161
+ background-color: var(--dx-g-blue-vibrant-95);
162
+ text-decoration: none;
163
+ }
164
+
165
+ .coveo-dynamic-facet-breadcrumb-value-clear {
166
+ color: var(--dx-g-blue-vibrant-50);
167
+ }
168
+
169
+ .coveo-dynamic-facet-breadcrumb-value-clear svg {
170
+ display: inline;
171
+ }
172
+
173
+ .coveo-dynamic-facet-collapse-toggle-svg {
174
+ color: var(--dx-g-blue-vibrant-50);
175
+ }
176
+
177
+ .CoveoResultList {
178
+ margin-top: var(--dx-g-spacing-lg);
179
+ }
180
+
181
+ .CoveoSort {
182
+ font-size: var(--dx-g-text-sm);
183
+ color: var(--dx-g-blue-vibrant-20);
184
+ border-bottom-color: transparent;
185
+ padding: 0;
186
+ padding-bottom: 5px;
187
+ margin-right: var(--dx-g-spacing-md);
188
+ }
189
+
190
+ .CoveoSort:last-of-type {
191
+ margin-right: 0;
192
+ }
193
+
194
+ .CoveoSort:hover {
195
+ border-bottom-color: var(--dx-g-blue-vibrant-20);
196
+ }
197
+
198
+ .CoveoSort.coveo-selected,
199
+ .CoveoSort.coveo-selected:hover {
200
+ color: var(--dx-g-blue-vibrant-50);
201
+ border-bottom-color: var(--dx-g-blue-vibrant-50);
202
+ }
203
+
204
+ .CoveoBreadcrumb {
205
+ border-bottom: none;
206
+ padding: 0;
207
+ }
208
+
209
+ @media (max-width: 768px) {
210
+ .CoveoBreadcrumb {
211
+ margin-left: 10px;
212
+ }
213
+ }
214
+
215
+ .coveo-breadcrumb-clear-all {
216
+ display: none;
217
+ }
218
+
219
+ .coveo-list-layout.CoveoResult {
220
+ border-bottom: none;
221
+ padding: 0;
222
+ width: 100%;
223
+ }
224
+
225
+ .CoveoSearchInterface .coveo-results-footer {
226
+ display: none;
227
+ }
228
+
229
+ .coveo-pager-list-item {
230
+ border: none;
231
+ border-radius: 16px;
232
+ display: inline-flex;
233
+ align-items: center;
234
+ justify-content: center;
235
+ width: 40px;
236
+ height: 32px;
237
+ margin: 0 10px;
238
+ padding: 0;
239
+ }
240
+
241
+ .coveo-pager-list-item.coveo-active,
242
+ .coveo-pager-list-item:hover {
243
+ background-color: var(--dx-g-blue-vibrant-50);
244
+ color: white;
245
+ }
246
+
247
+ .coveo-pager-previous-icon-svg,
248
+ .coveo-pager-next-icon-svg {
249
+ color: var(--dx-g-blue-vibrant-50);
250
+ }
251
+
252
+ .coveo-pager-previous:hover .coveo-pager-previous-icon-svg,
253
+ .coveo-pager-next:hover .coveo-pager-next-icon-svg {
254
+ color: white;
255
+ }
256
+
257
+ .coveo-results-header {
258
+ box-shadow: none;
259
+ }
260
+
261
+ .coveo-results-header > *:not(:first-child) {
262
+ border-right: none;
263
+ }
264
+
265
+ .dx-result {
266
+ background: white;
267
+ border-radius: 16px;
268
+ border: 1px solid rgba(24, 24, 24, 0.04);
269
+ box-shadow: 0 0 2px 0 rgba(24, 24, 24, 0.08),
270
+ 0 2px 4px 1px rgba(24, 24, 24, 0.16);
271
+ padding: 20px;
272
+ margin-bottom: var(--dx-g-spacing-lg);
273
+ }
274
+
275
+ .dx-result-title {
276
+ font-family: var(--dx-g-font-display);
277
+ font-size: var(--dx-g-text-lg);
278
+ margin: 0;
279
+ margin-bottom: var(--dx-g-spacing-sm);
280
+ }
281
+
282
+ .CoveoResultLink,
283
+ a.CoveoResultLink,
284
+ .CoveoResult a.CoveoResultLink {
285
+ color: var(--dx-g-blue-vibrant-20);
286
+ }
287
+
288
+ .dx-result-excerpt {
289
+ color: var(--dx-g-gray-10);
290
+ font-size: 14px;
291
+ line-height: 20px;
292
+ margin: 0;
293
+ }
294
+
295
+ .dx-search-header {
296
+ padding: var(--dx-g-spacing-xl);
297
+ background: url("data:image/svg+xml,%3Csvg width='1440' height='170' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2392DAFF' fill-rule='nonzero'%3E%3Cpath d='M841 141l-2 2-1 4-4 1-2 2 2 2 4 1 1 4 2 1 2-1 2-4 4-1 1-2-1-2-4-1-2-4-2-2zm0 2l2 4 1 1 4 2-4 1-1 1-2 4-1-4-2-1-4-1 4-2 2-1 1-4zM1224 42l-1 1-2 4-4 2-1 2 1 2 4 1 2 4 1 1 2-1 2-4 4-1 1-2-1-2-4-2-2-3-2-2zm0 2l2 4 1 1 4 2-4 1-1 1-2 4-1-4-1-1-4-1 4-2 1-1 1-4zM506 19l-2 1-2 4-4 2-1 1 1 2 4 2 2 4 2 1 2-1 1-4 4-2 2-2-2-1-4-2-1-4-2-1zm0 2l1 4h1l1 1 4 1-4 2-2 1-1 4-2-4-1-1-4-2 4-1 1-1 2-4zM1298 0l-5 5a85 85 0 00-4 120 1 1 0 11-1 1 87 87 0 017-126h3zM1440 112c-6 10-14 18-23 25a1 1 0 01-1-1 89 89 0 0024-28v4zM1339 79c13-3 26 4 31 16 5 11 0 25-11 31a1 1 0 11-1-1c10-7 14-19 10-30-4-10-16-17-28-14-12 2-21 12-21 23a1 1 0 11-2 0c0-12 9-23 22-25z'/%3E%3Cpath d='M1362 86h2c10 10 10 27 0 37-9 8-23 8-32 0-7-7-7-18 0-24 3-3 7-4 10-4 4 0 8 1 11 4 4 4 4 11 0 16a10 10 0 01-14 0 1 1 0 111-2l6 3c2 0 4-1 5-3 4-3 4-9 0-13-2-2-5-3-9-3-3 0-6 1-8 3-7 6-7 16 0 22 7 7 20 7 28 0 10-10 10-25 0-35v-1zM1387 115c10-5 23-1 28 8 6 10 2 22-8 28-10 5-22 3-29-7a1 1 0 012-1c6 9 17 11 26 6s12-16 7-25c-5-8-16-12-25-7a1 1 0 11-1-2z'/%3E%3Cpath d='M1371 103c4-1 8 0 12 2 3 3 5 6 5 11a1 1 0 01-2 0c0-4-1-7-4-9s-7-3-11-2a1 1 0 110-2zM1381 125c6-6 14-6 20 0 4 4 4 11 0 15-4 3-10 3-13 0a1 1 0 011-2c3 3 8 3 10 0 4-3 4-9 0-12-4-4-12-4-17 0-2 3-4 6-4 10s2 8 4 10a20 20 0 0027 0 1 1 0 012 2c-4 4-9 6-15 6s-11-2-15-6c-3-3-5-7-5-12 0-4 2-8 5-11z'/%3E%3Cpath d='M1378 143a1 1 0 112 1c-5 10-15 16-27 17-11 1-22-5-28-14a1 1 0 112-1c6 9 16 14 26 13 11-1 20-7 25-16z'/%3E%3Cpath d='M1285 144l1 1c4 7 11 11 19 12 8 0 16-4 20-11a1 1 0 011 1c-4 8-12 12-21 12-9-1-17-6-21-13l1-2z'/%3E%3Cpath d='M1300 121c4 0 8 2 11 5 2 2 4 5 4 8 0 4-2 7-4 9-4 4-11 4-15 0a1 1 0 112-1c3 3 8 3 12 0 2-2 3-5 3-8 0-2-1-5-3-7-3-2-6-4-10-4s-7 2-10 4c-3 3-5 8-5 12s2 8 5 11c4 4 10 7 16 7s11-3 15-7a1 1 0 112 2c-5 4-11 7-17 7-7 0-13-3-17-7s-6-8-6-13 2-10 6-13c3-3 7-5 11-5zM1296 101c8-2 16-1 22 2a1 1 0 11-1 2c-6-3-13-4-20-2s-12 6-15 13a1 1 0 11-2-1c3-7 9-12 16-14zM1270 96a1 1 0 010 2h-40c-5 0-9 4-9 8v1c0 5 4 9 9 9h17c6 0 12 5 12 11l-4 7c-2 2-5 3-7 3h-18a1 1 0 010-2h17l7-2 3-6c0-5-4-9-9-9h-18c-6 0-11-5-11-11s5-11 11-11h40zM1209 135a1 1 0 010 2h-43a1 1 0 010-2h43zM1217 155c7 0 12 5 12 11l-1 4h-2l1-4c0-5-4-9-9-9h-8a1 1 0 010-2h7z'/%3E%3Cpath d='M1306 156a1 1 0 010 2h-44c-4 0-8 4-8 9v3h-2v-3c0-6 4-10 10-11h44zM1166 135a1 1 0 110 2c-5 0-10 4-10 9s4 9 9 9h17a1 1 0 010 2h-16c-7 0-12-5-12-11s5-11 12-11zM1193 153a1 1 0 012 1h-1l-5 6a1 1 0 01-2-1v-1l6-5zM1201 153a1 1 0 012 1l-6 6a1 1 0 01-2-1l1-1 5-5zM1219 132h1v9a1 1 0 01-2 0v-8l1-1z'/%3E%3Cpath d='M1223 136a1 1 0 010 2h-8a1 1 0 01-1-2h9zM1422 38a1 1 0 110 2c-5 0-9 4-9 9s4 9 9 9h18v2h-18c-6 0-11-5-11-11s5-11 11-11zM1440 0v1h-43c-5 0-9 4-9 9s4 9 9 9h35c3 0 6 1 8 3v15c-2 2-5 3-8 3a1 1 0 010-2c3 0 6-2 8-4v-8c-1-3-4-5-8-5h-35c-6 0-11-5-11-11 0-5 3-8 7-10h47zM729 39c-27 0-51-16-62-39h2a67 67 0 00120 0h2a69 69 0 01-62 39zM279 5c-4 0-7-2-8-4V0h2a7 7 0 0012 0h2v1c-2 2-5 4-8 4z'/%3E%3Cg opacity='.3' transform='translate(258 74)'%3E%3Cpath d='M47 8a1 1 0 010 2h-6a7 7 0 000 14h4a1 1 0 011 2h-5a9 9 0 010-18h6z'/%3E%3Cpath d='M81 8a9 9 0 019 10c0 4-4 7-9 8h-2a7 7 0 000 13h29a9 9 0 011 17H61a7 7 0 00-1 13h8a9 9 0 019 9c0 5-4 8-9 8H28a9 9 0 01-9-9c1-4 4-8 9-8h3a7 7 0 001-13H9a9 9 0 01-1-17h42a7 7 0 100-13 1 1 0 010-2 9 9 0 010 17H9a7 7 0 00-1 13h23a9 9 0 011 17h-4c-3 0-6 3-7 6a7 7 0 007 7h40c4 0 7-2 7-6a7 7 0 00-6-7h-9a9 9 0 011-17h47a7 7 0 001-13H79a9 9 0 010-17h2c4 0 7-3 7-7a7 7 0 00-6-7H71a1 1 0 010-2h10z'/%3E%3Ccircle cx='7.3' cy='77.6' r='1.9'/%3E%3Cpath d='M26 28l1 1v6a1 1 0 01-2 0v-6l1-1z'/%3E%3Cpath d='M29 31a1 1 0 010 2h-6a1 1 0 010-2h6zM59 1a9 9 0 100 17 9 9 0 000-17zm0 2a7 7 0 110 13 7 7 0 010-13z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"),
298
+ linear-gradient(
299
+ 45deg,
300
+ var(--dx-g-indigo-vibrant-20) 0%,
301
+ var(--dx-g-indigo-vibrant-30) 100%
302
+ );
303
+ background-repeat: no-repeat;
304
+ background-position: right;
305
+ background-size: auto 100%;
306
+ color: white;
307
+ }
308
+
309
+ .dx-search-header + .coveo-main-section {
310
+ margin-top: var(--dx-g-spacing-2xl);
311
+ }
312
+
313
+ .dx-search-header-container {
314
+ margin: 0 auto;
315
+ max-width: 1200px;
316
+ }
317
+
318
+ .dx-search-header-title {
319
+ font-size: var(--dx-g-text-lg);
320
+ line-height: var(--dx-g-text-lg);
321
+ font-weight: var(--dx-g-font-normal);
322
+ margin-bottom: var(--dx-g-spacing-md);
323
+ }
324
+
325
+ .dx-search-header-title-results {
326
+ font-weight: var(--dx-g-font-bold);
327
+ }
328
+
329
+ .dx-search-header-query {
330
+ font-family: var(--dx-g-font-display);
331
+ font-size: var(--dx-g-text-2xl);
332
+ line-height: var(--dx-g-text-2xl);
333
+ font-weight: var(--dx-g-font-demi);
334
+ margin-top: var(--dx-g-spacing-md);
335
+ }
336
+
337
+ @media (min-width: 768px) {
338
+ .dx-search-header {
339
+ padding: var(--dx-g-spacing-4xl);
340
+ }
341
+
342
+ .dx-search-header-title {
343
+ font-size: var(--dx-g-text-xl);
344
+ line-height: var(--dx-g-text-xl);
345
+ }
346
+
347
+ .dx-search-header-query {
348
+ font-size: var(--dx-g-text-4xl);
349
+ line-height: var(--dx-g-text-4xl);
350
+ }
351
+ }
352
+
353
+ .dx-facet-column-header {
354
+ display: flex;
355
+ align-items: center;
356
+ margin-bottom: var(--dx-g-spacing-sm);
357
+ }
358
+
359
+ .dx-facet-column-header-title {
360
+ flex: 1;
361
+ font-family: var(--dx-g-font-display);
362
+ font-size: var(--dx-g-text-lg);
363
+ }
364
+
365
+ .dx-facet-column-footer {
366
+ display: none; /* hide by default */
367
+ align-items: center;
368
+ justify-content: center;
369
+ margin-top: var(--dx-g-spacing-md);
370
+ }
371
+
372
+ .coveo-small-facets .dx-facet-column-footer {
373
+ display: flex; /* show when Coveo uses the dropdown UI */
374
+ }
375
+
376
+ .coveo-dropdown-background {
377
+ background: #195594;
378
+ }
379
+
380
+ .coveo-dropdown-background-active {
381
+ opacity: 0.62 !important;
382
+ }
383
+
384
+ .pagination-container {
385
+ margin: 0 auto;
386
+ width: fit-content;
387
+ }
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <div
3
+ id="search"
4
+ class="CoveoSearchInterface"
5
+ data-enable-history="true"
6
+ data-pipeline={coveoSearchPipeline}
7
+ >
8
+ <div class="CoveoAnalytics" data-search-hub="salesforcedevdoc"></div>
9
+ <div class="CoveoFolding"></div>
10
+ <div if:true={hasQuery} class="dx-search-header">
11
+ <div class="dx-search-header-container">
12
+ <p class="dx-search-header-title">
13
+ <span class="dx-search-header-title-results">{title}</span>
14
+ &nbsp;results for
15
+ </p>
16
+ <p class="dx-search-header-query">&ldquo;{query}&rdquo;</p>
17
+ </div>
18
+ </div>
19
+ <div class="coveo-main-section">
20
+ <div class="coveo-facet-column">
21
+ <div class="dx-facet-column-header">
22
+ <span class="dx-facet-column-header-title">Filters</span>
23
+ <template if:true={hasFilters}>
24
+ <dx-button onclick={clearFilters} variant="inline">
25
+ Clear
26
+ </dx-button>
27
+ </template>
28
+ </div>
29
+ <div
30
+ class="CoveoDynamicFacetManager"
31
+ data-enable-reorder="false"
32
+ >
33
+ <div
34
+ class="CoveoDynamicFacet"
35
+ data-title="Content Type"
36
+ data-field="@commonsource"
37
+ data-tab="All"
38
+ data-enable-facet-search="false"
39
+ ></div>
40
+ <div
41
+ class="CoveoDynamicFacet"
42
+ data-title="Language"
43
+ data-field="@language"
44
+ data-tab="All"
45
+ data-enable-facet-search="false"
46
+ ></div>
47
+ </div>
48
+ <div class="dx-facet-column-footer">
49
+ <dx-button onclick={dismissFiltersOverlay}>
50
+ View {title} results
51
+ </dx-button>
52
+ </div>
53
+ </div>
54
+ <div class="coveo-results-column">
55
+ <div class="CoveoShareQuery"></div>
56
+ <div class="CoveoExportToExcel"></div>
57
+ <div class="CoveoPreferencesPanel">
58
+ <div class="CoveoResultsPreferences"></div>
59
+ <div class="CoveoResultsFiltersPreferences"></div>
60
+ </div>
61
+ <div class="CoveoDidYouMean"></div>
62
+ <div class="coveo-results-header">
63
+ <div class="coveo-summary-section"></div>
64
+ <div class="coveo-sort-section" role="radiogroup">
65
+ <span
66
+ class="CoveoSort"
67
+ data-sort-criteria="relevancy"
68
+ data-caption="Sorted by Relevance"
69
+ ></span>
70
+ </div>
71
+ <div>
72
+ <div
73
+ class="CoveoSearchbox"
74
+ data-enable-omnibox="false"
75
+ data-add-search-button="false"
76
+ aria-hidden="true"
77
+ ></div>
78
+ </div>
79
+ </div>
80
+ <div class="CoveoBreadcrumb"></div>
81
+ <div class="CoveoHiddenQuery"></div>
82
+ <div class="CoveoErrorReport"></div>
83
+ <div
84
+ class="CoveoResultList"
85
+ data-layout="list"
86
+ data-wait-animation="fade"
87
+ data-auto-select-fields-to-include="true"
88
+ lwc:dom="manual"
89
+ ></div>
90
+ <div class="coveo-results-footer" aria-hidden="true">
91
+ <div class="CoveoPager"></div>
92
+ </div>
93
+ <div class="pagination-container">
94
+ <dx-pagination
95
+ current-page={currentPage}
96
+ total-pages={totalPages}
97
+ onpagechange={goToPage}
98
+ pages-to-show="5"
99
+ ></dx-pagination>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </template>
@@ -0,0 +1,186 @@
1
+ import { LightningElement, api, track } from "lwc";
2
+ import type * as CoveoSDK from "coveo-search-ui";
3
+
4
+ interface CoveoSearch {
5
+ state: typeof CoveoSDK.state;
6
+ get: typeof CoveoSDK.get;
7
+ $$: typeof CoveoSDK.$$;
8
+ InitializationEvents: typeof CoveoSDK.InitializationEvents;
9
+ QueryEvents: typeof CoveoSDK.QueryEvents;
10
+ SearchEndpoint: typeof CoveoSDK.SearchEndpoint;
11
+ TemplateCache: typeof CoveoSDK.TemplateCache;
12
+ UnderscoreTemplate: typeof CoveoSDK.UnderscoreTemplate;
13
+ init: typeof CoveoSDK.init;
14
+ IQuerySuccessEventArgs: CoveoSDK.IQuerySuccessEventArgs;
15
+ }
16
+
17
+ declare const Coveo: CoveoSearch;
18
+
19
+ function getPaginationState(
20
+ event: CoveoSDK.IQuerySuccessEventArgs
21
+ ): { numberOfPages: number; currentPage: number } {
22
+ const pageSize = event.query.numberOfResults!;
23
+ const totalResults = event.results.totalCount!;
24
+ const numberOfPages = Math.ceil(totalResults / pageSize);
25
+
26
+ const currentPage = event.query.firstResult! / pageSize + 1;
27
+
28
+ return { numberOfPages, currentPage };
29
+ }
30
+
31
+ const resultsTemplatesInnerHtml = `
32
+ <script
33
+ id="myDocumentResultTemplate"
34
+ class="result-template"
35
+ type="text/html"
36
+ data-field-publicurl=""
37
+ >
38
+ <div class="dx-result">
39
+ <p class="dx-result-title">
40
+ <a
41
+ class="CoveoResultLink"
42
+ data-field="@publicurl"
43
+ ></a>
44
+ </p>
45
+ <p class="dx-result-excerpt CoveoExcerpt"></p>
46
+ </div>
47
+ </script>
48
+ <script
49
+ id="myDefaultResultTemplate"
50
+ class="result-template"
51
+ type="text/html"
52
+ >
53
+ <div class="dx-result">
54
+ <p class="dx-result-title">
55
+ <a class="CoveoResultLink"></a>
56
+ </p>
57
+ <p class="dx-result-excerpt CoveoExcerpt"></p>
58
+ </div>
59
+ </script>
60
+ `;
61
+
62
+ export default class SearchResults extends LightningElement {
63
+ @api coveoOrganizationId!: string;
64
+ @api coveoPublicAccessToken!: string;
65
+ @api coveoSearchPipeline!: string;
66
+
67
+ private root: HTMLElement | null = null;
68
+ private isInitialized = false;
69
+
70
+ @track _query: string = "";
71
+
72
+ @api
73
+ get searchQuery() {
74
+ return this._query;
75
+ }
76
+ set searchQuery(q: string) {
77
+ this._query = q;
78
+ if (this.isInitialized && this._query !== "") {
79
+ this.updateSearchQuery();
80
+ }
81
+ }
82
+
83
+ private totalResults: number | null = null;
84
+
85
+ private get title() {
86
+ return this.totalResults ? this.totalResults.toLocaleString() : "";
87
+ }
88
+
89
+ private query: string = "";
90
+ private hasFilters: boolean = false;
91
+
92
+ private get hasQuery(): boolean {
93
+ return this.query !== "";
94
+ }
95
+
96
+ private updateSearchQuery() {
97
+ Coveo.state(this.root!, "q", this._query);
98
+ }
99
+
100
+ private clearFilters() {
101
+ const BreadcrumbManager = Coveo.get(
102
+ this.root!.querySelector(".CoveoBreadcrumb") as HTMLElement
103
+ ) as any;
104
+ BreadcrumbManager.clearBreadcrumbs();
105
+ }
106
+
107
+ private currentPage: number = 1;
108
+ private totalPages: number = 1;
109
+
110
+ private goToPage(e: CustomEvent) {
111
+ const page = e.detail;
112
+ const Pager = Coveo.get(
113
+ this.root!.querySelector(".CoveoPager") as HTMLElement
114
+ ) as any;
115
+ Pager.setPage(page);
116
+ this.currentPage = page;
117
+ }
118
+
119
+ private dismissFiltersOverlay = () => {
120
+ const overlay = this.root!.querySelector(
121
+ ".coveo-dropdown-background-active"
122
+ ) as HTMLElement | null;
123
+ overlay?.click();
124
+ };
125
+
126
+ private attachListeners(root: HTMLElement) {
127
+ Coveo.$$(root).on(
128
+ Coveo.InitializationEvents.afterInitialization,
129
+ () => {
130
+ if (this._query !== "") {
131
+ Coveo.state(this.root!, "q", this.searchQuery);
132
+ }
133
+ if (Coveo.state(this.root!, "q") === "") {
134
+ Coveo.state(this.root!, "sort", "date descending");
135
+ }
136
+ this.isInitialized = true;
137
+ }
138
+ );
139
+
140
+ Coveo.$$(root).on(Coveo.QueryEvents.querySuccess, (event: any) => {
141
+ const { currentPage, numberOfPages } = getPaginationState(
142
+ event.detail
143
+ );
144
+ this.currentPage = currentPage;
145
+ this.totalPages = numberOfPages;
146
+ this.totalResults = event.detail.results.totalCount;
147
+ this.query = event.detail.query.q ?? "";
148
+ this.hasFilters = event.detail.query.facets.some((f: any) => {
149
+ return f.currentValues.some((cv: any) => {
150
+ return cv.state === "selected";
151
+ });
152
+ });
153
+ });
154
+ }
155
+
156
+ private initializeCoveo() {
157
+ this.root = this.template.querySelector(".CoveoSearchInterface")!;
158
+
159
+ const resultsList = this.template.querySelector(".CoveoResultList");
160
+ if (resultsList) {
161
+ resultsList.innerHTML = resultsTemplatesInnerHtml;
162
+ }
163
+
164
+ Coveo.SearchEndpoint.configureCloudV2Endpoint(
165
+ this.coveoOrganizationId,
166
+ this.coveoPublicAccessToken
167
+ );
168
+
169
+ this.attachListeners(this.root);
170
+
171
+ Coveo.init(this.root);
172
+ }
173
+
174
+ renderedCallback() {
175
+ if (!this.isInitialized) {
176
+ if (Object.prototype.hasOwnProperty.call(window, "Coveo")) {
177
+ this.initializeCoveo();
178
+ } else {
179
+ const script = document.querySelector("script.coveo-script");
180
+ script?.addEventListener("load", () => {
181
+ this.initializeCoveo();
182
+ });
183
+ }
184
+ }
185
+ }
186
+ }