diff --git a/website/packages/lightweight-charts/wrapper.js b/website/packages/lightweight-charts/wrapper.js index edecc4062..21513fea9 100644 --- a/website/packages/lightweight-charts/wrapper.js +++ b/website/packages/lightweight-charts/wrapper.js @@ -790,6 +790,9 @@ export default import("./v4.2.0/script.js").then((lightweightCharts) => { signals.runWithOwner(owner, () => { signals.createEffect(data, (data) => { series.setData(data); + if (kind === "static") { + pane.timeScale().fitContent(); + } }); }); } @@ -838,6 +841,9 @@ export default import("./v4.2.0/script.js").then((lightweightCharts) => { signals.runWithOwner(owner, () => { signals.createEffect(data, (data) => { series.setData(data); + if (kind === "static") { + pane.timeScale().fitContent(); + } }); }); } @@ -873,6 +879,9 @@ export default import("./v4.2.0/script.js").then((lightweightCharts) => { signals.runWithOwner(owner, () => { signals.createEffect(data, (data) => { series.setData(data); + if (kind === "static") { + pane.timeScale().fitContent(); + } }); }); } diff --git a/website/scripts/main.js b/website/scripts/main.js index 13388732f..0dd2cdda8 100644 --- a/website/scripts/main.js +++ b/website/scripts/main.js @@ -622,6 +622,39 @@ const utils = { return div; }, + /** + * @param {Object} args + * @param {string} args.title + * @param {string} args.description + * @param {HTMLElement} args.input + */ + createFieldElement({ title, description, input }) { + const div = window.document.createElement("div"); + + const label = window.document.createElement("label"); + div.append(label); + + const titleElement = window.document.createElement("span"); + titleElement.innerHTML = title; + label.append(titleElement); + + const descriptionElement = window.document.createElement("small"); + descriptionElement.innerHTML = description; + label.append(descriptionElement); + + div.append(input); + + const forId = input.id || input.firstElementChild?.id; + + if (!forId) { + console.log(input); + throw `Input should've an ID`; + } + + label.htmlFor = forId; + + return div; + }, /** * @param {'left' | 'bottom' | 'top' | 'right'} position */ diff --git a/website/scripts/simulation.js b/website/scripts/simulation.js index 8b5a2e1ae..13b644c16 100644 --- a/website/scripts/simulation.js +++ b/website/scripts/simulation.js @@ -150,7 +150,7 @@ export function init({ } parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "green", type: "Dollars", @@ -170,7 +170,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "green", type: "Dollars", @@ -189,7 +189,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "green", type: "Dollars", @@ -209,7 +209,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "orange", type: "Bitcoin", @@ -229,7 +229,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "orange", type: "Bitcoin", @@ -247,7 +247,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "orange", type: "Bitcoin", @@ -267,7 +267,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "sky", type: "Interval", @@ -286,7 +286,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "sky", type: "Interval", @@ -305,7 +305,7 @@ export function init({ ); parametersElement.append( - createFieldElement({ + utils.dom.createFieldElement({ title: createColoredTypeHTML({ color: "red", type: "Fees", @@ -328,12 +328,262 @@ export function init({ ); const p1 = window.document.createElement("p"); + resultsElement.append(p1); const p2 = window.document.createElement("p"); + resultsElement.append(p2); const p3 = window.document.createElement("p"); + resultsElement.append(p3); const p4 = window.document.createElement("p"); + resultsElement.append(p4); const owner = signals.getOwner(); + const totalInvestedAmountData = signals.createSignal( + /** @type {LineData