@salesforcedevs/dx-components 1.3.194-langpicker2-alpha → 1.3.194-langpicker21-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 +1 -1
- package/src/modules/dx/dropdownOption/dropdownOption.css +17 -2
- package/src/modules/dx/sidebar/sidebar.html +19 -0
- package/src/modules/dx/sidebar/sidebar.ts +19 -0
- package/src/modules/dx/sidebarOld/sidebarOld.css +0 -13
- package/src/modules/dx/sidebarOld/sidebarOld.html +18 -20
- package/src/modules/dx/sidebarOld/sidebarOld.ts +11 -42
- package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +23 -6
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.option:active {
|
|
41
|
-
background: var(--dx-g-blue-vibrant-95) !important;
|
|
41
|
+
background: var(--dx-g-cloud-blue-vibrant-95) !important;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
.option:not(.option-active):hover {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
.option-active {
|
|
49
|
-
background: var(--dx-g-blue-vibrant-95);
|
|
49
|
+
background: var(--dx-g-cloud-blue-vibrant-95);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
.option_details {
|
|
@@ -79,6 +79,21 @@
|
|
|
79
79
|
-webkit-box-orient: vertical;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
.option-docoption {
|
|
83
|
+
align-items: center;
|
|
84
|
+
flex-direction: row;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.option-docoption .option_label {
|
|
88
|
+
color: var(--dx-g-gray-10);
|
|
89
|
+
font-weight: normal !important;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.option-docoption.option-active .option_label {
|
|
93
|
+
color: var(--dx-c-dropdown-option-label-color, var(--dx-g-blue-vibrant-50));
|
|
94
|
+
font-weight: var(--dx-g-font-bold);
|
|
95
|
+
}
|
|
96
|
+
|
|
82
97
|
.option_label > *:last-child {
|
|
83
98
|
margin-left: var(--dx-g-spacing-sm);
|
|
84
99
|
}
|
|
@@ -79,6 +79,13 @@
|
|
|
79
79
|
title="No Results"
|
|
80
80
|
size="small"
|
|
81
81
|
></dx-empty-state>
|
|
82
|
+
<div if:true={hasSidebarFooter} class="footer-nav">
|
|
83
|
+
<doc-sidebar-footer-nav
|
|
84
|
+
lang-value-path={langValuePath}
|
|
85
|
+
language={language}
|
|
86
|
+
languages={languages}
|
|
87
|
+
></doc-sidebar-footer-nav>
|
|
88
|
+
</div>
|
|
82
89
|
</div>
|
|
83
90
|
<div class="sidebar-content sidebar-content-tree">
|
|
84
91
|
<dx-tree
|
|
@@ -92,5 +99,17 @@
|
|
|
92
99
|
onselecteditemrendered={onSelectedItemRendered}
|
|
93
100
|
></dx-tree>
|
|
94
101
|
</div>
|
|
102
|
+
|
|
103
|
+
<template if:true={hasSidebarFooter}>
|
|
104
|
+
<div class="footer-nav">
|
|
105
|
+
<doc-sidebar-footer-nav
|
|
106
|
+
lang-value-path={langValuePath}
|
|
107
|
+
language={language}
|
|
108
|
+
languages={languages}
|
|
109
|
+
bail-href={bailHref}
|
|
110
|
+
bail-label={bailLabel}
|
|
111
|
+
></doc-sidebar-footer-nav>
|
|
112
|
+
</div>
|
|
113
|
+
</template>
|
|
95
114
|
</div>
|
|
96
115
|
</template>
|
|
@@ -5,6 +5,7 @@ import { getSidebarSearchParams } from "dxUtils/coveo";
|
|
|
5
5
|
import { toJson } from "dxUtils/normalizers";
|
|
6
6
|
import SidebarSearch from "dx/sidebarSearch";
|
|
7
7
|
import { SidebarBase } from "dxBaseElements/sidebarBase";
|
|
8
|
+
import type { OptionWithLink } from "typings/custom";
|
|
8
9
|
|
|
9
10
|
const MOBILE_SIZE_MATCH = "768px";
|
|
10
11
|
|
|
@@ -14,6 +15,11 @@ export default class Sidebar extends SidebarBase {
|
|
|
14
15
|
@api coveoSearchHub!: string;
|
|
15
16
|
@api coveoAdvancedQueryConfig!: string;
|
|
16
17
|
@api header: string = "";
|
|
18
|
+
@api langValuePath: string = "id";
|
|
19
|
+
@api languages!: OptionWithLink[];
|
|
20
|
+
@api language!: string;
|
|
21
|
+
@api bailHref!: string;
|
|
22
|
+
@api bailLabel!: string;
|
|
17
23
|
|
|
18
24
|
@api
|
|
19
25
|
get value() {
|
|
@@ -256,4 +262,17 @@ export default class Sidebar extends SidebarBase {
|
|
|
256
262
|
this.template.querySelector("dx-sidebar-search") as any
|
|
257
263
|
)?.requestOpenDropdown(false);
|
|
258
264
|
}
|
|
265
|
+
|
|
266
|
+
private get hasSidebarFooter(): boolean {
|
|
267
|
+
if (this.mobile) {
|
|
268
|
+
return (
|
|
269
|
+
!!(this.languages && toJson(this.languages).length > 1) &&
|
|
270
|
+
this.expanded
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
return !!(
|
|
274
|
+
(this.languages && toJson(this.languages).length > 1) ||
|
|
275
|
+
Boolean(this.bailHref)
|
|
276
|
+
);
|
|
277
|
+
}
|
|
259
278
|
}
|
|
@@ -24,16 +24,3 @@ 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
|
-
}
|
|
@@ -67,27 +67,25 @@
|
|
|
67
67
|
title="No Results"
|
|
68
68
|
if:false={anyResultMatch}
|
|
69
69
|
></dx-empty-state>
|
|
70
|
+
<div if:true={hasSidebarFooter} class="footer-nav">
|
|
71
|
+
<doc-sidebar-footer-nav
|
|
72
|
+
lang-value-path={langValuePath}
|
|
73
|
+
language={language}
|
|
74
|
+
languages={languages}
|
|
75
|
+
></doc-sidebar-footer-nav>
|
|
76
|
+
</div>
|
|
70
77
|
</template>
|
|
71
78
|
|
|
72
|
-
<
|
|
73
|
-
<
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
>
|
|
82
|
-
|
|
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>
|
|
79
|
+
<template if:true={hasSidebarFooter}>
|
|
80
|
+
<div class="footer-nav">
|
|
81
|
+
<doc-sidebar-footer-nav
|
|
82
|
+
lang-value-path={langValuePath}
|
|
83
|
+
language={language}
|
|
84
|
+
languages={languages}
|
|
85
|
+
bail-href={bailHref}
|
|
86
|
+
bail-label={bailLabel}
|
|
87
|
+
></doc-sidebar-footer-nav>
|
|
88
|
+
</div>
|
|
89
|
+
</template>
|
|
92
90
|
</div>
|
|
93
91
|
</template>
|
|
@@ -5,7 +5,6 @@ import { TreeNode } from "typings/custom";
|
|
|
5
5
|
import { toJson } from "dxUtils/normalizers";
|
|
6
6
|
import { SidebarBase } from "dxBaseElements/sidebarBase";
|
|
7
7
|
import type { OptionWithLink } from "typings/custom";
|
|
8
|
-
import get from "lodash.get";
|
|
9
8
|
|
|
10
9
|
const WAIT_TIME = 500;
|
|
11
10
|
const MOBILE_SIZE_MATCH = "768px";
|
|
@@ -13,6 +12,10 @@ const MOBILE_SIZE_MATCH = "768px";
|
|
|
13
12
|
export default class Sidebar extends SidebarBase {
|
|
14
13
|
@api header: string = "";
|
|
15
14
|
@api langValuePath: string = "id";
|
|
15
|
+
@api languages!: OptionWithLink[];
|
|
16
|
+
@api language!: string;
|
|
17
|
+
@api bailHref!: string;
|
|
18
|
+
@api bailLabel!: string;
|
|
16
19
|
|
|
17
20
|
@api
|
|
18
21
|
get value() {
|
|
@@ -40,26 +43,6 @@ export default class Sidebar extends SidebarBase {
|
|
|
40
43
|
this.assignFilteredTrees();
|
|
41
44
|
}
|
|
42
45
|
|
|
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
|
-
|
|
63
46
|
private expanded: boolean = true;
|
|
64
47
|
private _searchTimeout?: number;
|
|
65
48
|
private _value?: string = undefined;
|
|
@@ -71,9 +54,6 @@ export default class Sidebar extends SidebarBase {
|
|
|
71
54
|
private matchMedia!: MediaQueryList;
|
|
72
55
|
private valueToLabel: { [key: string]: string } = {};
|
|
73
56
|
|
|
74
|
-
private _languages!: OptionWithLink[];
|
|
75
|
-
private _language: string | null = null;
|
|
76
|
-
|
|
77
57
|
private get anyResultMatch() {
|
|
78
58
|
return this.filteredTrees.length > 0;
|
|
79
59
|
}
|
|
@@ -217,24 +197,13 @@ export default class Sidebar extends SidebarBase {
|
|
|
217
197
|
}
|
|
218
198
|
}
|
|
219
199
|
|
|
220
|
-
private get
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
(this.
|
|
227
|
-
this.languages.find(
|
|
228
|
-
(lang) => get(lang, this.langValuePath) === this.language
|
|
229
|
-
)?.label) ||
|
|
230
|
-
this.languages[0].label
|
|
200
|
+
private get hasSidebarFooter(): boolean {
|
|
201
|
+
if (this.mobile) {
|
|
202
|
+
return !!(this.languages && toJson(this.languages).length > 1);
|
|
203
|
+
}
|
|
204
|
+
return !!(
|
|
205
|
+
(this.languages && toJson(this.languages).length > 1) ||
|
|
206
|
+
Boolean(this.bailHref)
|
|
231
207
|
);
|
|
232
208
|
}
|
|
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
|
-
}
|
|
240
209
|
}
|
|
@@ -13,16 +13,13 @@
|
|
|
13
13
|
--dx-c-sidebar-vertical-padding: var(--dx-g-spacing-md);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
dx-tree:not(:last-child) {
|
|
17
|
-
margin-bottom: var(--dx-g-spacing-sm);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
16
|
dx-tree {
|
|
21
17
|
border-top: 1px solid var(--dx-g-gray-90);
|
|
22
18
|
}
|
|
23
19
|
|
|
24
20
|
dx-tree:last-child {
|
|
25
21
|
border-bottom: 1px solid var(--dx-g-gray-90);
|
|
22
|
+
margin-bottom: var(--dx-g-spacing-sm);
|
|
26
23
|
}
|
|
27
24
|
|
|
28
25
|
.header {
|
|
@@ -77,8 +74,7 @@ dx-tree:last-child {
|
|
|
77
74
|
border-right: 1px solid var(--dx-g-gray-90);
|
|
78
75
|
box-shadow: 2px 0 0 0 var(--border-color);
|
|
79
76
|
min-height: var(--dx-c-sidebar-min-height);
|
|
80
|
-
padding: var(--dx-c-sidebar-vertical-padding) 0
|
|
81
|
-
var(--dx-c-sidebar-vertical-padding) var(--left-spacing);
|
|
77
|
+
padding: var(--dx-c-sidebar-vertical-padding) 0 var(--dx-g-spacing-2xs) 0;
|
|
82
78
|
position: relative;
|
|
83
79
|
}
|
|
84
80
|
|
|
@@ -136,9 +132,30 @@ dx-tree:last-child {
|
|
|
136
132
|
white-space: nowrap;
|
|
137
133
|
}
|
|
138
134
|
|
|
135
|
+
.footer-nav {
|
|
136
|
+
display: flex;
|
|
137
|
+
padding: 0 var(--dx-g-spacing-sm) 0 var(--dx-g-spacing-2xl);
|
|
138
|
+
position: fixed;
|
|
139
|
+
bottom: 0;
|
|
140
|
+
left: 0;
|
|
141
|
+
width: inherit;
|
|
142
|
+
background: white;
|
|
143
|
+
border-top: 1px solid var(--dx-g-gray-90);
|
|
144
|
+
border-right: 1px solid var(--dx-g-gray-90);
|
|
145
|
+
height: var(--dx-g-spacing-xl);
|
|
146
|
+
}
|
|
147
|
+
|
|
139
148
|
@media screen and (max-width: 768px) {
|
|
140
149
|
.padding-horizontal {
|
|
141
150
|
padding-left: var(--dx-g-spacing-lg);
|
|
142
151
|
padding-right: var(--dx-g-spacing-md);
|
|
143
152
|
}
|
|
153
|
+
|
|
154
|
+
.header_l2_group-title .header_lang-dropdown {
|
|
155
|
+
margin-left: auto;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.header_lang-dropdown > dx-button {
|
|
159
|
+
padding: var(--dx-g-spacing-2xs) 0;
|
|
160
|
+
}
|
|
144
161
|
}
|