@salesforcedevs/docs-components 1.3.52 → 1.3.54-alpha-1
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/amfReference/amfReference.html +0 -1
- package/src/modules/doc/breadcrumbItem/breadcrumbItem.ts +16 -10
- package/src/modules/doc/breadcrumbs/breadcrumbs.html +3 -9
- package/src/modules/doc/breadcrumbs/breadcrumbs.ts +12 -16
- package/src/modules/doc/content/content.css +0 -1
- package/src/modules/doc/contentLayout/contentLayout.ts +3 -4
- package/src/modules/doc/header/header.html +1 -0
- package/src/modules/doc/header/header.ts +24 -0
- package/src/modules/doc/xmlContent/xmlContent.html +2 -2
- package/src/modules/doc/xmlContent/xmlContent.ts +7 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { track } from "dxUtils/analytics";
|
|
2
2
|
import { LightningElement, api } from "lwc";
|
|
3
|
-
import {
|
|
3
|
+
import { BreadcrumbItemVariant } from "typings/custom";
|
|
4
4
|
|
|
5
5
|
const BREADCRUMB_LONG = "breadcrumb_long";
|
|
6
6
|
const BREADCRUMB_BACK_ARROW = "breadcrumb_back-arrow";
|
|
@@ -8,8 +8,7 @@ const BREADCRUMB_BACK_ARROW = "breadcrumb_back-arrow";
|
|
|
8
8
|
const LONG_LABEL_NUMBER = 30;
|
|
9
9
|
export default class BreadcrumbItem extends LightningElement {
|
|
10
10
|
@api href?: string;
|
|
11
|
-
@api
|
|
12
|
-
@api analyticsBasePayload!: AnalyticsPayload;
|
|
11
|
+
@api level?: string;
|
|
13
12
|
|
|
14
13
|
@api
|
|
15
14
|
get label() {
|
|
@@ -51,14 +50,21 @@ export default class BreadcrumbItem extends LightningElement {
|
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
private onLinkClick(event: Event): void {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
track(event.target!, "custEv_breadcrumbClick", {
|
|
54
|
+
click_text: this.label,
|
|
55
|
+
click_url: this.href,
|
|
56
|
+
element_type: "link",
|
|
57
|
+
nav_type: "breadcrumb",
|
|
58
|
+
nav_level: this.level ? this.level + 1 : 1,
|
|
59
|
+
nav_item: this.label
|
|
60
|
+
});
|
|
57
61
|
|
|
58
|
-
track(event.target!,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
track(event.target!, "custEv_linkClick", {
|
|
63
|
+
click_text: this.label,
|
|
64
|
+
click_url: this.href,
|
|
65
|
+
element_title: "a",
|
|
66
|
+
element_type: "link",
|
|
67
|
+
content_category: "cta"
|
|
62
68
|
});
|
|
63
69
|
}
|
|
64
70
|
}
|
|
@@ -3,21 +3,18 @@
|
|
|
3
3
|
<template if:true={displayCrumbs}>
|
|
4
4
|
<template if:false={renderSmallVariant}>
|
|
5
5
|
<doc-breadcrumb-item
|
|
6
|
-
analytics-event={analyticsEventName}
|
|
7
|
-
analytics-base-payload={analyticsBasePayload}
|
|
8
6
|
href={firstCrumb.href}
|
|
9
7
|
label={firstCrumb.label}
|
|
10
8
|
></doc-breadcrumb-item>
|
|
11
9
|
<span class="breadcrumb-item_slash">/</span>
|
|
12
10
|
<template if:true={renderDropdown}>
|
|
13
11
|
<dx-dropdown
|
|
12
|
+
analytics-event="custEv_breadcrumbClick"
|
|
13
|
+
analytics-payload={ANALYTICS_PAYLOAD}
|
|
14
14
|
if:true={renderDropdown}
|
|
15
|
-
analytics-event={analyticsEventName}
|
|
16
|
-
analytics-base-payload={analyticsBasePayload}
|
|
17
15
|
options={dropdownOptions}
|
|
18
16
|
open-on-hover
|
|
19
17
|
placement="bottom"
|
|
20
|
-
suppress-gtm-nav-headings
|
|
21
18
|
variant="indented"
|
|
22
19
|
width="fit-content"
|
|
23
20
|
>
|
|
@@ -32,11 +29,10 @@
|
|
|
32
29
|
</template>
|
|
33
30
|
<template for:each={breadcrumbItems} for:item="breadcrumb">
|
|
34
31
|
<doc-breadcrumb-item
|
|
35
|
-
analytics-event={analyticsEventName}
|
|
36
|
-
analytics-base-payload={analyticsBasePayload}
|
|
37
32
|
href={breadcrumb.href}
|
|
38
33
|
key={breadcrumb.id}
|
|
39
34
|
label={breadcrumb.label}
|
|
35
|
+
level={breadcrumb.level}
|
|
40
36
|
></doc-breadcrumb-item>
|
|
41
37
|
<span class="breadcrumb-item_slash" key={breadcrumb.label}>
|
|
42
38
|
/
|
|
@@ -48,8 +44,6 @@
|
|
|
48
44
|
</template>
|
|
49
45
|
<template if:true={renderSmallVariant}>
|
|
50
46
|
<doc-breadcrumb-item
|
|
51
|
-
analytics-event={analyticsEventName}
|
|
52
|
-
analytics-base-payload={analyticsBasePayload}
|
|
53
47
|
href={lastLinkCrump.href}
|
|
54
48
|
label={lastLinkCrump.label}
|
|
55
49
|
variant="back-arrow"
|
|
@@ -17,11 +17,6 @@ const CONSTANTS = {
|
|
|
17
17
|
dropdownWidth: 32
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
export const ANALYTICS_EVENT_NAME = "custEv_breadcrumbNavClick";
|
|
21
|
-
export const ANALYTICS_BASE_PAYLOAD = {
|
|
22
|
-
navType: "breadcrumb"
|
|
23
|
-
};
|
|
24
|
-
|
|
25
20
|
export default class Breadcrumbs extends LightningElement {
|
|
26
21
|
@api ariaLabel: string = "Documentation Breadcrumbs";
|
|
27
22
|
|
|
@@ -102,14 +97,12 @@ export default class Breadcrumbs extends LightningElement {
|
|
|
102
97
|
return this.breadcrumbs[this.breadcrumbs.length - 1];
|
|
103
98
|
}
|
|
104
99
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
private get analyticsBasePayload() {
|
|
100
|
+
// this payload is only used for breadcrumb dropdown
|
|
101
|
+
private get ANALYTICS_PAYLOAD() {
|
|
110
102
|
return {
|
|
111
|
-
|
|
112
|
-
|
|
103
|
+
element_type: "link",
|
|
104
|
+
nav_type: "breadcrumb",
|
|
105
|
+
nav_level: 1
|
|
113
106
|
};
|
|
114
107
|
}
|
|
115
108
|
|
|
@@ -137,10 +130,13 @@ export default class Breadcrumbs extends LightningElement {
|
|
|
137
130
|
return;
|
|
138
131
|
}
|
|
139
132
|
|
|
140
|
-
this._breadcrumbs = toJson(breadcrumbs).map(
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
this._breadcrumbs = toJson(breadcrumbs).map(
|
|
134
|
+
(crumb: Breadcrumb, index: number) => ({
|
|
135
|
+
...crumb,
|
|
136
|
+
id: crumb.id || crumb.href,
|
|
137
|
+
level: index
|
|
138
|
+
})
|
|
139
|
+
);
|
|
144
140
|
}
|
|
145
141
|
|
|
146
142
|
private updateDropdownOptionAmount(): void {
|
|
@@ -144,7 +144,7 @@ export default class ContentLayout extends LightningElement {
|
|
|
144
144
|
this.searchSyncer.init();
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
document.addEventListener(
|
|
147
|
+
document.body.addEventListener(
|
|
148
148
|
"scroll",
|
|
149
149
|
this.scrollThresholdHandler.bind(this)
|
|
150
150
|
);
|
|
@@ -248,9 +248,8 @@ export default class ContentLayout extends LightningElement {
|
|
|
248
248
|
|
|
249
249
|
scrollThresholdHandler() {
|
|
250
250
|
this.scrollPosition =
|
|
251
|
-
(
|
|
252
|
-
(document.
|
|
253
|
-
document.documentElement.clientHeight)) *
|
|
251
|
+
(document.body.scrollTop /
|
|
252
|
+
(document.body.scrollHeight - window.innerHeight)) *
|
|
254
253
|
100;
|
|
255
254
|
|
|
256
255
|
if (this.scrollPosition > 25 && !this.scrolledTwentyFivePercent) {
|
|
@@ -4,6 +4,7 @@ import type { OptionWithNested, OptionWithLink } from "typings/custom";
|
|
|
4
4
|
import { HeaderBase } from "dxBaseElements/headerBase";
|
|
5
5
|
import { toJson } from "dxUtils/normalizers";
|
|
6
6
|
import get from "lodash.get";
|
|
7
|
+
import { track } from "dxUtils/analytics";
|
|
7
8
|
|
|
8
9
|
const TABLET_MATCH = "980px";
|
|
9
10
|
const MOBILE_MATCH = "880px";
|
|
@@ -143,4 +144,27 @@ export default class Header extends HeaderBase {
|
|
|
143
144
|
this._language = detail;
|
|
144
145
|
this.dispatchEvent(new CustomEvent("langchange", { detail }));
|
|
145
146
|
}
|
|
147
|
+
|
|
148
|
+
private handleBailClick(event: Event) {
|
|
149
|
+
const payload = {
|
|
150
|
+
click_text: "pdf",
|
|
151
|
+
click_url: this.bailHref,
|
|
152
|
+
element_title: "dx-button",
|
|
153
|
+
element_type: "link",
|
|
154
|
+
content_category: "download"
|
|
155
|
+
};
|
|
156
|
+
track(event.target!, "custEv_pdfDownload", {
|
|
157
|
+
...payload,
|
|
158
|
+
file_name: this.getFilename(this.bailHref!),
|
|
159
|
+
file_extension: "pdf"
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
track(event.target!, "custEv_linkClick", {
|
|
163
|
+
...payload
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
private getFilename = function (path: string) {
|
|
168
|
+
return path.substring(path.lastIndexOf("/") + 1);
|
|
169
|
+
};
|
|
146
170
|
}
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
<div slot="sidebar-header" class="document-pickers">
|
|
15
15
|
<dx-dropdown
|
|
16
16
|
data-type="version"
|
|
17
|
-
|
|
18
|
-
analytics-
|
|
17
|
+
analytics-event="custEv_ctaLinkClick"
|
|
18
|
+
analytics-payload={ANALYTICS_PAYLOAD}
|
|
19
19
|
options={versionOptions}
|
|
20
20
|
value={version.id}
|
|
21
21
|
width="290px"
|
|
@@ -63,7 +63,6 @@ export default class DocXmlContent extends LightningElementWithState<{
|
|
|
63
63
|
private sidebarContent: Array<TreeNode> = null;
|
|
64
64
|
private version: DocVersion = null;
|
|
65
65
|
private docTitle = "";
|
|
66
|
-
private analyticsEvent = "custEv_ctaLinkClick";
|
|
67
66
|
private _pathName = "";
|
|
68
67
|
private _pageHeader?: Header;
|
|
69
68
|
private listenerAttached = false;
|
|
@@ -281,6 +280,13 @@ export default class DocXmlContent extends LightningElementWithState<{
|
|
|
281
280
|
);
|
|
282
281
|
}
|
|
283
282
|
|
|
283
|
+
private get ANALYTICS_PAYLOAD() {
|
|
284
|
+
return {
|
|
285
|
+
element_title: "version picker",
|
|
286
|
+
content_category: "cta"
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
|
|
284
290
|
private handlePopState = (): void =>
|
|
285
291
|
this.updatePageReference(this.getReferenceFromUrl());
|
|
286
292
|
|