@salesforcedevs/docs-components 1.3.194-langpicker19-alpha → 1.3.194-langpicker20-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/doc/contentLayout/contentLayout.html +8 -2
- package/src/modules/doc/contentLayout/contentLayout.ts +5 -2
- package/src/modules/doc/sidebarFooterNav/sidebarFooterNav.ts +38 -19
- package/src/modules/doc/xmlContent/types.ts +1 -1
- package/src/modules/doc/xmlContent/xmlContent.html +4 -1
- package/src/modules/doc/xmlContent/xmlContent.ts +18 -22
- /package/src/modules/doc/sidebarFooterNav/{sidebarFooterNav.html → footerNav.html} +0 -0
package/package.json
CHANGED
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
value={sidebarValue}
|
|
8
8
|
header={sidebarHeader}
|
|
9
9
|
ontogglesidebar={onToggleSidebar}
|
|
10
|
-
|
|
10
|
+
languages={languages}
|
|
11
|
+
language={language}
|
|
12
|
+
bail-href={bailHref}
|
|
13
|
+
bail-label={bailLabel}
|
|
11
14
|
>
|
|
12
15
|
<slot name="sidebar-header" slot="header"></slot>
|
|
13
16
|
</dx-sidebar-old>
|
|
@@ -23,7 +26,10 @@
|
|
|
23
26
|
coveo-search-hub={coveoSearchHub}
|
|
24
27
|
coveo-advanced-query-config={coveoAdvancedQueryConfig}
|
|
25
28
|
ontogglesidebar={onToggleSidebar}
|
|
26
|
-
|
|
29
|
+
languages={languages}
|
|
30
|
+
language={language}
|
|
31
|
+
bail-href={bailHref}
|
|
32
|
+
bail-label={bailLabel}
|
|
27
33
|
>
|
|
28
34
|
<slot name="sidebar-header" slot="header"></slot>
|
|
29
35
|
</dx-sidebar>
|
|
@@ -4,7 +4,7 @@ import { closest } from "kagekiri";
|
|
|
4
4
|
import { toJson } from "dxUtils/normalizers";
|
|
5
5
|
import { highlightTerms } from "dxUtils/highlight";
|
|
6
6
|
import { SearchSyncer } from "docUtils/searchSyncer";
|
|
7
|
-
import type {
|
|
7
|
+
import type { OptionWithLink } from "typings/custom";
|
|
8
8
|
|
|
9
9
|
type AnchorMap = { [key: string]: { intersect: boolean; id: string } };
|
|
10
10
|
|
|
@@ -37,7 +37,10 @@ export default class ContentLayout extends LightningElement {
|
|
|
37
37
|
@api coveoSearchHub!: string;
|
|
38
38
|
@api coveoAdvancedQueryConfig!: string;
|
|
39
39
|
@api useOldSidebar?: boolean = false;
|
|
40
|
-
@api
|
|
40
|
+
@api languages!: OptionWithLink[];
|
|
41
|
+
@api language!: string;
|
|
42
|
+
@api bailHref!: string;
|
|
43
|
+
@api bailLabel!: string;
|
|
41
44
|
|
|
42
45
|
@api
|
|
43
46
|
get breadcrumbs() {
|
|
@@ -1,52 +1,71 @@
|
|
|
1
1
|
/* eslint-disable @lwc/lwc/no-document-query */
|
|
2
2
|
import { LightningElement, api } from "lwc";
|
|
3
|
-
import type {
|
|
3
|
+
import type { OptionWithLink } from "typings/custom";
|
|
4
|
+
import { toJson } from "dxUtils/normalizers";
|
|
4
5
|
import get from "lodash.get";
|
|
5
6
|
import { track } from "dxUtils/analytics";
|
|
6
7
|
|
|
7
8
|
const MOBILE_SIZE_MATCH = "768px";
|
|
8
9
|
|
|
9
|
-
export default class
|
|
10
|
+
export default class ContentLayout extends LightningElement {
|
|
10
11
|
@api langValuePath: string = "id";
|
|
12
|
+
@api bailHref?: string | null = null;
|
|
13
|
+
@api bailLabel?: string | null = null;
|
|
11
14
|
|
|
12
15
|
@api
|
|
13
|
-
|
|
14
|
-
this._languages
|
|
15
|
-
this._language = values?.language || null;
|
|
16
|
-
this._bailHref = values?.bailHref;
|
|
17
|
-
this._bailLabel = values?.bailLabel;
|
|
16
|
+
get languages() {
|
|
17
|
+
return this._languages;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
set languages(value) {
|
|
21
|
+
this._languages = toJson(value);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@api
|
|
25
|
+
get language() {
|
|
26
|
+
return this._language;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
set language(value) {
|
|
30
|
+
if (this._language !== value) {
|
|
31
|
+
this._language = value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
private _languages!: OptionWithLink[];
|
|
21
36
|
private _language: string | null = null;
|
|
22
|
-
private _bailHref?: string | null = null;
|
|
23
|
-
private _bailLabel?: string | null = null;
|
|
24
37
|
private mobile: boolean = false;
|
|
25
38
|
private matchMedia!: MediaQueryList;
|
|
26
39
|
|
|
27
40
|
private get hasLanguages(): boolean {
|
|
28
|
-
return !!(this.
|
|
41
|
+
return !!(this.languages && this.languages.length > 1);
|
|
29
42
|
}
|
|
30
43
|
|
|
31
44
|
private get languageLabel(): string {
|
|
32
45
|
return (
|
|
33
|
-
(this.
|
|
34
|
-
this.
|
|
35
|
-
(lang) => get(lang, this.langValuePath) === this.
|
|
46
|
+
(this.language &&
|
|
47
|
+
this.languages.find(
|
|
48
|
+
(lang) => get(lang, this.langValuePath) === this.language
|
|
36
49
|
)?.label) ||
|
|
37
|
-
this.
|
|
50
|
+
this.languages[0].label
|
|
38
51
|
);
|
|
39
52
|
}
|
|
40
53
|
|
|
41
54
|
get hasBailLink(): boolean {
|
|
42
|
-
return !!(this.
|
|
55
|
+
return !!(this.bailHref && this.bailLabel);
|
|
43
56
|
}
|
|
44
57
|
|
|
45
58
|
private onLangChange(event: CustomEvent<string>): void {
|
|
46
59
|
const { detail } = event;
|
|
47
60
|
this._language = detail;
|
|
48
61
|
|
|
49
|
-
this.dispatchEvent(
|
|
62
|
+
this.dispatchEvent(
|
|
63
|
+
new CustomEvent("langchange", {
|
|
64
|
+
detail,
|
|
65
|
+
bubbles: true,
|
|
66
|
+
composed: true
|
|
67
|
+
})
|
|
68
|
+
);
|
|
50
69
|
}
|
|
51
70
|
|
|
52
71
|
private getFilename = function (path: string) {
|
|
@@ -56,14 +75,14 @@ export default class SidebarFooterNav extends LightningElement {
|
|
|
56
75
|
private handleBailClick(event: Event) {
|
|
57
76
|
const payload = {
|
|
58
77
|
click_text: "pdf",
|
|
59
|
-
click_url: this.
|
|
78
|
+
click_url: this.bailHref,
|
|
60
79
|
element_title: "pdf",
|
|
61
80
|
element_type: "link",
|
|
62
81
|
content_category: "download"
|
|
63
82
|
};
|
|
64
83
|
track(event.target!, "custEv_pdfDownload", {
|
|
65
84
|
...payload,
|
|
66
|
-
file_name: this.getFilename(this.
|
|
85
|
+
file_name: this.getFilename(this.bailHref!),
|
|
67
86
|
file_extension: "pdf"
|
|
68
87
|
});
|
|
69
88
|
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
onselect={handleSelect}
|
|
13
13
|
use-old-sidebar={useOldSidebar}
|
|
14
14
|
onlangchange={handleLanguageChange}
|
|
15
|
-
|
|
15
|
+
languages={sidebarFooterContent.languages}
|
|
16
|
+
language={sidebarFooterContent.language}
|
|
17
|
+
bail-href={sidebarFooterContent.bailHref}
|
|
18
|
+
bail-label={sidebarFooterContent.bailLabel}
|
|
16
19
|
>
|
|
17
20
|
<doc-phase
|
|
18
21
|
slot="version-banner"
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
DocLanguage,
|
|
8
8
|
DocVersion,
|
|
9
9
|
TreeNode,
|
|
10
|
-
|
|
10
|
+
SiderbarFooter,
|
|
11
11
|
HistoryState,
|
|
12
12
|
PageReference,
|
|
13
13
|
TocMap
|
|
@@ -16,7 +16,6 @@ import { SearchSyncer } from "docUtils/searchSyncer";
|
|
|
16
16
|
import { LightningElementWithState } from "dxBaseElements/lightningElementWithState";
|
|
17
17
|
import { logCoveoPageView, oldVersionDocInfo } from "docUtils/utils";
|
|
18
18
|
import { Breadcrumb, DocPhaseInfo, Language } from "typings/custom";
|
|
19
|
-
import { track as trackGTM } from "dxUtils/analytics";
|
|
20
19
|
|
|
21
20
|
// TODO: Imitating from actual implementation as doc-content use it like this. We should refactor it later.
|
|
22
21
|
const handleContentError = (error: any): void => console.log(error);
|
|
@@ -26,6 +25,14 @@ const PIXEL_PER_CHARACTER_MAP: { [key: string]: number } = {
|
|
|
26
25
|
"ja-jp": 12.5
|
|
27
26
|
};
|
|
28
27
|
|
|
28
|
+
const defaultSidebarFooter: SiderbarFooter = {
|
|
29
|
+
subtitle: "",
|
|
30
|
+
bailHref: "",
|
|
31
|
+
bailLabel: "",
|
|
32
|
+
languages: [],
|
|
33
|
+
language: "",
|
|
34
|
+
headerHref: ""
|
|
35
|
+
};
|
|
29
36
|
export default class DocXmlContent extends LightningElementWithState<{
|
|
30
37
|
isFetchingDocument: boolean;
|
|
31
38
|
isFetchingContent: boolean;
|
|
@@ -70,9 +77,9 @@ export default class DocXmlContent extends LightningElementWithState<{
|
|
|
70
77
|
private version: DocVersion | null = null;
|
|
71
78
|
private docTitle = "";
|
|
72
79
|
private _pathName = "";
|
|
73
|
-
private sidebarFooterObj?: SidebarFooter | null = null;
|
|
74
80
|
private listenerAttached = false;
|
|
75
81
|
private _enableCoveo?: boolean = false;
|
|
82
|
+
private sidebarFooterContent: SiderbarFooter = { ...defaultSidebarFooter };
|
|
76
83
|
|
|
77
84
|
private searchSyncer = new SearchSyncer({
|
|
78
85
|
callbacks: {
|
|
@@ -353,17 +360,6 @@ export default class DocXmlContent extends LightningElementWithState<{
|
|
|
353
360
|
({ id }) => id === event.detail
|
|
354
361
|
);
|
|
355
362
|
this.pageReference.docId = this.language!.url;
|
|
356
|
-
|
|
357
|
-
trackGTM(event.target!, "custEv_ctaLinkClick", {
|
|
358
|
-
click_text: event.detail,
|
|
359
|
-
element_title: "language selector",
|
|
360
|
-
click_url: `${window.location.origin}${this.pageReferenceToString(
|
|
361
|
-
this.pageReference
|
|
362
|
-
)}`,
|
|
363
|
-
element_type: "link",
|
|
364
|
-
content_category: "cta"
|
|
365
|
-
});
|
|
366
|
-
|
|
367
363
|
this.updateUrl();
|
|
368
364
|
this.fetchDocument();
|
|
369
365
|
};
|
|
@@ -447,7 +443,7 @@ export default class DocXmlContent extends LightningElementWithState<{
|
|
|
447
443
|
this.availableVersions = data.availableVersions;
|
|
448
444
|
this.pdfUrl = data.pdfUrl;
|
|
449
445
|
|
|
450
|
-
this.
|
|
446
|
+
this.updateSidebarFooter();
|
|
451
447
|
|
|
452
448
|
this.buildBreadcrumbs();
|
|
453
449
|
|
|
@@ -511,22 +507,22 @@ export default class DocXmlContent extends LightningElementWithState<{
|
|
|
511
507
|
});
|
|
512
508
|
}
|
|
513
509
|
|
|
514
|
-
|
|
510
|
+
updateSidebarFooter(): void {
|
|
515
511
|
if (this.docTitle) {
|
|
516
|
-
this.
|
|
512
|
+
this.sidebarFooterContent.subtitle = this.docTitle;
|
|
517
513
|
}
|
|
518
514
|
|
|
519
515
|
if (this.pdfUrl) {
|
|
520
|
-
this.
|
|
521
|
-
this.
|
|
516
|
+
this.sidebarFooterContent.bailHref = this.pdfUrl;
|
|
517
|
+
this.sidebarFooterContent.bailLabel = "PDF";
|
|
522
518
|
}
|
|
523
519
|
|
|
524
|
-
this.
|
|
525
|
-
this.
|
|
520
|
+
this.sidebarFooterContent.languages = this.availableLanguages;
|
|
521
|
+
this.sidebarFooterContent.language = this.language?.id;
|
|
526
522
|
|
|
527
523
|
if (this.pageReference) {
|
|
528
524
|
const { docId, deliverable, page } = this.pageReference;
|
|
529
|
-
this.
|
|
525
|
+
this.sidebarFooterContent.headerHref = `/${page}/${docId}/${deliverable}/`;
|
|
530
526
|
}
|
|
531
527
|
}
|
|
532
528
|
|
|
File without changes
|