@salesforcedevs/dx-components 1.3.210-lang5-alpha → 1.3.210-lang7-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.
- package/lwc.config.json +1 -0
- package/package.json +1 -1
- package/src/modules/dx/emptyState/emptyState.css +74 -2
- package/src/modules/dx/emptyState/emptyState.html +16 -4
- package/src/modules/dx/emptyState/emptyState.ts +56 -6
- package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +0 -28
- package/src/modules/dx/featuredContentHeader/svgs.ts +5 -4
- package/src/modules/dx/hr/hr.css +4 -2
- package/src/modules/dx/searchResults/searchResults.css +84 -7
- package/src/modules/dx/searchResults/searchResults.html +109 -74
- package/src/modules/dx/searchResults/searchResults.ts +12 -0
- package/src/modules/dx/sidebar/sidebar.css +7 -1
- package/src/modules/dx/sidebar/sidebar.html +7 -4
- package/src/modules/dx/sidebar/sidebar.ts +11 -64
- package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.css +52 -0
- package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.html +55 -0
- package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.ts +106 -0
- package/src/modules/dx/sidebarOld/sidebarOld.css +7 -1
- package/src/modules/dx/sidebarOld/sidebarOld.html +7 -4
- package/src/modules/dx/sidebarOld/sidebarOld.ts +11 -61
- package/src/modules/dxBaseElements/sidebarBase/sidebarBase.ts +64 -1
|
@@ -62,29 +62,32 @@
|
|
|
62
62
|
></dx-tree>
|
|
63
63
|
</div>
|
|
64
64
|
<dx-empty-state
|
|
65
|
+
variant="alt"
|
|
65
66
|
class="padding-horizontal"
|
|
66
67
|
size="small"
|
|
67
68
|
title="No Results"
|
|
69
|
+
body={emptyStateBody}
|
|
70
|
+
suggestions={emptyStateSuggestions}
|
|
68
71
|
if:false={anyResultMatch}
|
|
69
72
|
></dx-empty-state>
|
|
70
73
|
<div if:true={hasMobileSidebarFooter} class="footer-nav">
|
|
71
|
-
<
|
|
74
|
+
<dx-sidebar-footer-nav
|
|
72
75
|
lang-value-path={langValuePath}
|
|
73
76
|
language={language}
|
|
74
77
|
languages={languages}
|
|
75
|
-
></
|
|
78
|
+
></dx-sidebar-footer-nav>
|
|
76
79
|
</div>
|
|
77
80
|
</template>
|
|
78
81
|
|
|
79
82
|
<template if:false={mobile}>
|
|
80
83
|
<div if:true={hasSidebarFooter} class="footer-nav">
|
|
81
|
-
<
|
|
84
|
+
<dx-sidebar-footer-nav
|
|
82
85
|
lang-value-path={langValuePath}
|
|
83
86
|
language={language}
|
|
84
87
|
languages={languages}
|
|
85
88
|
bail-href={bailHref}
|
|
86
89
|
bail-label={bailLabel}
|
|
87
|
-
></
|
|
90
|
+
></dx-sidebar-footer-nav>
|
|
88
91
|
</div>
|
|
89
92
|
</template>
|
|
90
93
|
</div>
|
|
@@ -4,35 +4,12 @@ import { api } from "lwc";
|
|
|
4
4
|
import { TreeNode } from "typings/custom";
|
|
5
5
|
import { toJson } from "dxUtils/normalizers";
|
|
6
6
|
import { SidebarBase } from "dxBaseElements/sidebarBase";
|
|
7
|
-
import type { OptionWithLink } from "typings/custom";
|
|
8
7
|
|
|
9
8
|
const WAIT_TIME = 500;
|
|
10
9
|
const MOBILE_SIZE_MATCH = "768px";
|
|
11
10
|
|
|
12
11
|
export default class Sidebar extends SidebarBase {
|
|
13
12
|
@api header: string = "";
|
|
14
|
-
@api langValuePath: string = "id";
|
|
15
|
-
@api language!: string;
|
|
16
|
-
@api bailHref!: string;
|
|
17
|
-
@api bailLabel!: string;
|
|
18
|
-
|
|
19
|
-
@api
|
|
20
|
-
get value() {
|
|
21
|
-
return this._value;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
set value(value) {
|
|
25
|
-
this._value = value;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@api
|
|
29
|
-
get languages() {
|
|
30
|
-
return this._languages;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
set languages(value) {
|
|
34
|
-
this._languages = toJson(value);
|
|
35
|
-
}
|
|
36
13
|
|
|
37
14
|
@api
|
|
38
15
|
get trees() {
|
|
@@ -51,17 +28,13 @@ export default class Sidebar extends SidebarBase {
|
|
|
51
28
|
this.assignFilteredTrees();
|
|
52
29
|
}
|
|
53
30
|
|
|
54
|
-
private expanded: boolean = true;
|
|
55
31
|
private _searchTimeout?: number;
|
|
56
|
-
private _value?: string = undefined;
|
|
57
32
|
private _trees!: Array<TreeNode>;
|
|
58
33
|
|
|
59
34
|
private filteredTrees: Array<{ key: string; tree: TreeNode }> = [];
|
|
60
|
-
private mobile: boolean = true;
|
|
61
35
|
private searchText: string = "";
|
|
62
36
|
private matchMedia!: MediaQueryList;
|
|
63
37
|
private valueToLabel: { [key: string]: string } = {};
|
|
64
|
-
private _languages!: OptionWithLink[];
|
|
65
38
|
|
|
66
39
|
private get anyResultMatch() {
|
|
67
40
|
return this.filteredTrees.length > 0;
|
|
@@ -86,6 +59,17 @@ export default class Sidebar extends SidebarBase {
|
|
|
86
59
|
return this.expanded ? "close" : "custom-rows";
|
|
87
60
|
}
|
|
88
61
|
|
|
62
|
+
private get emptyStateBody(): string {
|
|
63
|
+
return "Search Tips:";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
private get emptyStateSuggestions(): string {
|
|
67
|
+
return JSON.stringify([
|
|
68
|
+
"Please consider misspellings",
|
|
69
|
+
"Try different search keywords"
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
|
|
89
73
|
connectedCallback() {
|
|
90
74
|
this.matchMedia = window.matchMedia(
|
|
91
75
|
`(max-width: ${MOBILE_SIZE_MATCH})`
|
|
@@ -105,32 +89,6 @@ export default class Sidebar extends SidebarBase {
|
|
|
105
89
|
this.matchMedia.removeEventListener("change", this.onMediaChange);
|
|
106
90
|
}
|
|
107
91
|
|
|
108
|
-
private onMediaChange = (event: MediaQueryListEvent | MediaQueryList) => {
|
|
109
|
-
this.mobile = event.matches;
|
|
110
|
-
this.expanded = !this.mobile;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
private onSelect(event: CustomEvent) {
|
|
114
|
-
this._value = event.detail.name;
|
|
115
|
-
|
|
116
|
-
if (this.mobile) {
|
|
117
|
-
this.onToggleClick();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
private onToggleClick() {
|
|
122
|
-
this.expanded = !this.expanded;
|
|
123
|
-
this.dispatchEvent(
|
|
124
|
-
new CustomEvent("togglesidebar", {
|
|
125
|
-
detail: {
|
|
126
|
-
open: this.expanded,
|
|
127
|
-
bubbles: true,
|
|
128
|
-
composed: true
|
|
129
|
-
}
|
|
130
|
-
})
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
92
|
/*
|
|
135
93
|
* Debouncing this method: Do not apply searchText filter as long as this
|
|
136
94
|
* function is being called to avoid running the recursivity logic very often.
|
|
@@ -205,12 +163,4 @@ export default class Sidebar extends SidebarBase {
|
|
|
205
163
|
node.children.forEach((child) => this.assignValueToLabel(child));
|
|
206
164
|
}
|
|
207
165
|
}
|
|
208
|
-
|
|
209
|
-
private get hasMobileSidebarFooter(): boolean {
|
|
210
|
-
return this.mobile && this.languages?.length > 1 && this.expanded;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
private get hasSidebarFooter(): boolean {
|
|
214
|
-
return this.languages?.length > 1 || Boolean(this.bailHref);
|
|
215
|
-
}
|
|
216
166
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { LightningElement } from "lwc";
|
|
1
|
+
import { LightningElement, api } from "lwc";
|
|
2
|
+
import type { OptionWithLink } from "typings/custom";
|
|
3
|
+
import { toJson } from "dxUtils/normalizers";
|
|
2
4
|
|
|
3
5
|
export const HEIGHT_OF_SIDEBAR_ITEM = 32;
|
|
4
6
|
export const WAIT_TIME_BEFORE_SCROLL_IN_MS = 500;
|
|
@@ -8,6 +10,33 @@ export class SidebarBase extends LightningElement {
|
|
|
8
10
|
|
|
9
11
|
selectedElement: HTMLElement | null = null;
|
|
10
12
|
timerId: ReturnType<typeof setTimeout> | null = null;
|
|
13
|
+
_languages!: OptionWithLink[];
|
|
14
|
+
mobile: boolean = true;
|
|
15
|
+
expanded: boolean = true;
|
|
16
|
+
_value?: string = undefined;
|
|
17
|
+
|
|
18
|
+
@api langValuePath: string = "id";
|
|
19
|
+
@api language!: string;
|
|
20
|
+
@api bailHref!: string;
|
|
21
|
+
@api bailLabel!: string;
|
|
22
|
+
|
|
23
|
+
@api
|
|
24
|
+
get languages() {
|
|
25
|
+
return this._languages;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
set languages(value) {
|
|
29
|
+
this._languages = toJson(value);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@api
|
|
33
|
+
get value() {
|
|
34
|
+
return this._value;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
set value(value) {
|
|
38
|
+
this._value = value;
|
|
39
|
+
}
|
|
11
40
|
|
|
12
41
|
get sidebarContent() {
|
|
13
42
|
if (!this._sidebarContent) {
|
|
@@ -62,4 +91,38 @@ export class SidebarBase extends LightningElement {
|
|
|
62
91
|
this.selectedElement = null;
|
|
63
92
|
}
|
|
64
93
|
}
|
|
94
|
+
|
|
95
|
+
onMediaChange = (event: MediaQueryListEvent | MediaQueryList) => {
|
|
96
|
+
this.mobile = event.matches;
|
|
97
|
+
this.expanded = !this.mobile;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
onSelect(event: CustomEvent) {
|
|
101
|
+
this._value = event.detail.name;
|
|
102
|
+
|
|
103
|
+
if (this.mobile) {
|
|
104
|
+
this.onToggleClick();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
onToggleClick() {
|
|
109
|
+
this.expanded = !this.expanded;
|
|
110
|
+
this.dispatchEvent(
|
|
111
|
+
new CustomEvent("togglesidebar", {
|
|
112
|
+
detail: {
|
|
113
|
+
open: this.expanded,
|
|
114
|
+
bubbles: true,
|
|
115
|
+
composed: true
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private get hasMobileSidebarFooter(): boolean {
|
|
122
|
+
return this.mobile && this.languages?.length > 1 && this.expanded;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
private get hasSidebarFooter(): boolean {
|
|
126
|
+
return this.languages?.length > 1 || Boolean(this.bailHref);
|
|
127
|
+
}
|
|
65
128
|
}
|