@salesforcedevs/docs-components 1.3.194-langpicker2-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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/docs-components",
3
- "version": "1.3.194-langpicker2-alpha",
3
+ "version": "1.3.194-langpicker4-alpha",
4
4
  "description": "Docs Lightning web components for DSC",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
@@ -24,6 +24,8 @@
24
24
  coveo-search-hub={coveoSearchHub}
25
25
  coveo-advanced-query-config={coveoAdvancedQueryConfig}
26
26
  ontogglesidebar={onToggleSidebar}
27
+ languages={languages}
28
+ language={language}
27
29
  >
28
30
  <slot name="sidebar-header" slot="header"></slot>
29
31
  </dx-sidebar>
@@ -37,6 +37,8 @@ export default class ContentLayout extends LightningElement {
37
37
  @api coveoSearchHub!: string;
38
38
  @api coveoAdvancedQueryConfig!: string;
39
39
  @api useOldSidebar?: boolean = false;
40
+ @api languages!: OptionWithLink[];
41
+ @api language!: string;
40
42
 
41
43
  @api
42
44
  get breadcrumbs() {
@@ -74,26 +76,6 @@ export default class ContentLayout extends LightningElement {
74
76
  );
75
77
  }
76
78
 
77
- @api
78
- get languages() {
79
- return this._languages;
80
- }
81
-
82
- set languages(value) {
83
- this._languages = toJson(value);
84
- }
85
-
86
- @api
87
- get language() {
88
- return this._language;
89
- }
90
-
91
- set language(value) {
92
- if (this._language !== value) {
93
- this._language = value;
94
- }
95
- }
96
-
97
79
  @track
98
80
  private _sidebarContent: unknown;
99
81
 
@@ -109,8 +91,6 @@ export default class ContentLayout extends LightningElement {
109
91
  private hasRendered: boolean = false;
110
92
  private contentLoaded: boolean = false;
111
93
  private sidebarOpen: boolean = false;
112
- private _languages!: OptionWithLink[];
113
- private _language: string | null = null;
114
94
 
115
95
  get shouldDisplayFeedback() {
116
96
  return this.contentLoaded && typeof Sprig !== "undefined";
@@ -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
  }