@salesforcedevs/docs-components 1.3.194-langpicker3-alpha → 1.3.194-langpicker4-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
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@import "dxHelpers/reset";
|
|
2
|
+
|
|
3
|
+
:host {
|
|
4
|
+
--button-primary-color: var(--dx-g-blue-vibrant-50);
|
|
5
|
+
--button-primary-color-hover: var(--dx-g-cloud-blue-vibrant-95);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.footer_lang-dropdown {
|
|
9
|
+
padding: var(--dx-g-spacing-2xs) var(--dx-g-spacing-md);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.footer_lang-dropdown > dx-button {
|
|
13
|
+
--dx-c-button-primary-color: var(--button-primary-color);
|
|
14
|
+
--dx-c-slot-empty-width: min-content;
|
|
15
|
+
--border-color: var(--button-primary-color);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.footer_lang-dropdown:hover,
|
|
19
|
+
.footer_lang-dropdown:active,
|
|
20
|
+
.footer_lang-dropdown:focus {
|
|
21
|
+
background-color: var(--button-primary-color-hover);
|
|
22
|
+
|
|
23
|
+
--border-color: var(--button-primary-color-hover);
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div if:false={mobile} class="footer-nav">
|
|
3
|
+
<dx-dropdown
|
|
4
|
+
if:true={hasLanguages}
|
|
5
|
+
class="footer_lang-dropdown"
|
|
6
|
+
options={languages}
|
|
7
|
+
small
|
|
8
|
+
value-path={langValuePath}
|
|
9
|
+
value={language}
|
|
10
|
+
onchange={onLangChange}
|
|
11
|
+
>
|
|
12
|
+
<dx-button
|
|
13
|
+
aria-label="Select Language"
|
|
14
|
+
variant="inline"
|
|
15
|
+
icon-size="small"
|
|
16
|
+
icon-symbol="world"
|
|
17
|
+
>
|
|
18
|
+
{languageLabel}
|
|
19
|
+
</dx-button>
|
|
20
|
+
</dx-dropdown>
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* eslint-disable @lwc/lwc/no-document-query */
|
|
2
|
+
import { LightningElement, api, track } from "lwc";
|
|
3
|
+
import type { OptionWithLink } from "typings/custom";
|
|
4
|
+
import { toJson } from "dxUtils/normalizers";
|
|
5
|
+
import get from "lodash.get";
|
|
6
|
+
|
|
7
|
+
export default class ContentLayout extends LightningElement {
|
|
8
|
+
@api langValuePath: string = "id";
|
|
9
|
+
|
|
10
|
+
@api
|
|
11
|
+
get languages() {
|
|
12
|
+
return this._languages;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
set languages(value) {
|
|
16
|
+
this._languages = toJson(value);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@api
|
|
20
|
+
get language() {
|
|
21
|
+
return this._language;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
set language(value) {
|
|
25
|
+
if (this._language !== value) {
|
|
26
|
+
this._language = value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private _languages!: OptionWithLink[];
|
|
31
|
+
private _language: string | null = null;
|
|
32
|
+
|
|
33
|
+
private get hasLanguages(): boolean {
|
|
34
|
+
return !!(this.languages && this.languages.length);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private get languageLabel(): string {
|
|
38
|
+
return (
|
|
39
|
+
(this.language &&
|
|
40
|
+
this.languages.find(
|
|
41
|
+
(lang) => get(lang, this.langValuePath) === this.language
|
|
42
|
+
)?.label) ||
|
|
43
|
+
this.languages[0].label
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
private onLangChange(event: CustomEvent<string>): void {
|
|
48
|
+
const { detail } = event;
|
|
49
|
+
this._language = detail;
|
|
50
|
+
|
|
51
|
+
this.dispatchEvent(new CustomEvent("langchange", { detail }));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
}
|
|
@@ -49,24 +49,6 @@ header:not(.has-brand) > .header_l2 {
|
|
|
49
49
|
margin-left: var(--dx-g-spacing-sm);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.header_lang-dropdown {
|
|
53
|
-
--button-primary-color: var(--dx-g-blue-vibrant-40);
|
|
54
|
-
--button-primary-color-hover: var(--dx-g-blue-vibrant-30);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.header_lang-dropdown > dx-button {
|
|
58
|
-
--dx-c-button-primary-color: var(--button-primary-color);
|
|
59
|
-
--dx-c-button-primary-color-hover: var(--button-primary-color-hover);
|
|
60
|
-
--dx-c-slot-empty-width: min-content;
|
|
61
|
-
--border-color: var(--button-primary-color);
|
|
62
|
-
|
|
63
|
-
border-bottom: 1px dashed var(--border-color);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.header_lang-dropdown > dx-button:hover {
|
|
67
|
-
--border-color: var(--button-primary-color-hover);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
52
|
.has-brand .header_l2_group-title {
|
|
71
53
|
padding-bottom: calc(var(--dx-g-spacing-md) + 2px);
|
|
72
54
|
}
|