@salesforcedevs/docs-components 1.2.22-alpha → 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 +10 -2
- package/package.json +12 -12
- 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 -139
- package/src/modules/doc/header/header.ts +32 -77
- 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 +186 -74
- 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/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,153 +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 if:true={showSignup} class="header-login-signup">
|
|
41
|
-
<dx-button
|
|
42
|
-
aria-label="Sign Up For Salesforce Developer Edition"
|
|
43
|
-
size="small"
|
|
44
|
-
href={signupLink}
|
|
45
|
-
onclick={handleSignUpClick}
|
|
46
|
-
>
|
|
47
|
-
Sign Up
|
|
48
|
-
</dx-button>
|
|
49
|
-
</div>
|
|
50
|
-
<dx-header-mobile-nav-menu
|
|
51
|
-
if:true={hasNavItems}
|
|
52
|
-
nav-items={navItems}
|
|
53
|
-
open={showMobileNavMenu}
|
|
54
|
-
pathname={pathname}
|
|
55
|
-
value={mobileNavMenuValue}
|
|
56
|
-
onchange={onMobileNavMenuChange}
|
|
57
|
-
onrequestclose={closeMobileNavMenu}
|
|
58
|
-
>
|
|
59
|
-
<dx-button
|
|
60
|
-
aria-label={bailLabel}
|
|
61
|
-
if:true={hasBailLink}
|
|
62
|
-
href={bailHref}
|
|
63
|
-
variant="tertiary"
|
|
64
|
-
icon-symbol="new_window"
|
|
65
|
-
>
|
|
66
|
-
{bailLabel}
|
|
67
|
-
</dx-button>
|
|
68
|
-
</dx-header-mobile-nav-menu>
|
|
69
|
-
</div>
|
|
70
|
-
<div class="header_l2">
|
|
71
|
-
<div class="header_l2_group header_l2_group-title">
|
|
72
|
-
<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>
|
|
73
12
|
<dx-icon
|
|
74
13
|
class="brand-icon"
|
|
75
|
-
if
|
|
14
|
+
lwc:if={devCenter.icon}
|
|
76
15
|
sprite="salesforcebrand"
|
|
77
16
|
symbol={brand}
|
|
78
|
-
size="
|
|
17
|
+
size="large"
|
|
79
18
|
></dx-icon>
|
|
80
|
-
<span class="subtitle dx-text-
|
|
81
|
-
{
|
|
19
|
+
<span class="subtitle dx-text-body-4">
|
|
20
|
+
{devCenter.title}
|
|
82
21
|
</span>
|
|
83
22
|
</a>
|
|
84
|
-
<dx-dropdown
|
|
85
|
-
if:true={showMobileLanguages}
|
|
86
|
-
class="header_lang-dropdown"
|
|
87
|
-
options={languages}
|
|
88
|
-
small
|
|
89
|
-
value={language}
|
|
90
|
-
value-path={langValuePath}
|
|
91
|
-
onchange={onLangChange}
|
|
92
|
-
>
|
|
93
|
-
<dx-button
|
|
94
|
-
aria-label="Select Language"
|
|
95
|
-
variant="inline"
|
|
96
|
-
icon-size="large"
|
|
97
|
-
icon-symbol="world"
|
|
98
|
-
></dx-button>
|
|
99
|
-
</dx-dropdown>
|
|
100
23
|
</div>
|
|
101
|
-
<div
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
>
|
|
109
|
-
<dx-header-nav
|
|
110
|
-
aria-label="Scoped Navigation Bar"
|
|
111
|
-
nav-items={scopedNavItems}
|
|
112
|
-
pathname={pathname}
|
|
113
|
-
></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>
|
|
114
31
|
</div>
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
class="header_l2_group header_l2_group-right-ctas"
|
|
119
|
-
>
|
|
120
|
-
<dx-dropdown
|
|
121
|
-
if:true={hasLanguages}
|
|
122
|
-
class="header_lang-dropdown"
|
|
123
|
-
options={languages}
|
|
124
|
-
small
|
|
125
|
-
value-path={langValuePath}
|
|
126
|
-
value={language}
|
|
127
|
-
onchange={onLangChange}
|
|
32
|
+
<div
|
|
33
|
+
lwc:if={hasScopedNavItems}
|
|
34
|
+
class="header_l2_group header_l2_group-nav"
|
|
128
35
|
>
|
|
129
|
-
<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
icon-size="small"
|
|
133
|
-
icon-symbol="world"
|
|
36
|
+
<div
|
|
37
|
+
class="header_l2_group-nav_overflow"
|
|
38
|
+
onscroll={onNavScroll}
|
|
134
39
|
>
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
href={bailHref}
|
|
143
|
-
variant="tertiary"
|
|
144
|
-
icon-symbol="new_window"
|
|
145
|
-
target="_blank"
|
|
146
|
-
>
|
|
147
|
-
{bailLabel}
|
|
148
|
-
</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>
|
|
149
47
|
</div>
|
|
150
|
-
</
|
|
151
|
-
</
|
|
152
|
-
</
|
|
48
|
+
</header>
|
|
49
|
+
</dx-brand-theme-provider>
|
|
50
|
+
</template>
|
|
51
|
+
<template lwc:if={showDocDivider}>
|
|
52
|
+
<div class="no-header-content"></div>
|
|
53
|
+
</template>
|
|
153
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.
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
set languages(value) {
|
|
31
|
-
this._languages = toJson(value);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@api
|
|
35
|
-
get language() {
|
|
36
|
-
return this._language;
|
|
31
|
+
get devCenter() {
|
|
32
|
+
return this._devCenter;
|
|
37
33
|
}
|
|
38
34
|
|
|
39
|
-
set
|
|
40
|
-
|
|
41
|
-
this._language = value;
|
|
42
|
-
}
|
|
35
|
+
set devCenter(value) {
|
|
36
|
+
this._devCenter = toJson(value);
|
|
43
37
|
}
|
|
44
38
|
|
|
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,38 +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 showSignup(): boolean {
|
|
66
|
-
return this.signupLink
|
|
67
|
-
? (this.tablet && !this.isSearchOpen) || !this.tablet
|
|
68
|
-
: false;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
private get hasLanguages(): boolean {
|
|
72
|
-
return !!(this.languages && this.languages.length);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
private get showMobileLanguages(): boolean {
|
|
76
|
-
return this.smallMobile && this.hasLanguages;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
private get languageLabel(): string {
|
|
80
|
-
return (
|
|
81
|
-
(this.language &&
|
|
82
|
-
this.languages.find(
|
|
83
|
-
(lang) => get(lang, this.langValuePath) === this.language
|
|
84
|
-
)?.label) ||
|
|
85
|
-
this.languages[0].label
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
private get showMenuButton(): boolean {
|
|
90
|
-
return this.mobile && this.hasNavItems;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
54
|
connectedCallback(): void {
|
|
94
55
|
super.connectedCallback();
|
|
95
56
|
this.tabletMatchMedia = window.matchMedia(
|
|
@@ -98,14 +59,22 @@ export default class Header extends HeaderBase {
|
|
|
98
59
|
this.onTabletChange(this.tabletMatchMedia);
|
|
99
60
|
this.tabletMatchMedia.addEventListener("change", this.onTabletChange);
|
|
100
61
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
+
}
|
|
109
78
|
}
|
|
110
79
|
|
|
111
80
|
disconnectedCallback(): void {
|
|
@@ -114,29 +83,15 @@ export default class Header extends HeaderBase {
|
|
|
114
83
|
"change",
|
|
115
84
|
this.onTabletChange
|
|
116
85
|
);
|
|
117
|
-
|
|
118
|
-
this.smallMobileMatchMedia.removeEventListener(
|
|
119
|
-
"change",
|
|
120
|
-
this.onSmallMobileChange
|
|
121
|
-
);
|
|
122
86
|
}
|
|
123
87
|
|
|
124
88
|
private onTabletChange = (e: MediaQueryListEvent | MediaQueryList) =>
|
|
125
89
|
(this.tablet = e.matches);
|
|
126
90
|
|
|
127
|
-
private onSmallMobileChange = (e: MediaQueryListEvent | MediaQueryList) =>
|
|
128
|
-
(this.smallMobile = e.matches);
|
|
129
|
-
|
|
130
91
|
protected additionalClasses(): string {
|
|
131
92
|
return cx(
|
|
132
93
|
this.brand && "has-brand",
|
|
133
94
|
this.hasScopedNavItems && "has-scoped-nav-items"
|
|
134
95
|
);
|
|
135
96
|
}
|
|
136
|
-
|
|
137
|
-
private onLangChange(event: CustomEvent<string>): void {
|
|
138
|
-
const { detail } = event;
|
|
139
|
-
this._language = detail;
|
|
140
|
-
this.dispatchEvent(new CustomEvent("langchange", { detail }));
|
|
141
|
-
}
|
|
142
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 {
|