({
fromDate = new Date(),
endDate,
dateType = DATE_TYPE.DAY,
displayType = DISPLAY_TYPE.TOTAL,
})
| 257 | } |
| 258 | |
| 259 | function showData({ |
| 260 | fromDate = new Date(), |
| 261 | endDate, |
| 262 | dateType = DATE_TYPE.DAY, |
| 263 | displayType = DISPLAY_TYPE.TOTAL, |
| 264 | }) { |
| 265 | const { chartData = [], allData = [] } = |
| 266 | getData({ fromDate, endDate, dateType, displayType }) || {}; |
| 267 | |
| 268 | // draw chart |
| 269 | let chart = Donut(280, chartData, 50, 2); |
| 270 | chartContainer.innerHTML = ""; |
| 271 | chartContainer.appendChild(chart); |
| 272 | |
| 273 | // draw controller |
| 274 | dataContainer.innerHTML = ""; |
| 275 | |
| 276 | // total row |
| 277 | let totalTime = allData.reduce((acc, curr) => acc + curr.value, 0); |
| 278 | let totalRow = document.createElement("div"); |
| 279 | totalRow.classList.add("row", "total"); |
| 280 | totalRow.innerHTML = ` |
| 281 | <div> |
| 282 | <div class="label">${t({ vi: "Tổng", en: "Total" })}</div> |
| 283 | </div> |
| 284 | <div> |
| 285 | <div class="percentage">100.00 %</div> |
| 286 | <div class="timer">${splitHidden(formatSeconds(totalTime, true))}</div> |
| 287 | </div> |
| 288 | `; |
| 289 | dataContainer.append(totalRow); |
| 290 | |
| 291 | // all rows |
| 292 | allData.forEach((d) => { |
| 293 | let row = document.createElement("div"); |
| 294 | row.classList.add("row"); |
| 295 | row.setAttribute("ufs-website", d.website); |
| 296 | row.innerHTML = ` |
| 297 | <div> |
| 298 | <div class="color" style="background-color: ${d.color}"></div> |
| 299 | <div class="label" >${d.website}</div> |
| 300 | </div> |
| 301 | <div> |
| 302 | <div class="percentage">${d.percentage} %</div> |
| 303 | <div class="timer"> |
| 304 | ${splitHidden(formatSeconds(d.value, true))} |
| 305 | </div> |
| 306 | </div> |
| 307 | `; |
| 308 | row.addEventListener("mouseover", () => { |
| 309 | document.querySelector("g.active")?.classList.remove("active"); |
| 310 | document |
| 311 | .querySelector("g[ufs-website='" + d.website + "']") |
| 312 | ?.dispatchEvent(new Event("mouseover", { bubbles: true })); |
| 313 | }); |
| 314 | row.addEventListener("click", () => {}); |
| 315 | dataContainer.appendChild(row); |
| 316 | }); |
no test coverage detected