@salesforcedevs/docs-components 1.3.96-alpha.2 → 1.3.97-topic
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/lwc.config.json +1 -0
- package/package.json +1 -1
- package/src/modules/doc/amfReference/amfReference.css +0 -2
- package/src/modules/doc/amfReference/amfReference.html +8 -4
- package/src/modules/doc/amfReference/amfReference.ts +0 -25
- package/src/modules/doc/content/content.css +25 -10
- package/src/modules/doc/content/content.ts +7 -4
- package/src/modules/doc/contentLayout/contentLayout.css +23 -9
- package/src/modules/doc/contentLayout/contentLayout.html +1 -2
- package/src/modules/doc/contentLayout/contentLayout.ts +26 -12
- package/src/modules/doc/header/header.css +7 -2
- package/src/modules/doc/header/header.html +84 -83
- package/src/modules/doc/header/header.ts +9 -0
- package/src/modules/doc/overview/overview.css +40 -0
- package/src/modules/doc/overview/overview.html +34 -0
- package/src/modules/doc/overview/overview.ts +12 -0
- package/src/modules/doc/phase/phase.css +17 -2
- package/src/modules/doc/phase/phase.html +22 -20
- package/src/modules/doc/xmlContent/xmlContent.css +14 -0
- package/src/modules/doc/xmlContent/xmlContent.ts +1 -5
- package/src/modules/docHelpers/imgStyle/imgStyle.css +63 -0
- package/src/modules/docHelpers/phaseContentLayout/phaseContentLayout.css +0 -39
package/lwc.config.json
CHANGED
package/package.json
CHANGED
|
@@ -16,9 +16,11 @@
|
|
|
16
16
|
toc-options={tocOptions}
|
|
17
17
|
enable-slot-change="true"
|
|
18
18
|
>
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
<doc-phase
|
|
20
|
+
slot="doc-phase"
|
|
21
|
+
if:true={docPhaseInfo}
|
|
22
|
+
doc-phase-info={docPhaseInfo}
|
|
23
|
+
></doc-phase>
|
|
22
24
|
<div slot="sidebar-header" class="version-picker">
|
|
23
25
|
<template if:true={isVersionEnabled}>
|
|
24
26
|
<dx-dropdown
|
|
@@ -28,7 +30,9 @@
|
|
|
28
30
|
value={selectedVersion.id}
|
|
29
31
|
width="290px"
|
|
30
32
|
>
|
|
31
|
-
<dx-button variant="inline" class="version-picker-text">
|
|
33
|
+
<dx-button variant="inline" class="version-picker-text">
|
|
34
|
+
{selectedVersion.id}
|
|
35
|
+
</dx-button>
|
|
32
36
|
</dx-dropdown>
|
|
33
37
|
</template>
|
|
34
38
|
</div>
|
|
@@ -120,7 +120,6 @@ export default class AmfReference extends LightningElement {
|
|
|
120
120
|
|
|
121
121
|
set docPhaseInfo(value: string) {
|
|
122
122
|
if (value) {
|
|
123
|
-
this.isParentLevelDocPhaseEnabled = true;
|
|
124
123
|
this.selectedReferenceDocPhase = value;
|
|
125
124
|
}
|
|
126
125
|
}
|
|
@@ -151,7 +150,6 @@ export default class AmfReference extends LightningElement {
|
|
|
151
150
|
|
|
152
151
|
private hasRendered = false;
|
|
153
152
|
|
|
154
|
-
private isParentLevelDocPhaseEnabled = false;
|
|
155
153
|
private selectedReferenceDocPhase?: string | null = null;
|
|
156
154
|
private _expandChildren?: boolean = false;
|
|
157
155
|
|
|
@@ -889,28 +887,6 @@ export default class AmfReference extends LightningElement {
|
|
|
889
887
|
);
|
|
890
888
|
|
|
891
889
|
this.handleSelectedItem();
|
|
892
|
-
|
|
893
|
-
this.updateDocPhase();
|
|
894
|
-
}
|
|
895
|
-
|
|
896
|
-
/**
|
|
897
|
-
* Updates doc phase of selected reference
|
|
898
|
-
*/
|
|
899
|
-
updateDocPhase(): void {
|
|
900
|
-
/* If parent level doc phase is enabled, Individual reference level doc phase should not be considered */
|
|
901
|
-
|
|
902
|
-
if (!this.isParentLevelDocPhaseEnabled) {
|
|
903
|
-
const selectedReference = this._amfConfigList.find(
|
|
904
|
-
(referenceItem: AmfConfig) => {
|
|
905
|
-
return referenceItem.id === this._currentReferenceId;
|
|
906
|
-
}
|
|
907
|
-
);
|
|
908
|
-
if (selectedReference) {
|
|
909
|
-
this.selectedReferenceDocPhase = JSON.stringify(
|
|
910
|
-
selectedReference.docPhase
|
|
911
|
-
);
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
890
|
}
|
|
915
891
|
|
|
916
892
|
/**
|
|
@@ -1241,7 +1217,6 @@ export default class AmfReference extends LightningElement {
|
|
|
1241
1217
|
}
|
|
1242
1218
|
|
|
1243
1219
|
this.versions = this.getVersions();
|
|
1244
|
-
this.updateDocPhase();
|
|
1245
1220
|
this.selectedSidebarValue = window.location.pathname;
|
|
1246
1221
|
}
|
|
1247
1222
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
@import "dxHelpers/text";
|
|
8
8
|
@import "dxHelpers/reset";
|
|
9
9
|
@import "dxHelpers/table";
|
|
10
|
+
@import "docHelpers/imgStyle";
|
|
10
11
|
|
|
11
12
|
.doc-content {
|
|
12
13
|
width: 100%;
|
|
@@ -40,17 +41,10 @@
|
|
|
40
41
|
padding-bottom: var(--dx-g-spacing-sm);
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
img.content-image {
|
|
44
|
-
height: auto;
|
|
45
|
-
display: unset;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
44
|
.image-block .content-image {
|
|
49
45
|
margin-top: var(--dx-g-spacing-lg);
|
|
50
46
|
margin-bottom: var(--dx-g-spacing-sm);
|
|
51
47
|
display: block;
|
|
52
|
-
margin-left: auto;
|
|
53
|
-
margin-right: auto;
|
|
54
48
|
}
|
|
55
49
|
|
|
56
50
|
td > img.content-image:first-child:last-child[alt="Yes"],
|
|
@@ -111,6 +105,10 @@ h6 {
|
|
|
111
105
|
margin: var(--dx-g-spacing-sm) 0 var(--dx-g-spacing-sm) 0;
|
|
112
106
|
}
|
|
113
107
|
|
|
108
|
+
img {
|
|
109
|
+
image-rendering: -webkit-optimize-contrast;
|
|
110
|
+
}
|
|
111
|
+
|
|
114
112
|
p,
|
|
115
113
|
.p {
|
|
116
114
|
font-family: var(--dx-g-font-sans);
|
|
@@ -366,13 +364,30 @@ ul ul ul ul ul ul {
|
|
|
366
364
|
margin: var(--dx-g-spacing-lg) 0;
|
|
367
365
|
}
|
|
368
366
|
|
|
369
|
-
figure
|
|
367
|
+
figure,
|
|
368
|
+
.fig {
|
|
370
369
|
margin: var(--dx-g-spacing-lg) 0;
|
|
370
|
+
text-align: left;
|
|
371
|
+
display: flex;
|
|
372
|
+
flex-direction: column;
|
|
373
|
+
align-items: left;
|
|
374
|
+
justify-content: left;
|
|
371
375
|
}
|
|
372
376
|
|
|
373
|
-
figcaption
|
|
377
|
+
figcaption,
|
|
378
|
+
.figcap {
|
|
379
|
+
display: block;
|
|
374
380
|
font-size: var(--dx-g-text-xs);
|
|
375
|
-
margin
|
|
381
|
+
margin: var(--dx-g-spacing-sm) 0;
|
|
382
|
+
order: 2;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.figcap .image {
|
|
386
|
+
order: 1;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
.fig.fig-centered {
|
|
390
|
+
text-align: center;
|
|
376
391
|
}
|
|
377
392
|
|
|
378
393
|
code,
|
|
@@ -253,6 +253,7 @@ export default class Content extends LightningElement {
|
|
|
253
253
|
const label = mediaEl.getAttribute("label");
|
|
254
254
|
const width = mediaEl.getAttribute("width");
|
|
255
255
|
const height = mediaEl.getAttribute("height");
|
|
256
|
+
const className = mediaEl.getAttribute("class");
|
|
256
257
|
|
|
257
258
|
if (isImage) {
|
|
258
259
|
src = src.startsWith("/")
|
|
@@ -277,8 +278,11 @@ export default class Content extends LightningElement {
|
|
|
277
278
|
if (width) {
|
|
278
279
|
img.width = parseFloat(width);
|
|
279
280
|
}
|
|
281
|
+
if (className) {
|
|
282
|
+
img.className = className;
|
|
283
|
+
}
|
|
280
284
|
|
|
281
|
-
img.className =
|
|
285
|
+
img.className = `content-image ${img.className}`;
|
|
282
286
|
mediaEl.parentNode!.insertBefore(img, mediaEl);
|
|
283
287
|
} else {
|
|
284
288
|
const contentMediaEl = createElement("doc-content-media", {
|
|
@@ -324,9 +328,8 @@ export default class Content extends LightningElement {
|
|
|
324
328
|
event.preventDefault();
|
|
325
329
|
// eslint-disable-next-line no-use-before-define
|
|
326
330
|
const target = event.currentTarget.dataset.id;
|
|
327
|
-
const [page, docId, deliverable, tempContentDocumentId] =
|
|
328
|
-
"/"
|
|
329
|
-
);
|
|
331
|
+
const [page, docId, deliverable, tempContentDocumentId] =
|
|
332
|
+
target.split("/");
|
|
330
333
|
const [contentDocumentId, hash] = tempContentDocumentId.split("#");
|
|
331
334
|
const newPageReference = {
|
|
332
335
|
page: page,
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
:host {
|
|
2
2
|
--dx-c-content-vertical-spacing: var(--dx-g-spacing-lg);
|
|
3
|
+
--dx-c-content-sidebar-sticky-top: calc(
|
|
4
|
+
var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
|
|
5
|
+
);
|
|
6
|
+
--dx-c-sidebar-height: calc(
|
|
7
|
+
100vh -
|
|
8
|
+
calc(
|
|
9
|
+
var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
|
|
10
|
+
)
|
|
11
|
+
);
|
|
3
12
|
|
|
4
13
|
display: block;
|
|
5
14
|
}
|
|
@@ -13,7 +22,6 @@ doc-breadcrumbs {
|
|
|
13
22
|
|
|
14
23
|
dx-sidebar,
|
|
15
24
|
dx-sidebar-old {
|
|
16
|
-
--dx-c-sidebar-height: 100%;
|
|
17
25
|
--dx-c-sidebar-vertical-padding: var(--dx-c-content-vertical-spacing);
|
|
18
26
|
|
|
19
27
|
z-index: 6;
|
|
@@ -34,6 +42,7 @@ dx-toc {
|
|
|
34
42
|
|
|
35
43
|
.content {
|
|
36
44
|
display: flex;
|
|
45
|
+
position: relative;
|
|
37
46
|
}
|
|
38
47
|
|
|
39
48
|
.content-body-doc-phase-container {
|
|
@@ -43,24 +52,27 @@ dx-toc {
|
|
|
43
52
|
.content-body-container {
|
|
44
53
|
display: flex;
|
|
45
54
|
flex-direction: row;
|
|
46
|
-
|
|
55
|
+
justify-content: center;
|
|
56
|
+
max-width: var(--dx-g-doc-content-max-width);
|
|
57
|
+
margin: auto;
|
|
58
|
+
padding: 0 var(--dx-g-global-header-padding-horizontal);
|
|
47
59
|
}
|
|
48
60
|
|
|
49
61
|
.content-body {
|
|
50
|
-
margin: var(--dx-g-spacing-sm) var(--dx-
|
|
51
|
-
|
|
62
|
+
margin: var(--dx-g-spacing-sm) 0 var(--dx-g-spacing-xl);
|
|
63
|
+
max-width: 900px;
|
|
52
64
|
flex: 1;
|
|
53
65
|
width: 0;
|
|
54
66
|
}
|
|
55
67
|
|
|
56
68
|
.is-sticky {
|
|
57
|
-
|
|
69
|
+
align-self: flex-start;
|
|
58
70
|
position: sticky;
|
|
59
|
-
top:
|
|
71
|
+
top: var(--dx-c-content-sidebar-sticky-top);
|
|
60
72
|
}
|
|
61
73
|
|
|
62
74
|
.right-nav-bar {
|
|
63
|
-
|
|
75
|
+
margin-left: var(--dx-c-content-vertical-spacing);
|
|
64
76
|
}
|
|
65
77
|
|
|
66
78
|
@media screen and (max-width: 1024px) {
|
|
@@ -76,6 +88,10 @@ dx-toc {
|
|
|
76
88
|
}
|
|
77
89
|
|
|
78
90
|
@media screen and (max-width: 768px) {
|
|
91
|
+
.is-sticky {
|
|
92
|
+
width: 100%;
|
|
93
|
+
}
|
|
94
|
+
|
|
79
95
|
.content {
|
|
80
96
|
flex-direction: column;
|
|
81
97
|
}
|
|
@@ -85,8 +101,6 @@ dx-toc {
|
|
|
85
101
|
}
|
|
86
102
|
|
|
87
103
|
.left-nav-bar {
|
|
88
|
-
--dx-c-sidebar-height: 80vh;
|
|
89
|
-
|
|
90
104
|
height: unset;
|
|
91
105
|
z-index: 10;
|
|
92
106
|
}
|
|
@@ -37,9 +37,8 @@
|
|
|
37
37
|
if:true={shouldDisplayFeedback}
|
|
38
38
|
></doc-sprig-survey>
|
|
39
39
|
</div>
|
|
40
|
-
<div class="right-nav-bar is-sticky">
|
|
40
|
+
<div if:true={showToc} class="right-nav-bar is-sticky">
|
|
41
41
|
<dx-toc
|
|
42
|
-
if:true={showToc}
|
|
43
42
|
title={tocTitle}
|
|
44
43
|
options={tocOptions}
|
|
45
44
|
value={tocValue}
|
|
@@ -77,6 +77,7 @@ export default class ContentLayout extends LightningElement {
|
|
|
77
77
|
@track
|
|
78
78
|
private _tocOptions: Array<unknown>;
|
|
79
79
|
|
|
80
|
+
private tocOptionIdsSet = new Set();
|
|
80
81
|
private anchoredElements: AnchorMap = {};
|
|
81
82
|
private lastScrollPosition: number;
|
|
82
83
|
private observer?: IntersectionObserver;
|
|
@@ -220,14 +221,17 @@ export default class ContentLayout extends LightningElement {
|
|
|
220
221
|
}
|
|
221
222
|
|
|
222
223
|
onSlotChange(event: Event): void {
|
|
223
|
-
const slotElements = (
|
|
224
|
+
const slotElements = (
|
|
225
|
+
event.target as HTMLSlotElement
|
|
226
|
+
).assignedElements();
|
|
224
227
|
|
|
225
228
|
if (slotElements.length) {
|
|
226
229
|
this.contentLoaded = true;
|
|
227
230
|
const slotContentElement = slotElements[0];
|
|
228
|
-
const headingElements =
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
const headingElements =
|
|
232
|
+
slotContentElement.ownerDocument?.getElementsByTagName(
|
|
233
|
+
TOC_HEADER_TAG
|
|
234
|
+
);
|
|
231
235
|
|
|
232
236
|
for (const headingElement of headingElements) {
|
|
233
237
|
// Sometimes elements hash is not being set when slot content is wrapped with div
|
|
@@ -239,13 +243,20 @@ export default class ContentLayout extends LightningElement {
|
|
|
239
243
|
for (const headingElement of headingElements) {
|
|
240
244
|
headingElement.id = headingElement.hash;
|
|
241
245
|
|
|
242
|
-
// Update tocOptions from anchorTags
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
246
|
+
// Update tocOptions from anchorTags only for H2, consider default as 2 as per component
|
|
247
|
+
const headingAriaLevel =
|
|
248
|
+
headingElement.attributes["aria-level"]?.nodeValue || "2";
|
|
249
|
+
const isH2 = headingAriaLevel === "2";
|
|
250
|
+
|
|
251
|
+
if (isH2) {
|
|
252
|
+
const tocItem = {
|
|
253
|
+
anchor: `#${headingElement.hash}`,
|
|
254
|
+
id: headingElement.id,
|
|
255
|
+
label: headingElement.title
|
|
256
|
+
};
|
|
257
|
+
tocOptions.push(tocItem);
|
|
258
|
+
this.tocOptionIdsSet.add(headingElement.id);
|
|
259
|
+
}
|
|
249
260
|
}
|
|
250
261
|
|
|
251
262
|
this._tocOptions = tocOptions;
|
|
@@ -296,7 +307,10 @@ export default class ContentLayout extends LightningElement {
|
|
|
296
307
|
}
|
|
297
308
|
|
|
298
309
|
private assignElementId(id: string): void {
|
|
299
|
-
|
|
310
|
+
// Change toc(RNB) highlight only for H2
|
|
311
|
+
if (this.tocOptionIdsSet.has(id)) {
|
|
312
|
+
this.tocValue = id;
|
|
313
|
+
}
|
|
300
314
|
}
|
|
301
315
|
|
|
302
316
|
private dispatchHighlightChange(term: string): void {
|
|
@@ -7,6 +7,7 @@ dx-logo {
|
|
|
7
7
|
|
|
8
8
|
.header_l2 {
|
|
9
9
|
justify-content: space-between;
|
|
10
|
+
height: var(--dx-g-doc-header-main-nav-height);
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
.nav_menu-button {
|
|
@@ -56,10 +57,11 @@ header:not(.has-brand) > .header_l2 {
|
|
|
56
57
|
--border-color: var(--button-primary-color-hover);
|
|
57
58
|
}
|
|
58
59
|
|
|
59
|
-
@media (max-width:
|
|
60
|
+
@media (max-width: 768px) {
|
|
60
61
|
.header_l2 {
|
|
61
62
|
padding: 0;
|
|
62
63
|
flex-wrap: wrap;
|
|
64
|
+
height: 100%;
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
.has-nav-items .header_l2 {
|
|
@@ -77,12 +79,15 @@ header:not(.has-brand) > .header_l2 {
|
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
.header_l2_group-nav_overflow {
|
|
82
|
+
height: 48px;
|
|
80
83
|
margin-right: var(--dx-g-spacing-sm);
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
.header_l2_group-title {
|
|
87
|
+
height: var(--dx-g-doc-header-main-nav-height);
|
|
84
88
|
margin-right: 0;
|
|
85
|
-
padding: var(--dx-g-spacing-smd)
|
|
89
|
+
padding: var(--dx-g-spacing-smd)
|
|
90
|
+
var(--dx-g-global-header-padding-horizontal);
|
|
86
91
|
}
|
|
87
92
|
|
|
88
93
|
.header_l2_group-title .header_lang-dropdown {
|
|
@@ -1,93 +1,94 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<div
|
|
41
|
-
if:true={hasScopedNavItems}
|
|
42
|
-
class="header_l2_group header_l2_group-nav"
|
|
43
|
-
>
|
|
2
|
+
<template if:true={shouldRender}>
|
|
3
|
+
<dx-brand-theme-provider brand={brand}>
|
|
4
|
+
<header class={className}>
|
|
5
|
+
<dx-banner
|
|
6
|
+
if:true={showBanner}
|
|
7
|
+
banner-markup={bannerMarkup}
|
|
8
|
+
></dx-banner>
|
|
9
|
+
<div class="header_l2">
|
|
10
|
+
<div class="header_l2_group header_l2_group-title">
|
|
11
|
+
<a href={headerHref} class="home-link">
|
|
12
|
+
<dx-icon
|
|
13
|
+
class="brand-icon"
|
|
14
|
+
if:true={isValidBrand}
|
|
15
|
+
sprite="salesforcebrand"
|
|
16
|
+
symbol={brand}
|
|
17
|
+
size="xlarge"
|
|
18
|
+
></dx-icon>
|
|
19
|
+
<span class="subtitle dx-text-display-6">
|
|
20
|
+
{subtitle}
|
|
21
|
+
</span>
|
|
22
|
+
</a>
|
|
23
|
+
<dx-dropdown
|
|
24
|
+
if:true={showMobileLanguages}
|
|
25
|
+
class="header_lang-dropdown"
|
|
26
|
+
options={languages}
|
|
27
|
+
small
|
|
28
|
+
value={language}
|
|
29
|
+
value-path={langValuePath}
|
|
30
|
+
onchange={onLangChange}
|
|
31
|
+
>
|
|
32
|
+
<dx-button
|
|
33
|
+
aria-label="Select Language"
|
|
34
|
+
variant="inline"
|
|
35
|
+
icon-size="large"
|
|
36
|
+
icon-symbol="world"
|
|
37
|
+
></dx-button>
|
|
38
|
+
</dx-dropdown>
|
|
39
|
+
</div>
|
|
44
40
|
<div
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
if:true={hasScopedNavItems}
|
|
42
|
+
class="header_l2_group header_l2_group-nav"
|
|
47
43
|
>
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
<div
|
|
45
|
+
class="header_l2_group-nav_overflow"
|
|
46
|
+
onscroll={onNavScroll}
|
|
47
|
+
>
|
|
48
|
+
<dx-header-nav
|
|
49
|
+
aria-label="Scoped Navigation Bar"
|
|
50
|
+
nav-items={scopedNavItems}
|
|
51
|
+
pathname={pathname}
|
|
52
|
+
></dx-header-nav>
|
|
53
|
+
</div>
|
|
53
54
|
</div>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
class="header_l2_group header_l2_group-right-ctas"
|
|
58
|
-
>
|
|
59
|
-
<dx-dropdown
|
|
60
|
-
if:true={hasLanguages}
|
|
61
|
-
class="header_lang-dropdown"
|
|
62
|
-
options={languages}
|
|
63
|
-
small
|
|
64
|
-
value-path={langValuePath}
|
|
65
|
-
value={language}
|
|
66
|
-
onchange={onLangChange}
|
|
55
|
+
<div
|
|
56
|
+
if:false={smallMobile}
|
|
57
|
+
class="header_l2_group header_l2_group-right-ctas"
|
|
67
58
|
>
|
|
59
|
+
<dx-dropdown
|
|
60
|
+
if:true={hasLanguages}
|
|
61
|
+
class="header_lang-dropdown"
|
|
62
|
+
options={languages}
|
|
63
|
+
small
|
|
64
|
+
value-path={langValuePath}
|
|
65
|
+
value={language}
|
|
66
|
+
onchange={onLangChange}
|
|
67
|
+
>
|
|
68
|
+
<dx-button
|
|
69
|
+
aria-label="Select Language"
|
|
70
|
+
variant="inline"
|
|
71
|
+
icon-size="small"
|
|
72
|
+
icon-symbol="world"
|
|
73
|
+
>
|
|
74
|
+
{languageLabel}
|
|
75
|
+
</dx-button>
|
|
76
|
+
</dx-dropdown>
|
|
68
77
|
<dx-button
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
if:true={hasBailLink}
|
|
79
|
+
aria-label={bailLabel}
|
|
80
|
+
class="header_bail-link"
|
|
81
|
+
href={bailHref}
|
|
82
|
+
onclick={handleBailClick}
|
|
83
|
+
variant="tertiary"
|
|
84
|
+
icon-symbol="new_window"
|
|
85
|
+
target="_blank"
|
|
73
86
|
>
|
|
74
|
-
{
|
|
87
|
+
{bailLabel}
|
|
75
88
|
</dx-button>
|
|
76
|
-
</
|
|
77
|
-
<dx-button
|
|
78
|
-
if:true={hasBailLink}
|
|
79
|
-
aria-label={bailLabel}
|
|
80
|
-
class="header_bail-link"
|
|
81
|
-
href={bailHref}
|
|
82
|
-
onclick={handleBailClick}
|
|
83
|
-
variant="tertiary"
|
|
84
|
-
icon-symbol="new_window"
|
|
85
|
-
target="_blank"
|
|
86
|
-
>
|
|
87
|
-
{bailLabel}
|
|
88
|
-
</dx-button>
|
|
89
|
+
</div>
|
|
89
90
|
</div>
|
|
90
|
-
</
|
|
91
|
-
</
|
|
92
|
-
</
|
|
91
|
+
</header>
|
|
92
|
+
</dx-brand-theme-provider>
|
|
93
|
+
</template>
|
|
93
94
|
</template>
|
|
@@ -50,6 +50,7 @@ export default class Header extends HeaderBase {
|
|
|
50
50
|
private smallMobileMatchMedia!: MediaQueryList;
|
|
51
51
|
private tablet = false;
|
|
52
52
|
private tabletMatchMedia!: MediaQueryList;
|
|
53
|
+
private shouldRender = false;
|
|
53
54
|
|
|
54
55
|
protected mobileBreakpoint(): string {
|
|
55
56
|
return MOBILE_MATCH;
|
|
@@ -93,6 +94,14 @@ export default class Header extends HeaderBase {
|
|
|
93
94
|
"change",
|
|
94
95
|
this.onSmallMobileChange
|
|
95
96
|
);
|
|
97
|
+
if (
|
|
98
|
+
(window.location.pathname.includes("/docs/") &&
|
|
99
|
+
window.location.pathname !== "/docs/apis") ||
|
|
100
|
+
window.location.pathname ===
|
|
101
|
+
"/tableau/embedding-playground/overview"
|
|
102
|
+
) {
|
|
103
|
+
this.shouldRender = true;
|
|
104
|
+
}
|
|
96
105
|
}
|
|
97
106
|
|
|
98
107
|
disconnectedCallback(): void {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
doc-phase {
|
|
2
|
+
--doc-c-phase-top: calc(
|
|
3
|
+
var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
|
|
4
|
+
);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
dx-section {
|
|
8
|
+
--dx-c-section-padding-top: 0;
|
|
9
|
+
--dx-c-section-padding-bottom: var(--dx-g-spacing-2xl);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
dx-section::part(content) {
|
|
13
|
+
max-width: 1280px;
|
|
14
|
+
margin: auto;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
dx-group-text:first-of-type {
|
|
18
|
+
margin-top: var(--dx-g-spacing-2xl);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
dx-group-text.features {
|
|
22
|
+
margin-top: var(--dx-g-spacing-xl);
|
|
23
|
+
margin-bottom: var(--dx-g-spacing-xl);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.content {
|
|
27
|
+
padding-right: var(--dx-g-spacing-xl);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@media (max-width: 1024px) {
|
|
31
|
+
.content {
|
|
32
|
+
padding-right: 0;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@media (max-width: 800px) {
|
|
37
|
+
dx-group-text.description {
|
|
38
|
+
margin-top: var(--dx-g-spacing-lg);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container">
|
|
3
|
+
<doc-phase
|
|
4
|
+
if:true={docPhaseInfo}
|
|
5
|
+
doc-phase-info={docPhaseInfo}
|
|
6
|
+
></doc-phase>
|
|
7
|
+
|
|
8
|
+
<dx-section>
|
|
9
|
+
<dx-grid columns="two-slim-right">
|
|
10
|
+
<div class="content">
|
|
11
|
+
<dx-group-text
|
|
12
|
+
class="description"
|
|
13
|
+
title={title}
|
|
14
|
+
body={description}
|
|
15
|
+
size="large"
|
|
16
|
+
title-aria-level="1"
|
|
17
|
+
primary-link={primaryLink}
|
|
18
|
+
secondary-link={secondaryLink}
|
|
19
|
+
></dx-group-text>
|
|
20
|
+
</div>
|
|
21
|
+
<div>
|
|
22
|
+
<dx-group-text
|
|
23
|
+
title={featuresListTitle}
|
|
24
|
+
size="medium"
|
|
25
|
+
class="features"
|
|
26
|
+
></dx-group-text>
|
|
27
|
+
<dx-features-list
|
|
28
|
+
options={featuresListOptions}
|
|
29
|
+
></dx-features-list>
|
|
30
|
+
</div>
|
|
31
|
+
</dx-grid>
|
|
32
|
+
</dx-section>
|
|
33
|
+
</div>
|
|
34
|
+
</template>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LightningElement, api } from "lwc";
|
|
2
|
+
import { DocPhaseInfo, FeatureItem, Link } from "typings/custom";
|
|
3
|
+
|
|
4
|
+
export default class Overview extends LightningElement {
|
|
5
|
+
@api docPhaseInfo!: DocPhaseInfo;
|
|
6
|
+
@api title!: string;
|
|
7
|
+
@api description!: string;
|
|
8
|
+
@api primaryLink!: Link;
|
|
9
|
+
@api secondaryLink!: Link;
|
|
10
|
+
@api featuresListTitle!: string;
|
|
11
|
+
@api featuresListOptions!: FeatureItem[];
|
|
12
|
+
}
|
|
@@ -2,12 +2,26 @@
|
|
|
2
2
|
@import "dxHelpers/text";
|
|
3
3
|
@import "docHelpers/status";
|
|
4
4
|
|
|
5
|
+
:host {
|
|
6
|
+
--doc-c-phase-top: 0;
|
|
7
|
+
|
|
8
|
+
position: sticky;
|
|
9
|
+
top: var(--doc-c-phase-top);
|
|
10
|
+
z-index: 100;
|
|
11
|
+
}
|
|
12
|
+
|
|
5
13
|
.doc-phase-container {
|
|
6
14
|
display: flex;
|
|
7
15
|
flex-direction: column;
|
|
8
|
-
|
|
9
|
-
padding-
|
|
16
|
+
align-items: center;
|
|
17
|
+
padding-left: var(--dx-g-global-header-padding-horizontal);
|
|
18
|
+
padding-right: var(--dx-g-global-header-padding-horizontal);
|
|
10
19
|
width: 100%;
|
|
20
|
+
border: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.max-width-container {
|
|
24
|
+
max-width: var(--dx-g-doc-content-max-width);
|
|
11
25
|
}
|
|
12
26
|
|
|
13
27
|
.doc-phase-title-container {
|
|
@@ -31,6 +45,7 @@ dx-button {
|
|
|
31
45
|
*/
|
|
32
46
|
|
|
33
47
|
.doc-phase-body {
|
|
48
|
+
display: block;
|
|
34
49
|
max-height: 1000px;
|
|
35
50
|
overflow: hidden;
|
|
36
51
|
padding-top: var(--dx-g-spacing-smd);
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class={className} part="container">
|
|
3
|
-
<div class="
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
3
|
+
<div class="max-width-container">
|
|
4
|
+
<div class="doc-phase-title-container">
|
|
5
|
+
<dx-icon
|
|
6
|
+
class="doc-status-icon doc-phase-icon"
|
|
7
|
+
symbol="recipe"
|
|
8
|
+
size="large"
|
|
9
|
+
color="status-icon-color"
|
|
10
|
+
></dx-icon>
|
|
11
|
+
<p class="doc-status-title doc-phase-title dx-text-body-3">
|
|
12
|
+
{docPhaseTitle}
|
|
13
|
+
</p>
|
|
14
|
+
<dx-button
|
|
15
|
+
variant="inline"
|
|
16
|
+
onclick={onButtonClick}
|
|
17
|
+
aria-label={hideBodyText}
|
|
18
|
+
>
|
|
19
|
+
{hideBodyText}
|
|
20
|
+
</dx-button>
|
|
21
|
+
</div>
|
|
22
|
+
<!--
|
|
22
23
|
NOTE: Here we are rendering mark up using lwc:dom & innerHTML
|
|
23
24
|
option instead of slots because the html markup will come as a
|
|
24
25
|
property to the component from a configuration
|
|
25
26
|
-->
|
|
26
|
-
|
|
27
|
+
<span lwc:dom="manual" class={bodyClassName}></span>
|
|
28
|
+
</div>
|
|
27
29
|
</div>
|
|
28
30
|
</template>
|
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
--button-primary-color-hover: var(--dx-g-blue-vibrant-40);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
doc-content-layout {
|
|
7
|
+
--dx-c-content-sidebar-sticky-top: calc(
|
|
8
|
+
var(--dx-g-global-header-height) +
|
|
9
|
+
var(--dx-g-doc-header-main-nav-height)
|
|
10
|
+
);
|
|
11
|
+
--dx-c-sidebar-height: calc(
|
|
12
|
+
100vh -
|
|
13
|
+
calc(
|
|
14
|
+
var(--dx-g-global-header-height) +
|
|
15
|
+
var(--dx-g-doc-header-main-nav-height)
|
|
16
|
+
)
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
6
20
|
doc-breadcrumbs {
|
|
7
21
|
--dx-c-popover-z-index: 5;
|
|
8
22
|
|
|
@@ -464,11 +464,7 @@ export default class DocXmlContent extends LightningElementWithState<{
|
|
|
464
464
|
this.addMetatags();
|
|
465
465
|
|
|
466
466
|
if (!this.pageReference.hash) {
|
|
467
|
-
document.
|
|
468
|
-
behavior: "smooth",
|
|
469
|
-
block: "start",
|
|
470
|
-
inline: "nearest"
|
|
471
|
-
});
|
|
467
|
+
document.body.scrollIntoView();
|
|
472
468
|
}
|
|
473
469
|
}
|
|
474
470
|
this.setState({
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
img.content-image {
|
|
2
|
+
height: auto;
|
|
3
|
+
display: unset;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.content-image.image-framed {
|
|
7
|
+
border: 1px solid black;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.content-image.image-framed-light {
|
|
11
|
+
border: 1px solid var(--dx-g-gray-90);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.content-image.image-xxl,
|
|
15
|
+
.content-image.image-full {
|
|
16
|
+
max-width: 1000px;
|
|
17
|
+
width: 100%;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.content-image.image-xl {
|
|
21
|
+
max-width: 750px;
|
|
22
|
+
width: 100%;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.content-image.image-lg {
|
|
26
|
+
max-width: 660px;
|
|
27
|
+
width: 100%;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.content-image.image-md {
|
|
31
|
+
max-width: 500px;
|
|
32
|
+
width: 100%;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.content-image.image-sm {
|
|
36
|
+
max-width: 330px;
|
|
37
|
+
width: 100%;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.content-image.image-xs {
|
|
41
|
+
max-width: 250px;
|
|
42
|
+
width: 100%;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.content-image.image-xxs {
|
|
46
|
+
max-width: 125px;
|
|
47
|
+
width: 100%;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.content-image.image-icon-lg {
|
|
51
|
+
max-width: 32px;
|
|
52
|
+
width: 100%;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.content-image.image-icon-md {
|
|
56
|
+
max-width: 20px;
|
|
57
|
+
width: 100%;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.content-image.image-icon-sm {
|
|
61
|
+
max-width: 16px;
|
|
62
|
+
width: 100%;
|
|
63
|
+
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
doc-phase::part(container) {
|
|
2
|
-
margin-bottom: var(--dx-g-spacing-sm);
|
|
3
|
-
padding-left: var(--dx-g-spacing-mlg);
|
|
4
|
-
padding-right: var(--dx-g-spacing-lg);
|
|
5
|
-
width: auto;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.doc-phase-wrapper {
|
|
9
|
-
position: sticky;
|
|
10
|
-
top: 0;
|
|
11
|
-
z-index: 4;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@media screen and (max-width: 800px) {
|
|
15
|
-
doc-phase::part(container) {
|
|
16
|
-
margin-bottom: 0;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@media screen and (min-width: 1024px) and (max-width: 1496px) {
|
|
21
|
-
doc-phase::part(container) {
|
|
22
|
-
padding-right: var(--dx-g-spacing-3xl);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@media screen and (min-width: 1496px) {
|
|
27
|
-
doc-phase::part(container) {
|
|
28
|
-
margin-right: calc(
|
|
29
|
-
var(--dx-g-page-padding-horizontal) - var(--dx-g-spacing-lg)
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@media screen and (max-width: 768px) {
|
|
35
|
-
/* We are giving top value because there is one more sticky item(lnb) with height 40px */
|
|
36
|
-
.doc-phase-wrapper {
|
|
37
|
-
top: 40px;
|
|
38
|
-
}
|
|
39
|
-
}
|