@salesforcedevs/docs-components
Advanced tools
Comparing version 1.3.304-ww-fix-alpha1 to 1.3.319-scroll-alpha
{ | ||
"name": "@salesforcedevs/docs-components", | ||
"version": "1.3.304-ww-fix-alpha1", | ||
"version": "1.3.319-scroll-alpha", | ||
"description": "Docs Lightning web components for DSC", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
@@ -1478,6 +1478,14 @@ import { LightningElement, api, track } from "lwc"; | ||
// Adding stringify inside try/catch | ||
let amfModelString = ""; | ||
try { | ||
amfModelString = JSON.stringify(this.amfMap[referenceId].model); | ||
} catch (error) { | ||
console.error(`Error stringifying amf model: ${error}`); | ||
} | ||
// This updates the component in the content section. | ||
this.topicModel = { | ||
type, | ||
amf: this.amfMap[referenceId].model, | ||
amf: amfModelString, | ||
parser: this.amfMap[referenceId].parser, | ||
@@ -1484,0 +1492,0 @@ id: amfId |
@@ -98,3 +98,3 @@ import { Json, DocPhaseInfo } from "typings/custom"; | ||
type: string; | ||
amf: AmfModel; | ||
amf: string; | ||
parser: AmfParser; | ||
@@ -101,0 +101,0 @@ } |
@@ -30,3 +30,7 @@ import { LightningElement, api } from "lwc"; | ||
) { | ||
this.amf = value && clone(value.amf); | ||
try { | ||
this.amf = value && JSON.parse(value.amf); | ||
} catch (error) { | ||
console.error(`Error parsing amf model: ${error}`); | ||
} | ||
} | ||
@@ -37,3 +41,3 @@ if ( | ||
) { | ||
this.type = value && clone(value.type); | ||
this.type = value && value.type; | ||
} | ||
@@ -110,18 +114,1 @@ | ||
} | ||
/** | ||
* The underlying web components we use from api-console mutate their models we pass in. | ||
* Since LWC makes them Read Only, we need to copy them before passing to the Web Component. | ||
* @param value JSON Serializable object to clone. | ||
* @returns A copy of Value. One that has been serialized and parsed via JSON. (Functions, Regex, etc are not preserved.) | ||
*/ | ||
function clone(value: any): any { | ||
const worker = new Worker("./worker.js"); | ||
worker.postMessage(value); | ||
return new Promise((resolve) => { | ||
worker.addEventListener("message", (event) => { | ||
resolve(event.data); | ||
worker.terminate(); | ||
}); | ||
}); | ||
} |
@@ -54,4 +54,4 @@ import { Json } from "typings/custom"; | ||
type: string; | ||
amf: AmfModel; | ||
amf: string; | ||
parser: AmfModelParser; | ||
} |
@@ -218,6 +218,12 @@ /* eslint-disable @lwc/lwc/no-document-query */ | ||
const docPhaseEl = ( | ||
let docPhaseEl = ( | ||
this.template.querySelector("[name=doc-phase]")! as any | ||
).assignedElements()[0] as HTMLSlotElement; | ||
if (!docPhaseEl) { | ||
docPhaseEl = ( | ||
this.template.querySelector("[name=version-banner]")! as any | ||
).assignedElements()[0] as HTMLSlotElement; | ||
} | ||
if (!sidebarEl || !globalNavEl || !contextNavEl || !docHeaderEl) { | ||
@@ -235,2 +241,10 @@ console.warn("One or more required elements are missing."); | ||
const docHeaderHeight = docHeaderEl.getBoundingClientRect().height; | ||
const totalHeaderHeight = globalNavHeight + docHeaderHeight; | ||
// Selecting the doc section heading and RNB here. | ||
const docHeadingEls = Array.from( | ||
document.querySelectorAll("doc-heading") | ||
); | ||
const rightNavBarEl = this.template.querySelector(".right-nav-bar"); | ||
sidebarEl.style.setProperty( | ||
@@ -246,2 +260,23 @@ "--dx-c-content-sidebar-sticky-top", | ||
// Adjusting the doc section heading on scroll. | ||
docHeadingEls.forEach((docHeadingEl) => { | ||
(docHeadingEl as any).style.scrollMarginTop = docPhaseEl | ||
? `${ | ||
totalHeaderHeight + | ||
docPhaseEl.getBoundingClientRect().height + | ||
40 | ||
}px` | ||
: `${totalHeaderHeight + 40}px`; | ||
}); | ||
// Adjusting the right nav bar on scroll. | ||
if (rightNavBarEl) { | ||
rightNavBarEl.style.top = docPhaseEl | ||
? `${ | ||
totalHeaderHeight + | ||
docPhaseEl.getBoundingClientRect().height | ||
}px` | ||
: `${totalHeaderHeight}px`; | ||
} | ||
// If doc phase element exists, we need to account for its sticky position. Mobile should include the sidebar height (since it becomes sticky aswell). | ||
@@ -259,26 +294,2 @@ if (docPhaseEl) { | ||
); | ||
// Adjust scroll margin for doc headings when doc phase is present | ||
const docHeadingEls = Array.from( | ||
document.querySelectorAll("doc-heading") | ||
); | ||
docHeadingEls.forEach((docHeadingEl) => { | ||
(docHeadingEl as any).style.scrollMarginTop = `${ | ||
globalNavHeight + | ||
docHeaderHeight + | ||
docPhaseEl.getBoundingClientRect().height | ||
}px`; | ||
}); | ||
// Adjust right nav bar position when doc phase is present | ||
const rightNavBarEl = | ||
this.template.querySelector(".right-nav-bar"); | ||
if (rightNavBarEl) { | ||
rightNavBarEl.style.top = `${ | ||
globalNavHeight + | ||
docHeaderHeight + | ||
docPhaseEl.getBoundingClientRect().height | ||
}px`; | ||
} | ||
} | ||
@@ -285,0 +296,0 @@ }); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
254791
6539
75