@salesforcedevs/dx-components 1.3.194-alpha5 → 1.3.194-langpicker2-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/package.json +3 -6
- package/src/modules/dx/footer/links.ts +1 -1
- package/src/modules/dx/sidebarOld/sidebarOld.css +13 -0
- package/src/modules/dx/sidebarOld/sidebarOld.html +21 -0
- package/src/modules/dx/sidebarOld/sidebarOld.ts +47 -0
- package/src/modules/dx/tab/tab.css +15 -20
- package/src/modules/dxHelpers/commonHeader/commonHeader.css +2 -1
- package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +10 -1
- package/src/modules/dxHelpers/commonTreeItem/commonTreeItem.css +3 -3
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforcedevs/dx-components",
|
|
3
|
-
"version": "1.3.194-
|
|
3
|
+
"version": "1.3.194-langpicker2-alpha",
|
|
4
4
|
"description": "DX Lightning web components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
7
|
-
"node": "
|
|
7
|
+
"node": "16.x"
|
|
8
8
|
},
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@coveo/headless": "2.16.5",
|
|
14
14
|
"@floating-ui/dom": "1.5.1",
|
|
15
|
-
"@sfdocs-internal/wires": "0.6.
|
|
15
|
+
"@sfdocs-internal/wires": "0.6.89",
|
|
16
16
|
"@types/throttle-debounce": "^5.0.0",
|
|
17
17
|
"@vimeo/player": "^2.16.4",
|
|
18
18
|
"classnames": "^2.2.6",
|
|
@@ -40,8 +40,5 @@
|
|
|
40
40
|
"@types/vimeo__player": "^2.16.2",
|
|
41
41
|
"eventsourcemock": "^2.0.0",
|
|
42
42
|
"luxon": "^3.1.0"
|
|
43
|
-
},
|
|
44
|
-
"volta": {
|
|
45
|
-
"node": "16.19.1"
|
|
46
43
|
}
|
|
47
44
|
}
|
|
@@ -21,7 +21,7 @@ export const generalLinksRaw: OptionWithRequiredNested[] = [
|
|
|
21
21
|
id: "Tableau"
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
|
-
link: { href: "
|
|
24
|
+
link: { href: "/developer-centers/commerce-cloud" },
|
|
25
25
|
label: "Commerce Cloud",
|
|
26
26
|
id: "Commerce Cloud"
|
|
27
27
|
},
|
|
@@ -24,3 +24,16 @@ dx-empty-state {
|
|
|
24
24
|
.header-toggle-icon dx-button[aria-expanded="true"]:hover {
|
|
25
25
|
--dx-c-button-secondary-color-hover: var(--dx-g-gray-80);
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
.footer-nav {
|
|
29
|
+
display: flex;
|
|
30
|
+
padding: 0 var(--dx-g-spacing-sm) 0 var(--dx-g-spacing-2xl);
|
|
31
|
+
position: fixed;
|
|
32
|
+
bottom: 0;
|
|
33
|
+
left: 0;
|
|
34
|
+
width: inherit;
|
|
35
|
+
background: white;
|
|
36
|
+
border-top: 1px solid var(--dx-g-gray-90);
|
|
37
|
+
border-right: 1px solid var(--dx-g-gray-90);
|
|
38
|
+
line-height: var(--dx-g-spacing-xl);
|
|
39
|
+
}
|
|
@@ -68,5 +68,26 @@
|
|
|
68
68
|
if:false={anyResultMatch}
|
|
69
69
|
></dx-empty-state>
|
|
70
70
|
</template>
|
|
71
|
+
|
|
72
|
+
<div if:false={mobile} class="footer-nav">
|
|
73
|
+
<dx-dropdown
|
|
74
|
+
if:true={hasLanguages}
|
|
75
|
+
class="header_lang-dropdown"
|
|
76
|
+
options={languages}
|
|
77
|
+
small
|
|
78
|
+
value-path={langValuePath}
|
|
79
|
+
value={language}
|
|
80
|
+
onchange={onLangChange}
|
|
81
|
+
>
|
|
82
|
+
<dx-button
|
|
83
|
+
aria-label="Select Language"
|
|
84
|
+
variant="inline"
|
|
85
|
+
icon-size="small"
|
|
86
|
+
icon-symbol="world"
|
|
87
|
+
>
|
|
88
|
+
{languageLabel}
|
|
89
|
+
</dx-button>
|
|
90
|
+
</dx-dropdown>
|
|
91
|
+
</div>
|
|
71
92
|
</div>
|
|
72
93
|
</template>
|
|
@@ -4,12 +4,15 @@ 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
|
+
import get from "lodash.get";
|
|
7
9
|
|
|
8
10
|
const WAIT_TIME = 500;
|
|
9
11
|
const MOBILE_SIZE_MATCH = "768px";
|
|
10
12
|
|
|
11
13
|
export default class Sidebar extends SidebarBase {
|
|
12
14
|
@api header: string = "";
|
|
15
|
+
@api langValuePath: string = "id";
|
|
13
16
|
|
|
14
17
|
@api
|
|
15
18
|
get value() {
|
|
@@ -37,6 +40,26 @@ export default class Sidebar extends SidebarBase {
|
|
|
37
40
|
this.assignFilteredTrees();
|
|
38
41
|
}
|
|
39
42
|
|
|
43
|
+
@api
|
|
44
|
+
get languages() {
|
|
45
|
+
return this._languages;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
set languages(value) {
|
|
49
|
+
this._languages = toJson(value);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@api
|
|
53
|
+
get language() {
|
|
54
|
+
return this._language;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
set language(value) {
|
|
58
|
+
if (this._language !== value) {
|
|
59
|
+
this._language = value;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
40
63
|
private expanded: boolean = true;
|
|
41
64
|
private _searchTimeout?: number;
|
|
42
65
|
private _value?: string = undefined;
|
|
@@ -48,6 +71,9 @@ export default class Sidebar extends SidebarBase {
|
|
|
48
71
|
private matchMedia!: MediaQueryList;
|
|
49
72
|
private valueToLabel: { [key: string]: string } = {};
|
|
50
73
|
|
|
74
|
+
private _languages!: OptionWithLink[];
|
|
75
|
+
private _language: string | null = null;
|
|
76
|
+
|
|
51
77
|
private get anyResultMatch() {
|
|
52
78
|
return this.filteredTrees.length > 0;
|
|
53
79
|
}
|
|
@@ -190,4 +216,25 @@ export default class Sidebar extends SidebarBase {
|
|
|
190
216
|
node.children.forEach((child) => this.assignValueToLabel(child));
|
|
191
217
|
}
|
|
192
218
|
}
|
|
219
|
+
|
|
220
|
+
private get hasLanguages(): boolean {
|
|
221
|
+
return !!(this.languages && this.languages.length);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
private get languageLabel(): string {
|
|
225
|
+
return (
|
|
226
|
+
(this.language &&
|
|
227
|
+
this.languages.find(
|
|
228
|
+
(lang) => get(lang, this.langValuePath) === this.language
|
|
229
|
+
)?.label) ||
|
|
230
|
+
this.languages[0].label
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
private onLangChange(event: CustomEvent<string>): void {
|
|
235
|
+
const { detail } = event;
|
|
236
|
+
this._language = detail;
|
|
237
|
+
|
|
238
|
+
this.dispatchEvent(new CustomEvent("langchange", { detail }));
|
|
239
|
+
}
|
|
193
240
|
}
|
|
@@ -11,22 +11,13 @@ a {
|
|
|
11
11
|
);
|
|
12
12
|
|
|
13
13
|
position: relative;
|
|
14
|
-
|
|
15
|
-
align-items: center;
|
|
16
|
-
height: var(--dx-g-spacing-xl);
|
|
17
|
-
font-family: var(--dx-g-font-display);
|
|
18
|
-
white-space: nowrap;
|
|
19
|
-
color: var(--dx-g-blue-vibrant-20);
|
|
20
|
-
transition: var(--dx-g-transition-hue-1x);
|
|
21
|
-
cursor: pointer;
|
|
22
|
-
outline-offset: -1px;
|
|
14
|
+
height: calc(var(--dx-g-spacing-3xl) - 4px);
|
|
23
15
|
}
|
|
24
16
|
|
|
25
17
|
.nav-list-item_default {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
padding: 0 var(--horizontal-spacing);
|
|
18
|
+
padding: calc(var(--dx-g-spacing-sm) + 2px) var(--dx-g-spacing-md);
|
|
19
|
+
justify-content: center;
|
|
20
|
+
display: flex;
|
|
30
21
|
}
|
|
31
22
|
|
|
32
23
|
.nav-list-item_small {
|
|
@@ -46,8 +37,6 @@ button.nav-list-item_small > dx-icon {
|
|
|
46
37
|
margin-left: var(--dx-g-spacing-xs);
|
|
47
38
|
}
|
|
48
39
|
|
|
49
|
-
.nav-list-item_default:hover,
|
|
50
|
-
.nav-list-item_default:active,
|
|
51
40
|
:host([aria-expanded="true"]) button.nav-list-item_default {
|
|
52
41
|
background: var(
|
|
53
42
|
--dx-g-brand-current-button-color-background-inactive,
|
|
@@ -76,11 +65,10 @@ button.nav-list-item:active > dx-icon,
|
|
|
76
65
|
}
|
|
77
66
|
|
|
78
67
|
.nav-list-item_default.state-active {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
);
|
|
83
|
-
color: var(--dx-g-brand-current-color, var(--dx-g-brand-default-color));
|
|
68
|
+
color: var(--dx-g-blue-vibrant-50);
|
|
69
|
+
font-family: var(--dx-g-font-sans);
|
|
70
|
+
font-size: var(--dx-g-text-base);
|
|
71
|
+
border-bottom: var(--dx-g-spacing-xs) solid var(--dx-g-blue-vibrant-50);
|
|
84
72
|
}
|
|
85
73
|
|
|
86
74
|
@media (max-width: 1160px) {
|
|
@@ -100,3 +88,10 @@ button.nav-list-item:active > dx-icon,
|
|
|
100
88
|
);
|
|
101
89
|
}
|
|
102
90
|
}
|
|
91
|
+
|
|
92
|
+
@media (max-width: 768px) {
|
|
93
|
+
.nav-list-item {
|
|
94
|
+
height: var(--dx-g-spacing-3xl);
|
|
95
|
+
display: flex;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -58,7 +58,7 @@ header.state-show-mobile-nav .header_l2_group-nav_overflow {
|
|
|
58
58
|
/* Second row */
|
|
59
59
|
|
|
60
60
|
.header_l2 {
|
|
61
|
-
background:
|
|
61
|
+
background: white;
|
|
62
62
|
padding: var(--dx-g-spacing-lg) var(--dx-g-global-header-padding-horizontal);
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -70,6 +70,7 @@ header.state-show-mobile-nav .header_l2_group-nav_overflow {
|
|
|
70
70
|
|
|
71
71
|
.header_l2_group-title {
|
|
72
72
|
flex-shrink: 0;
|
|
73
|
+
padding-right: var(--dx-g-spacing-xl);
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
.header_l2_group-title
|
|
@@ -17,6 +17,14 @@ dx-tree:not(:last-child) {
|
|
|
17
17
|
margin-bottom: var(--dx-g-spacing-sm);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
dx-tree {
|
|
21
|
+
border-top: 1px solid var(--dx-g-gray-90);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
dx-tree:last-child {
|
|
25
|
+
border-bottom: 1px solid var(--dx-g-gray-90);
|
|
26
|
+
}
|
|
27
|
+
|
|
20
28
|
.header {
|
|
21
29
|
box-sizing: content-box;
|
|
22
30
|
display: flex;
|
|
@@ -53,7 +61,7 @@ dx-tree:not(:last-child) {
|
|
|
53
61
|
}
|
|
54
62
|
|
|
55
63
|
.container {
|
|
56
|
-
background-color:
|
|
64
|
+
background-color: white;
|
|
57
65
|
display: flex;
|
|
58
66
|
flex-direction: column;
|
|
59
67
|
height: var(--dx-c-sidebar-height);
|
|
@@ -66,6 +74,7 @@ dx-tree:not(:last-child) {
|
|
|
66
74
|
var(--dx-c-sidebar-left-padding) - var(--dx-g-spacing-md)
|
|
67
75
|
);
|
|
68
76
|
|
|
77
|
+
border-right: 1px solid var(--dx-g-gray-90);
|
|
69
78
|
box-shadow: 2px 0 0 0 var(--border-color);
|
|
70
79
|
min-height: var(--dx-c-sidebar-min-height);
|
|
71
80
|
padding: var(--dx-c-sidebar-vertical-padding) 0
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
.sidebar-item-selected {
|
|
10
10
|
background: var(--dx-g-cloud-blue-vibrant-95);
|
|
11
|
-
box-shadow: inset var(--dx-g-spacing-xs) 0 0 0 var(--dx-g-blue-vibrant-
|
|
11
|
+
box-shadow: inset var(--dx-g-spacing-xs) 0 0 0 var(--dx-g-blue-vibrant-40);
|
|
12
12
|
border-radius: 0;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.sidebar-item {
|
|
16
|
-
padding: 6px var(--dx-g-spacing-
|
|
16
|
+
padding: 6px var(--dx-g-spacing-xl);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.sidebar-item:not(.sidebar-item-selected):hover {
|
|
20
|
-
|
|
20
|
+
color: var(--dx-g-blue-vibrant-50);
|
|
21
21
|
}
|