@salesforcedevs/dx-components 0.16.3 → 0.18.2

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 (50) hide show
  1. package/lwc.config.json +1 -0
  2. package/package.json +3 -3
  3. package/src/assets/svg/sidebar-loading.svg +34 -0
  4. package/src/modules/dx/dropdown/dropdown.html +2 -0
  5. package/src/modules/dx/dropdown/dropdown.ts +4 -2
  6. package/src/modules/dx/footer/footer.ts +13 -1
  7. package/src/modules/dx/header/__tests__/header.test.ts +15 -21
  8. package/src/modules/dx/header/__tests__/mockProps.ts +7 -1
  9. package/src/modules/dx/headerNav/headerNav.html +1 -0
  10. package/src/modules/dx/headerSearch/__tests__/headerSearch.test.ts +24 -39
  11. package/src/modules/dx/headerSearch/__tests__/mockProps.ts +2 -7
  12. package/src/modules/dx/headerSearch/headerSearch.ts +13 -19
  13. package/src/modules/dx/lazy/lazy.ts +0 -7
  14. package/src/modules/dx/newsletterForm/newsletterForm.ts +20 -11
  15. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEmptyEvent.ts +6 -0
  16. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEvent.ts +527 -0
  17. package/src/modules/dx/sidebar/__tests__/sidebar.test.ts +210 -247
  18. package/src/modules/dx/sidebar/sidebar.css +68 -34
  19. package/src/modules/dx/sidebar/sidebar.html +58 -34
  20. package/src/modules/dx/sidebar/sidebar.stories.ts +50 -4
  21. package/src/modules/dx/sidebar/sidebar.ts +141 -73
  22. package/src/modules/dx/sidebarOld/__tests__/mockProps.ts +178 -0
  23. package/src/modules/dx/sidebarOld/__tests__/sidebarOld.test.ts +574 -0
  24. package/src/modules/dx/sidebarOld/sidebarOld.css +160 -0
  25. package/src/modules/dx/sidebarOld/sidebarOld.html +70 -0
  26. package/src/modules/dx/sidebarOld/sidebarOld.stories.ts +139 -0
  27. package/src/modules/dx/sidebarOld/sidebarOld.ts +187 -0
  28. package/src/modules/dx/sidebarSearch/__tests__/mockPreloadedState.ts +8843 -0
  29. package/src/modules/dx/sidebarSearch/__tests__/sidebarSearch.test.ts +113 -0
  30. package/src/modules/dx/sidebarSearch/sidebarSearch.css +3 -0
  31. package/src/modules/dx/sidebarSearch/sidebarSearch.html +26 -0
  32. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +433 -0
  33. package/src/modules/dx/sidebarSearchResult/__tests__/sidebarSearchResult.test.ts +55 -0
  34. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.css +36 -0
  35. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.html +14 -0
  36. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.ts +56 -0
  37. package/src/modules/dx/treeTile/__tests__/treeTile.test.ts +27 -38
  38. package/src/modules/dx/treeTile/treeTile.css +3 -19
  39. package/src/modules/dx/treeTile/treeTile.html +4 -1
  40. package/src/modules/dx/treeTile/treeTile.ts +2 -2
  41. package/src/modules/helpers/sidebar/sidebar.css +21 -0
  42. package/src/modules/utils/coveo/coveo.ts +69 -0
  43. package/src/modules/utils/headerBase/headerBase.ts +10 -2
  44. package/src/modules/utils/highlight/__tests__/highlight.test.ts +108 -0
  45. package/src/modules/utils/highlight/__tests__/mockProps.ts +45 -0
  46. package/src/modules/utils/highlight/highlight.ts +2 -1
  47. package/src/modules/utils/jest/jest.ts +35 -0
  48. package/src/modules/utils/recentSearches/__tests__/recentSearches.test.ts +79 -0
  49. package/src/modules/utils/recentSearches/recentSearches.ts +57 -0
  50. package/src/modules/utils/tests/tests.ts +18 -11
@@ -0,0 +1,57 @@
1
+ export const LOCAL_STORAGE_KEY = "dx-sidebar-recent-searches";
2
+
3
+ export const LIMIT = 5;
4
+
5
+ export class RecentSearches {
6
+ items: string[] = [];
7
+
8
+ constructor() {
9
+ this._init();
10
+ }
11
+
12
+ get() {
13
+ return this.items;
14
+ }
15
+
16
+ add(item: string | undefined) {
17
+ if (!item || typeof item !== "string") {
18
+ return;
19
+ }
20
+ const normalized = item.trim();
21
+ if (normalized === "") {
22
+ return;
23
+ }
24
+ this._prepend(normalized);
25
+ this._removeDuplicates(normalized);
26
+ this._cutOffExcess();
27
+ this._addToStorage();
28
+ }
29
+
30
+ // private
31
+ _init() {
32
+ this.items = JSON.parse(
33
+ window.localStorage.getItem(LOCAL_STORAGE_KEY) || "[]"
34
+ );
35
+ }
36
+
37
+ _prepend(item: string) {
38
+ this.items.unshift(item);
39
+ }
40
+
41
+ _removeDuplicates(item: string) {
42
+ while (this.items.lastIndexOf(item) > 0) {
43
+ this.items.splice(this.items.lastIndexOf(item), 1);
44
+ }
45
+ }
46
+
47
+ _cutOffExcess() {
48
+ this.items = this.items.slice(0, LIMIT);
49
+ }
50
+
51
+ _addToStorage() {
52
+ window.localStorage.setItem(
53
+ LOCAL_STORAGE_KEY,
54
+ JSON.stringify(this.items)
55
+ );
56
+ }
57
+ }
@@ -1,18 +1,25 @@
1
1
  import { createElement, LightningElement } from "lwc";
2
2
 
3
- export const createRenderComponent = (
4
- tag: string,
5
- LWC: new () => LightningElement
6
- ) => (properties = {}) => {
7
- const component = createElement(tag, {
8
- is: LWC
9
- });
10
-
11
- Object.assign(component, properties);
12
- document.body.appendChild(component);
13
- return component;
3
+ export const renderLightningElement = (
4
+ element: LightningElement,
5
+ properties = {}
6
+ ) => {
7
+ Object.assign(element, properties);
8
+ document.body.appendChild(element as unknown as Node);
9
+ return element;
14
10
  };
15
11
 
12
+ export const createRenderComponent =
13
+ (tag: string, LWC: new () => LightningElement) =>
14
+ (properties = {}) => {
15
+ const component = createElement(tag, {
16
+ is: LWC
17
+ });
18
+
19
+ renderLightningElement(component, properties);
20
+ return component;
21
+ };
22
+
16
23
  export const mockSlottedElement = <T extends HTMLElement>(
17
24
  element: any,
18
25
  elementType = "button",