mirror of
https://github.com/badlogic/heissepreise.git
synced 2024-09-21 00:01:02 +02:00
Chart: Re-enable intersection mode, don't back or forward fill anymore
This commit is contained in:
parent
0580fa709d
commit
cd429da10b
|
@ -7,7 +7,7 @@
|
||||||
<items-filter x-id="cartFilter" stores nochartclear class="hidden" placeholder="Filtern..."></items-filter>
|
<items-filter x-id="cartFilter" stores nochartclear class="hidden" placeholder="Filtern..."></items-filter>
|
||||||
<items-list x-id="linkedCartList" chart json nosort class="hidden"></items-list>
|
<items-list x-id="linkedCartList" chart json nosort class="hidden"></items-list>
|
||||||
<items-list x-id="cartList" chart json nosort remove updown class="hidden"></items-list>
|
<items-list x-id="cartList" chart json nosort remove updown class="hidden"></items-list>
|
||||||
<items-filter x-id="productsFilter" class="hidden" stores misc placeholder="Produkt hinzufügen..."></items-filter>
|
<items-filter x-id="productsFilter" class="hidden" stores misc nochartclear placeholder="Produkt hinzufügen..."></items-filter>
|
||||||
<items-list x-id="productsList" class="hidden" add></items-list>
|
<items-list x-id="productsList" class="hidden" add></items-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,45 +103,14 @@ class ItemsChart extends View {
|
||||||
|
|
||||||
const startDate = this.elements.startDate.value;
|
const startDate = this.elements.startDate.value;
|
||||||
const endDate = this.elements.endDate.value;
|
const endDate = this.elements.endDate.value;
|
||||||
const allDates = items.flatMap((item) =>
|
|
||||||
item.priceHistory.filter((price) => price.date >= startDate && price.date <= endDate).map((price) => price.date)
|
|
||||||
);
|
|
||||||
const uniqueDates = [...new Set(allDates)];
|
|
||||||
uniqueDates.sort();
|
|
||||||
|
|
||||||
const now = performance.now();
|
const now = performance.now();
|
||||||
const datasets = items.map((item) => {
|
const datasets = items.map((item) => {
|
||||||
let price = null;
|
const prices = item.priceHistory.filter((price) => price.date >= startDate && price.date <= endDate);
|
||||||
let prices = uniqueDates.map((date) => {
|
|
||||||
const priceObj = item.priceHistory.find((item) => item.date === date);
|
|
||||||
if (!price && priceObj) price = priceObj;
|
|
||||||
return priceObj;
|
|
||||||
});
|
|
||||||
|
|
||||||
let lastPrice = null;
|
|
||||||
for (let i = 0; i < prices.length; i++) {
|
|
||||||
const price = prices[i];
|
|
||||||
if (price) {
|
|
||||||
lastPrice = price;
|
|
||||||
} else {
|
|
||||||
if (lastPrice) prices[i] = lastPrice;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const dedupPrices = [];
|
|
||||||
prices.forEach((price, index) => {
|
|
||||||
if (price == null) return;
|
|
||||||
if (dedupPrices.length == 0) {
|
|
||||||
dedupPrices.push({ price: price.price, date: uniqueDates[index] });
|
|
||||||
} else {
|
|
||||||
const lastPrice = dedupPrices[dedupPrices.length - 1];
|
|
||||||
dedupPrices.push({ price: price.price, date: uniqueDates[index] });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const dataset = {
|
const dataset = {
|
||||||
label: (item.store ? item.store + " " : "") + item.name,
|
label: (item.store ? item.store + " " : "") + item.name,
|
||||||
data: dedupPrices.map((price) => {
|
data: prices.map((price) => {
|
||||||
return {
|
return {
|
||||||
x: moment(price.date),
|
x: moment(price.date),
|
||||||
y: price.price,
|
y: price.price,
|
||||||
|
@ -149,7 +118,7 @@ class ItemsChart extends View {
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
if (settings.chartType == "stepped") {
|
if (settings.chartType == "stepped") {
|
||||||
dataset.stepped = "before";
|
dataset.stepped = "after";
|
||||||
}
|
}
|
||||||
|
|
||||||
return dataset;
|
return dataset;
|
||||||
|
@ -168,10 +137,6 @@ class ItemsChart extends View {
|
||||||
datasets: datasets,
|
datasets: datasets,
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
interaction: {
|
|
||||||
intersect: false,
|
|
||||||
mode: "index",
|
|
||||||
},
|
|
||||||
layout: {
|
layout: {
|
||||||
padding: 20,
|
padding: 20,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user