@salesforcedevs/docs-components 1.3.2 → 1.3.4-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/lwc.config.json +8 -1
- package/package.json +13 -13
- package/src/modules/doc/{amfReference/utils.ts → amfModelParser/amfModelParser.ts} +10 -5
- package/src/modules/doc/amfReference/amfReference.css +23 -3
- package/src/modules/doc/amfReference/amfReference.html +34 -21
- package/src/modules/doc/amfReference/amfReference.ts +225 -92
- package/src/modules/doc/amfReference/types.ts +3 -11
- package/src/modules/doc/amfTopic/amfTopic.css +20 -0
- package/src/modules/doc/amfTopic/amfTopic.ts +35 -18
- package/src/modules/doc/amfTopic/types.ts +15 -13
- package/src/modules/doc/amfTopic/utils.ts +12 -6
- package/src/modules/doc/breadcrumbItem/breadcrumbItem.ts +17 -10
- package/src/modules/doc/breadcrumbs/breadcrumbs.html +7 -9
- package/src/modules/doc/breadcrumbs/breadcrumbs.ts +30 -34
- package/src/modules/doc/componentPlayground/componentPlayground.css +22 -0
- package/src/modules/doc/componentPlayground/componentPlayground.html +15 -0
- package/src/modules/doc/componentPlayground/componentPlayground.ts +20 -0
- package/src/modules/doc/content/content.css +70 -76
- package/src/modules/doc/content/content.ts +18 -14
- package/src/modules/doc/contentCallout/contentCallout.css +12 -1
- package/src/modules/doc/contentCallout/contentCallout.html +11 -4
- package/src/modules/doc/contentCallout/contentCallout.ts +8 -1
- package/src/modules/doc/contentLayout/contentLayout.css +1 -98
- package/src/modules/doc/contentLayout/contentLayout.html +25 -11
- package/src/modules/doc/contentLayout/contentLayout.ts +296 -89
- package/src/modules/doc/doDont/doDont.css +47 -0
- package/src/modules/doc/doDont/doDont.html +27 -0
- package/src/modules/doc/doDont/doDont.ts +17 -0
- package/src/modules/doc/header/header.css +65 -36
- package/src/modules/doc/header/header.html +40 -146
- package/src/modules/doc/header/header.ts +32 -81
- package/src/modules/doc/heading/heading.css +16 -37
- package/src/modules/doc/heading/heading.html +4 -4
- package/src/modules/doc/heading/heading.ts +12 -10
- package/src/modules/doc/headingAnchor/headingAnchor.css +2 -2
- package/src/modules/doc/headingAnchor/headingAnchor.ts +2 -2
- package/src/modules/doc/headingContent/headingContent.css +1 -1
- package/src/modules/doc/headingContent/headingContent.html +2 -2
- package/src/modules/doc/headingContent/headingContent.ts +2 -2
- package/src/modules/doc/lwcContentLayout/lwcContentLayout.css +1 -0
- package/src/modules/doc/lwcContentLayout/lwcContentLayout.html +64 -0
- package/src/modules/doc/lwcContentLayout/lwcContentLayout.ts +168 -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 +18 -3
- package/src/modules/doc/phase/phase.html +12 -2
- package/src/modules/doc/phase/phase.ts +44 -8
- package/src/modules/doc/specificationContent/specificationContent.css +31 -0
- package/src/modules/doc/specificationContent/specificationContent.html +164 -0
- package/src/modules/doc/specificationContent/specificationContent.ts +114 -0
- package/src/modules/doc/sprigSurvey/sprigSurvey.html +20 -0
- package/src/modules/doc/sprigSurvey/sprigSurvey.scoped.css +16 -0
- package/src/modules/doc/sprigSurvey/sprigSurvey.ts +16 -0
- package/src/modules/doc/toc/toc.html +1 -3
- package/src/modules/doc/toc/toc.ts +1 -1
- package/src/modules/doc/toolbar/toolbar.ts +6 -6
- package/src/modules/doc/versionPicker/versionPicker.css +64 -0
- package/src/modules/doc/versionPicker/versionPicker.html +38 -0
- package/src/modules/doc/versionPicker/versionPicker.ts +65 -0
- package/src/modules/doc/xmlContent/types.ts +9 -3
- package/src/modules/doc/xmlContent/utils.ts +3 -1
- package/src/modules/doc/xmlContent/xmlContent.css +25 -3
- package/src/modules/doc/xmlContent/xmlContent.html +29 -17
- package/src/modules/doc/xmlContent/xmlContent.ts +197 -75
- package/src/modules/docHelpers/amfStyle/amfStyle.css +6 -6
- package/src/modules/docHelpers/contentLayoutStyle/contentLayoutStyle.css +131 -0
- package/src/modules/docHelpers/imgStyle/imgStyle.css +59 -0
- package/src/modules/docHelpers/status/status.css +1 -1
- package/src/modules/docUtils/{SearchSyncer/SearchSyncer.ts → searchSyncer/searchSyncer.ts} +1 -0
- package/src/modules/docUtils/utils/utils.ts +32 -0
- package/LICENSE +0 -12
- package/src/modules/docBaseElements/lightningElementWithState/lightningElementWithState.ts +0 -93
- package/src/modules/docHelpers/phaseContentLayout/phaseContentLayout.css +0 -39
|
@@ -2,11 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
dx-logo {
|
|
4
4
|
min-width: fit-content;
|
|
5
|
-
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.dev-center-link {
|
|
8
|
+
display: inline-block;
|
|
9
|
+
padding: var(--dx-g-spacing-smd) var(--dx-g-spacing-lg) 0
|
|
10
|
+
var(--dx-g-global-header-padding-horizontal);
|
|
11
|
+
height: var(--dx-g-spacing-xl);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.dev-center-content {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
text-decoration: none;
|
|
18
|
+
color: inherit;
|
|
19
|
+
font-weight: var(--dx-g-font-bold);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
dx-icon {
|
|
23
|
+
--dx-c-icon-size: var(--dx-g-icon-size-xs);
|
|
24
|
+
--dx-c-icon-color: var(--dx-g-blue-vibrant-20);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.dev-center-content > * + * {
|
|
28
|
+
margin-left: 8px; /* Adjust this value to your desired spacing */
|
|
6
29
|
}
|
|
7
30
|
|
|
8
31
|
.header_l2 {
|
|
9
32
|
justify-content: space-between;
|
|
33
|
+
height: var(--dx-g-doc-header-main-nav-height);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.has-brand .header_l2 {
|
|
37
|
+
height: var(--dx-g-spacing-3xl);
|
|
10
38
|
}
|
|
11
39
|
|
|
12
40
|
.nav_menu-button {
|
|
@@ -16,50 +44,44 @@ dx-logo {
|
|
|
16
44
|
);
|
|
17
45
|
}
|
|
18
46
|
|
|
47
|
+
.has-brand.has-scoped-nav-items {
|
|
48
|
+
border-bottom: 1px solid var(--dx-g-gray-90);
|
|
49
|
+
border-top: 1px solid var(--dx-g-gray-90);
|
|
50
|
+
}
|
|
51
|
+
|
|
19
52
|
.nav_menu-ctas {
|
|
20
53
|
margin-right: var(--dx-g-spacing-sm);
|
|
21
54
|
}
|
|
22
55
|
|
|
23
56
|
header:not(.has-brand) > .header_l1 {
|
|
24
|
-
background:
|
|
57
|
+
background: white;
|
|
58
|
+
border-bottom: 1px solid var(--dx-g-gray-90);
|
|
25
59
|
}
|
|
26
60
|
|
|
27
61
|
header:not(.has-brand) > .header_l2 {
|
|
28
|
-
|
|
62
|
+
border-bottom: 1px solid var(--dx-g-gray-90);
|
|
63
|
+
border-top: 1px solid var(--dx-g-gray-90);
|
|
29
64
|
}
|
|
30
65
|
|
|
31
66
|
.header_l2_group.header_l2_group-right-ctas {
|
|
32
67
|
align-items: baseline;
|
|
33
68
|
}
|
|
34
69
|
|
|
35
|
-
.
|
|
36
|
-
--dx-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.header_lang-dropdown {
|
|
42
|
-
--button-primary-color: var(--dx-g-blue-vibrant-50);
|
|
43
|
-
--button-primary-color-hover: var(--dx-g-blue-vibrant-40);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.header_lang-dropdown > dx-button {
|
|
47
|
-
--dx-c-button-primary-color: var(--button-primary-color);
|
|
48
|
-
--dx-c-button-primary-color-hover: var(--button-primary-color-hover);
|
|
49
|
-
--dx-c-slot-empty-width: min-content;
|
|
50
|
-
--border-color: var(--button-primary-color);
|
|
51
|
-
|
|
52
|
-
border-bottom: 1px dashed var(--border-color);
|
|
70
|
+
.has-brand .header_l2_group-title {
|
|
71
|
+
padding: var(--dx-g-spacing-sm) var(--dx-g-spacing-xl)
|
|
72
|
+
calc(var(--dx-g-spacing-smd) - 1px) 0;
|
|
73
|
+
min-width: 320px;
|
|
53
74
|
}
|
|
54
75
|
|
|
55
|
-
.
|
|
56
|
-
|
|
76
|
+
.no-header-content {
|
|
77
|
+
border-top: 1px solid var(--dx-g-gray-90);
|
|
57
78
|
}
|
|
58
79
|
|
|
59
|
-
@media (max-width:
|
|
80
|
+
@media (max-width: 768px) {
|
|
60
81
|
.header_l2 {
|
|
61
82
|
padding: 0;
|
|
62
83
|
flex-wrap: wrap;
|
|
84
|
+
height: 100%;
|
|
63
85
|
}
|
|
64
86
|
|
|
65
87
|
.has-nav-items .header_l2 {
|
|
@@ -70,34 +92,41 @@ header:not(.has-brand) > .header_l2 {
|
|
|
70
92
|
width: 100%;
|
|
71
93
|
}
|
|
72
94
|
|
|
95
|
+
.header_l2_group-title {
|
|
96
|
+
margin-right: 0;
|
|
97
|
+
padding: var(--dx-g-spacing-sm) 0 2px
|
|
98
|
+
var(--dx-g-global-header-padding-horizontal);
|
|
99
|
+
min-height: var(--dx-g-doc-header-main-nav-height);
|
|
100
|
+
}
|
|
101
|
+
|
|
73
102
|
.header_l2_group-nav {
|
|
74
103
|
height: var(--dx-g-spacing-3xl);
|
|
75
104
|
padding: 0;
|
|
76
|
-
|
|
105
|
+
margin-top: calc(var(--dx-g-spacing-2xs) + 1px);
|
|
77
106
|
}
|
|
78
107
|
|
|
79
108
|
.header_l2_group-nav_overflow {
|
|
109
|
+
height: var(--dx-g-spacing-3xl);
|
|
80
110
|
margin-right: var(--dx-g-spacing-sm);
|
|
81
111
|
}
|
|
82
112
|
|
|
83
|
-
.
|
|
84
|
-
|
|
85
|
-
|
|
113
|
+
.subtitle {
|
|
114
|
+
font-weight: var(--dx-g-font-demi);
|
|
115
|
+
letter-spacing: -0.08px;
|
|
86
116
|
}
|
|
87
117
|
|
|
88
|
-
.
|
|
89
|
-
margin-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
.header_lang-dropdown > dx-button {
|
|
93
|
-
padding: var(--dx-g-spacing-2xs) 0;
|
|
118
|
+
.has-brand .header_l2_group-title {
|
|
119
|
+
margin-right: 0;
|
|
120
|
+
padding: var(--dx-g-spacing-sm) 0 var(--dx-g-spacing-2xs)
|
|
121
|
+
var(--dx-g-global-header-padding-horizontal);
|
|
94
122
|
}
|
|
95
123
|
|
|
96
124
|
.has-scoped-nav-items > .header_l2 {
|
|
97
125
|
height: unset;
|
|
98
126
|
}
|
|
99
127
|
|
|
100
|
-
.has-
|
|
101
|
-
|
|
128
|
+
header:not(.has-brand) > .header_l2 {
|
|
129
|
+
padding-bottom: 0;
|
|
130
|
+
border: 0;
|
|
102
131
|
}
|
|
103
132
|
}
|
|
@@ -1,160 +1,54 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
aria-label="Menu Button"
|
|
13
|
-
class="nav_menu-button"
|
|
14
|
-
icon-size="large"
|
|
15
|
-
icon-symbol={mobileMenuIconSymbol}
|
|
16
|
-
variant="tertiary"
|
|
17
|
-
onclick={toggleMobileNavMenu}
|
|
18
|
-
></dx-button>
|
|
19
|
-
</div>
|
|
20
|
-
<dx-logo label={title}></dx-logo>
|
|
21
|
-
<dx-header-nav
|
|
22
|
-
if:true={showDesktopNavItems}
|
|
23
|
-
aria-label="Global Navigation Bar"
|
|
24
|
-
nav-items={navItems}
|
|
25
|
-
onrequestopennavmenu={onRequestOpenNavMenu}
|
|
26
|
-
pathname={pathname}
|
|
27
|
-
variant="small"
|
|
28
|
-
></dx-header-nav>
|
|
29
|
-
<div class="header-cta-container">
|
|
30
|
-
<dx-header-search
|
|
31
|
-
if:true={hasSearch}
|
|
32
|
-
coveo-organization-id={coveoOrganizationId}
|
|
33
|
-
coveo-public-access-token={coveoPublicAccessToken}
|
|
34
|
-
coveo-search-pipeline={coveoSearchPipeline}
|
|
35
|
-
coveo-search-hub={coveoSearchHub}
|
|
36
|
-
mobile={tablet}
|
|
37
|
-
onstatechange={handleStateChange}
|
|
38
|
-
></dx-header-search>
|
|
39
|
-
</div>
|
|
40
|
-
<div
|
|
41
|
-
if:true={showTbidLogin}
|
|
42
|
-
class="header-tbid-login"
|
|
43
|
-
onclick={closeMobileNavMenu}
|
|
44
|
-
>
|
|
45
|
-
<dw-tbid-login-menu></dw-tbid-login-menu>
|
|
46
|
-
</div>
|
|
47
|
-
<div if:true={showSignup} class="header-login-signup">
|
|
48
|
-
<dx-button
|
|
49
|
-
aria-label="Sign Up For Salesforce Developer Edition"
|
|
50
|
-
size="small"
|
|
51
|
-
href={signupLink}
|
|
52
|
-
onclick={handleSignUpClick}
|
|
53
|
-
>
|
|
54
|
-
Sign Up
|
|
55
|
-
</dx-button>
|
|
56
|
-
</div>
|
|
57
|
-
<dx-header-mobile-nav-menu
|
|
58
|
-
if:true={hasNavItems}
|
|
59
|
-
nav-items={navItems}
|
|
60
|
-
open={showMobileNavMenu}
|
|
61
|
-
pathname={pathname}
|
|
62
|
-
value={mobileNavMenuValue}
|
|
63
|
-
onchange={onMobileNavMenuChange}
|
|
64
|
-
onrequestclose={closeMobileNavMenu}
|
|
65
|
-
>
|
|
66
|
-
<dx-button
|
|
67
|
-
aria-label={bailLabel}
|
|
68
|
-
if:true={hasBailLink}
|
|
69
|
-
href={bailHref}
|
|
70
|
-
variant="tertiary"
|
|
71
|
-
icon-symbol="new_window"
|
|
72
|
-
>
|
|
73
|
-
{bailLabel}
|
|
74
|
-
</dx-button>
|
|
75
|
-
</dx-header-mobile-nav-menu>
|
|
76
|
-
</div>
|
|
77
|
-
<div class="header_l2">
|
|
78
|
-
<div class="header_l2_group header_l2_group-title">
|
|
79
|
-
<a href={headerHref} class="home-link">
|
|
2
|
+
<template lwc:if={shouldRender}>
|
|
3
|
+
<dx-brand-theme-provider brand={brand}>
|
|
4
|
+
<header class={className}>
|
|
5
|
+
<dx-banner
|
|
6
|
+
lwc:if={showBanner}
|
|
7
|
+
banner-markup={bannerMarkup}
|
|
8
|
+
></dx-banner>
|
|
9
|
+
<div lwc:if={devCenter} class="dev-center-link">
|
|
10
|
+
<a href={devCenter.link} class="dev-center-content">
|
|
11
|
+
<dx-icon symbol="back"></dx-icon>
|
|
80
12
|
<dx-icon
|
|
81
13
|
class="brand-icon"
|
|
82
|
-
if
|
|
14
|
+
lwc:if={devCenter.icon}
|
|
83
15
|
sprite="salesforcebrand"
|
|
84
16
|
symbol={brand}
|
|
85
|
-
size="
|
|
17
|
+
size="large"
|
|
86
18
|
></dx-icon>
|
|
87
|
-
<span class="subtitle dx-text-
|
|
88
|
-
{
|
|
19
|
+
<span class="subtitle dx-text-body-4">
|
|
20
|
+
{devCenter.title}
|
|
89
21
|
</span>
|
|
90
22
|
</a>
|
|
91
|
-
<dx-dropdown
|
|
92
|
-
if:true={showMobileLanguages}
|
|
93
|
-
class="header_lang-dropdown"
|
|
94
|
-
options={languages}
|
|
95
|
-
small
|
|
96
|
-
value={language}
|
|
97
|
-
value-path={langValuePath}
|
|
98
|
-
onchange={onLangChange}
|
|
99
|
-
>
|
|
100
|
-
<dx-button
|
|
101
|
-
aria-label="Select Language"
|
|
102
|
-
variant="inline"
|
|
103
|
-
icon-size="large"
|
|
104
|
-
icon-symbol="world"
|
|
105
|
-
></dx-button>
|
|
106
|
-
</dx-dropdown>
|
|
107
23
|
</div>
|
|
108
|
-
<div
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
>
|
|
116
|
-
<dx-header-nav
|
|
117
|
-
aria-label="Scoped Navigation Bar"
|
|
118
|
-
nav-items={scopedNavItems}
|
|
119
|
-
pathname={pathname}
|
|
120
|
-
></dx-header-nav>
|
|
24
|
+
<div class="header_l2">
|
|
25
|
+
<div class="header_l2_group header_l2_group-title">
|
|
26
|
+
<a href={headerHref} class="home-link">
|
|
27
|
+
<span class="subtitle dx-text-display-7">
|
|
28
|
+
{subtitle}
|
|
29
|
+
</span>
|
|
30
|
+
</a>
|
|
121
31
|
</div>
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
class="header_l2_group header_l2_group-right-ctas"
|
|
126
|
-
>
|
|
127
|
-
<dx-dropdown
|
|
128
|
-
if:true={hasLanguages}
|
|
129
|
-
class="header_lang-dropdown"
|
|
130
|
-
options={languages}
|
|
131
|
-
small
|
|
132
|
-
value-path={langValuePath}
|
|
133
|
-
value={language}
|
|
134
|
-
onchange={onLangChange}
|
|
32
|
+
<div
|
|
33
|
+
lwc:if={hasScopedNavItems}
|
|
34
|
+
class="header_l2_group header_l2_group-nav"
|
|
135
35
|
>
|
|
136
|
-
<
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
icon-size="small"
|
|
140
|
-
icon-symbol="world"
|
|
36
|
+
<div
|
|
37
|
+
class="header_l2_group-nav_overflow"
|
|
38
|
+
onscroll={onNavScroll}
|
|
141
39
|
>
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
href={bailHref}
|
|
150
|
-
variant="tertiary"
|
|
151
|
-
icon-symbol="new_window"
|
|
152
|
-
target="_blank"
|
|
153
|
-
>
|
|
154
|
-
{bailLabel}
|
|
155
|
-
</dx-button>
|
|
40
|
+
<dx-header-nav
|
|
41
|
+
aria-label="Scoped Navigation Bar"
|
|
42
|
+
nav-items={scopedNavItems}
|
|
43
|
+
pathname={pathname}
|
|
44
|
+
></dx-header-nav>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
156
47
|
</div>
|
|
157
|
-
</
|
|
158
|
-
</
|
|
159
|
-
</
|
|
48
|
+
</header>
|
|
49
|
+
</dx-brand-theme-provider>
|
|
50
|
+
</template>
|
|
51
|
+
<template lwc:if={showDocDivider}>
|
|
52
|
+
<div class="no-header-content"></div>
|
|
53
|
+
</template>
|
|
160
54
|
</template>
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { api } from "lwc";
|
|
2
2
|
import cx from "classnames";
|
|
3
|
-
import type { OptionWithNested
|
|
3
|
+
import type { OptionWithNested } from "typings/custom";
|
|
4
4
|
import { HeaderBase } from "dxBaseElements/headerBase";
|
|
5
5
|
import { toJson } from "dxUtils/normalizers";
|
|
6
|
-
import get from "lodash.get";
|
|
7
6
|
|
|
8
7
|
const TABLET_MATCH = "980px";
|
|
9
|
-
const MOBILE_MATCH = "
|
|
10
|
-
|
|
8
|
+
const MOBILE_MATCH = "768px";
|
|
9
|
+
|
|
10
|
+
const isStorybook = () => {
|
|
11
|
+
const { host } = window.location;
|
|
12
|
+
return (
|
|
13
|
+
host === "localhost:6006" || /^dsc-comp.*\.herokuapp\.com$/.test(host)
|
|
14
|
+
);
|
|
15
|
+
};
|
|
11
16
|
|
|
12
17
|
export default class Header extends HeaderBase {
|
|
13
18
|
@api langValuePath: string = "id"; // allows to override how language property is interpreted, follows valuePath dropdown api.
|
|
@@ -23,32 +28,20 @@ export default class Header extends HeaderBase {
|
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
@api
|
|
26
|
-
get
|
|
27
|
-
return this.
|
|
31
|
+
get devCenter() {
|
|
32
|
+
return this._devCenter;
|
|
28
33
|
}
|
|
29
34
|
|
|
30
|
-
set
|
|
31
|
-
this.
|
|
35
|
+
set devCenter(value) {
|
|
36
|
+
this._devCenter = toJson(value);
|
|
32
37
|
}
|
|
33
38
|
|
|
34
|
-
@api
|
|
35
|
-
get language() {
|
|
36
|
-
return this._language;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
set language(value) {
|
|
40
|
-
if (this._language !== value) {
|
|
41
|
-
this._language = value;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
private _language: string | null = null;
|
|
46
|
-
private _languages!: OptionWithLink[];
|
|
47
39
|
private _scopedNavItems!: OptionWithNested[];
|
|
48
|
-
private smallMobile = false;
|
|
49
|
-
private smallMobileMatchMedia!: MediaQueryList;
|
|
50
40
|
private tablet = false;
|
|
51
41
|
private tabletMatchMedia!: MediaQueryList;
|
|
42
|
+
private shouldRender: boolean = false;
|
|
43
|
+
private showDocDivider: boolean = false;
|
|
44
|
+
private _devCenter: any;
|
|
52
45
|
|
|
53
46
|
protected mobileBreakpoint(): string {
|
|
54
47
|
return MOBILE_MATCH;
|
|
@@ -58,42 +51,6 @@ export default class Header extends HeaderBase {
|
|
|
58
51
|
return this.scopedNavItems && this.scopedNavItems.length > 0;
|
|
59
52
|
}
|
|
60
53
|
|
|
61
|
-
private get showDesktopNavItems(): boolean {
|
|
62
|
-
return !this.mobile && this.hasNavItems;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
private get showTbidLogin(): boolean {
|
|
66
|
-
return this.showSignup;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
private get showSignup(): boolean {
|
|
70
|
-
return this.signupLink
|
|
71
|
-
? (this.tablet && !this.isSearchOpen) || !this.tablet
|
|
72
|
-
: false;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
private get hasLanguages(): boolean {
|
|
76
|
-
return !!(this.languages && this.languages.length);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
private get showMobileLanguages(): boolean {
|
|
80
|
-
return this.smallMobile && this.hasLanguages;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
private get languageLabel(): string {
|
|
84
|
-
return (
|
|
85
|
-
(this.language &&
|
|
86
|
-
this.languages.find(
|
|
87
|
-
(lang) => get(lang, this.langValuePath) === this.language
|
|
88
|
-
)?.label) ||
|
|
89
|
-
this.languages[0].label
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
private get showMenuButton(): boolean {
|
|
94
|
-
return this.mobile && this.hasNavItems;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
54
|
connectedCallback(): void {
|
|
98
55
|
super.connectedCallback();
|
|
99
56
|
this.tabletMatchMedia = window.matchMedia(
|
|
@@ -102,14 +59,22 @@ export default class Header extends HeaderBase {
|
|
|
102
59
|
this.onTabletChange(this.tabletMatchMedia);
|
|
103
60
|
this.tabletMatchMedia.addEventListener("change", this.onTabletChange);
|
|
104
61
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
62
|
+
if (
|
|
63
|
+
(window.location.pathname.includes("/docs/") &&
|
|
64
|
+
window.location.pathname !== "/docs/apis") ||
|
|
65
|
+
window.location.pathname ===
|
|
66
|
+
"/tableau/embedding-playground/overview" ||
|
|
67
|
+
isStorybook()
|
|
68
|
+
) {
|
|
69
|
+
this.shouldRender = true;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (this.shouldRender && window.location.pathname.includes("/docs/")) {
|
|
73
|
+
if (!this.brand && !this.mobile) {
|
|
74
|
+
this.shouldRender = false;
|
|
75
|
+
this.showDocDivider = true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
113
78
|
}
|
|
114
79
|
|
|
115
80
|
disconnectedCallback(): void {
|
|
@@ -118,29 +83,15 @@ export default class Header extends HeaderBase {
|
|
|
118
83
|
"change",
|
|
119
84
|
this.onTabletChange
|
|
120
85
|
);
|
|
121
|
-
|
|
122
|
-
this.smallMobileMatchMedia.removeEventListener(
|
|
123
|
-
"change",
|
|
124
|
-
this.onSmallMobileChange
|
|
125
|
-
);
|
|
126
86
|
}
|
|
127
87
|
|
|
128
88
|
private onTabletChange = (e: MediaQueryListEvent | MediaQueryList) =>
|
|
129
89
|
(this.tablet = e.matches);
|
|
130
90
|
|
|
131
|
-
private onSmallMobileChange = (e: MediaQueryListEvent | MediaQueryList) =>
|
|
132
|
-
(this.smallMobile = e.matches);
|
|
133
|
-
|
|
134
91
|
protected additionalClasses(): string {
|
|
135
92
|
return cx(
|
|
136
93
|
this.brand && "has-brand",
|
|
137
94
|
this.hasScopedNavItems && "has-scoped-nav-items"
|
|
138
95
|
);
|
|
139
96
|
}
|
|
140
|
-
|
|
141
|
-
private onLangChange(event: CustomEvent<string>): void {
|
|
142
|
-
const { detail } = event;
|
|
143
|
-
this._language = detail;
|
|
144
|
-
this.dispatchEvent(new CustomEvent("langchange", { detail }));
|
|
145
|
-
}
|
|
146
97
|
}
|
|
@@ -1,54 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
h2,
|
|
3
|
-
h3,
|
|
4
|
-
h4,
|
|
5
|
-
h5,
|
|
6
|
-
h6 {
|
|
7
|
-
color: var(--dx-g-blue-vibrant-20);
|
|
8
|
-
font-family: var(--dx-g-font-display);
|
|
9
|
-
font-weight: var(--dx-g-font-demi);
|
|
10
|
-
}
|
|
1
|
+
@import "dxHelpers/text";
|
|
11
2
|
|
|
12
|
-
|
|
13
|
-
margin:
|
|
14
|
-
font-size: var(--dx-g-text-3xl);
|
|
15
|
-
letter-spacing: -0.85px;
|
|
16
|
-
line-height: var(--dx-g-text-4xl);
|
|
3
|
+
h1 {
|
|
4
|
+
margin: var(--dx-g-spacing-2xl) 0 var(--dx-g-spacing-md) 0;
|
|
17
5
|
}
|
|
18
6
|
|
|
19
|
-
|
|
20
|
-
--doc-c-heading-anchor-button-bottom:
|
|
7
|
+
h1 doc-heading-content {
|
|
8
|
+
--doc-c-heading-anchor-button-bottom: 9.5px;
|
|
21
9
|
}
|
|
22
10
|
|
|
23
|
-
|
|
24
|
-
margin: var(--dx-g-spacing-
|
|
25
|
-
font-size: var(--dx-g-text-xl);
|
|
26
|
-
letter-spacing: -0.1px;
|
|
27
|
-
line-height: var(--dx-g-spacing-lg);
|
|
11
|
+
h2 {
|
|
12
|
+
margin: var(--dx-g-spacing-2xl) 0 var(--dx-g-spacing-md) 0;
|
|
28
13
|
}
|
|
29
14
|
|
|
30
|
-
|
|
31
|
-
--doc-c-heading-anchor-button-bottom:
|
|
15
|
+
h2 doc-heading-content {
|
|
16
|
+
--doc-c-heading-anchor-button-bottom: 3px;
|
|
32
17
|
}
|
|
33
18
|
|
|
34
|
-
|
|
35
|
-
margin: var(--dx-g-spacing-
|
|
36
|
-
font-size: var(--dx-g-text-lg);
|
|
37
|
-
letter-spacing: -0.1px;
|
|
38
|
-
line-height: var(--dx-g-spacing-lg);
|
|
19
|
+
h3 {
|
|
20
|
+
margin: var(--dx-g-spacing-xl) 0 var(--dx-g-spacing-md) 0;
|
|
39
21
|
}
|
|
40
22
|
|
|
41
|
-
|
|
42
|
-
--doc-c-heading-anchor-button-bottom: -
|
|
23
|
+
h3 doc-heading-content {
|
|
24
|
+
--doc-c-heading-anchor-button-bottom: -0.5px;
|
|
43
25
|
}
|
|
44
26
|
|
|
45
|
-
|
|
46
|
-
margin: var(--dx-g-spacing-
|
|
47
|
-
font-size: var(--dx-g-text-base);
|
|
48
|
-
letter-spacing: 0;
|
|
49
|
-
line-height: var(--dx-g-spacing-mlg);
|
|
27
|
+
h4 {
|
|
28
|
+
margin: var(--dx-g-spacing-lg) 0 var(--dx-g-spacing-sm) 0;
|
|
50
29
|
}
|
|
51
30
|
|
|
52
|
-
|
|
31
|
+
h4 doc-heading-content {
|
|
53
32
|
--doc-c-heading-anchor-button-bottom: -6px;
|
|
54
33
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<h1 class={className} if:true={isAriaLevelOne}>
|
|
3
|
-
<doc-heading-content
|
|
3
|
+
<doc-heading-content header={header} hash={hash}></doc-heading-content>
|
|
4
4
|
</h1>
|
|
5
5
|
<h2 class={className} if:true={isAriaLevelTwo}>
|
|
6
|
-
<doc-heading-content
|
|
6
|
+
<doc-heading-content header={header} hash={hash}></doc-heading-content>
|
|
7
7
|
</h2>
|
|
8
8
|
<h3 class={className} if:true={isAriaLevelThree}>
|
|
9
|
-
<doc-heading-content
|
|
9
|
+
<doc-heading-content header={header} hash={hash}></doc-heading-content>
|
|
10
10
|
</h3>
|
|
11
11
|
<h4 class={className} if:true={isAriaLevelFour}>
|
|
12
|
-
<doc-heading-content
|
|
12
|
+
<doc-heading-content header={header} hash={hash}></doc-heading-content>
|
|
13
13
|
</h4>
|
|
14
14
|
</template>
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { LightningElement, api } from "lwc";
|
|
2
2
|
|
|
3
|
-
export const displayLevels = ["3", "4", "5", "6"];
|
|
4
|
-
|
|
5
|
-
export const ariaLevels = ["1", "2", "3", "4"];
|
|
6
|
-
|
|
7
3
|
export const ariaDisplayLevels: { [key: string]: string } = {
|
|
8
|
-
"1": "
|
|
9
|
-
"2": "
|
|
10
|
-
"3": "
|
|
11
|
-
"4": "
|
|
4
|
+
"1": "4",
|
|
5
|
+
"2": "5",
|
|
6
|
+
"3": "6",
|
|
7
|
+
"4": "8"
|
|
12
8
|
};
|
|
13
9
|
|
|
10
|
+
export const ariaLevels = Object.keys(ariaDisplayLevels);
|
|
11
|
+
|
|
12
|
+
export const displayLevels = Object.values(ariaDisplayLevels);
|
|
13
|
+
|
|
14
|
+
// @ts-ignore: Really Dark Magic (TM) to do with ariaLevel needing explicit getter/setters
|
|
14
15
|
export default class Heading extends LightningElement {
|
|
15
|
-
@api
|
|
16
|
+
@api header: string = "";
|
|
16
17
|
@api hash: string | null = null;
|
|
17
18
|
|
|
18
19
|
@api
|
|
19
20
|
private get ariaLevel(): string {
|
|
21
|
+
// Really Dark Magic (TM)
|
|
20
22
|
return this._ariaLevel || "2";
|
|
21
23
|
}
|
|
22
24
|
private set ariaLevel(value: string | null) {
|
|
@@ -60,6 +62,6 @@ export default class Heading extends LightningElement {
|
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
private get className(): string {
|
|
63
|
-
return `display-${this.displayLevel}`;
|
|
65
|
+
return `dx-text-display-${this.displayLevel}`;
|
|
64
66
|
}
|
|
65
67
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
button {
|
|
4
4
|
opacity: 0;
|
|
5
|
-
color: rgb(11
|
|
5
|
+
color: rgb(11 92 171);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
button:hover {
|
|
@@ -17,7 +17,7 @@ button:focus {
|
|
|
17
17
|
|
|
18
18
|
button:focus-visible {
|
|
19
19
|
border-radius: 4px;
|
|
20
|
-
border: 2px solid rgb(11
|
|
20
|
+
border: 2px solid rgb(11 92 171);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
.icon-wrapper {
|