You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
4.5 KiB

  1. // package outwatchapp.components.todo
  2. // import typings.chartJs.mod.{^ => Chart, _}
  3. // import typings.moment.mod.Moment
  4. // import typings.std.global.document
  5. // import typings.std.{
  6. // stdStrings,
  7. // Date,
  8. // HTMLButtonElement,
  9. // HTMLCanvasElement,
  10. // HTMLDivElement,
  11. // MouseEvent
  12. // }
  13. // import scala.scalajs.js
  14. // import scala.scalajs.js.|
  15. // import scala.util.Random
  16. // object Chartjs {
  17. // val random = new Random()
  18. // // def main(argv: scala.Array[String]): Unit = {
  19. // // val section = document.createElement_section(stdStrings.section)
  20. // // section.className = "w"
  21. // // section.append(
  22. // // chart(chartConfig(ChartType.bar, randomData(100, random.nextInt()))),
  23. // // chart(chartConfig(ChartType.pie, randomData(100, random.nextInt()))),
  24. // // chart(
  25. // // chartConfig(ChartType.polarArea, randomData(100, random.nextInt()))
  26. // // ),
  27. // // chart(chartConfig(ChartType.line, randomData(100, random.nextInt())))
  28. // // )
  29. // // document.body.append(section)
  30. // // }
  31. // def chartConfig(
  32. // tpe: ChartType,
  33. // Data: js.Array[js.UndefOr[ChartPoint | Double | Null]]
  34. // ): ChartConfiguration =
  35. // ChartConfiguration()
  36. // .setType(tpe)
  37. // .setData(
  38. // ChartData()
  39. // .setLabels(Labels)
  40. // .setDatasets(
  41. // js.Array(
  42. // ChartDataSets()
  43. // .setLabel("Dataset 1")
  44. // .setData(Data)
  45. // .setBorderWidth(1)
  46. // .setBackgroundColor(BackgroundColor)
  47. // .setBorderColor(BorderColor)
  48. // )
  49. // )
  50. // )
  51. // .setOptions(ChartOptions().setResponsive(true))
  52. // def chart(
  53. // divElem: HTMLDivElement,
  54. // canvas: HTMLCanvasElement,
  55. // config: ChartConfiguration
  56. // ): HTMLDivElement = {
  57. // val div2: HTMLDivElement = document.createElement_div(stdStrings.div)
  58. // // val canvas: HTMLCanvasElement =
  59. // // document.createElement_canvas(stdStrings.canvas)
  60. // val chart: Chart = new Chart(canvas, config)
  61. // def dataSetsU: js.UndefOr[js.Array[ChartDataSets]] =
  62. // config.data.flatMap(_.datasets)
  63. // val randomizeBtn = button("Randomize Data") { (_, _) =>
  64. // dataSetsU.foreach(
  65. // _.foreach(dataset => dataset.data = randomData(100, random.nextInt()))
  66. // )
  67. // chart.update()
  68. // }
  69. // val addDataSet = button("Add Dataset") { (_, _) =>
  70. // val newDataset = ChartDataSets()
  71. // .setLabel("Dataset " + dataSetsU.fold(0)(_.length + 1))
  72. // .setData(randomData(100, random.nextInt()))
  73. // .setBorderWidth(1)
  74. // .setBackgroundColor(BackgroundColor)
  75. // .setBorderColor(BorderColor)
  76. // dataSetsU.foreach(_.push(newDataset))
  77. // chart.update()
  78. // }
  79. // val removeDataset = button("Remove dataset") { (_, _) =>
  80. // dataSetsU.foreach(_.splice(0, 1))
  81. // chart.update()
  82. // }
  83. // divElem.append(canvas, randomizeBtn, addDataSet, removeDataset)
  84. // divElem
  85. // }
  86. // def button(title: String)(
  87. // onClick: js.ThisFunction1[HTMLButtonElement, MouseEvent, Unit]
  88. // ): HTMLButtonElement = {
  89. // val btn = document.createElement_button(stdStrings.button)
  90. // btn.textContent = title
  91. // btn.addEventListener_click(stdStrings.click, onClick)
  92. // btn
  93. // }
  94. // def randomData(
  95. // max: Int,
  96. // seed: Int
  97. // ): js.Array[js.UndefOr[ChartPoint | Double | scala.Null]] = {
  98. // val random = new Random(seed)
  99. // js.Array[js.UndefOr[ChartPoint | Double | Null]](
  100. // random.nextInt(max),
  101. // random.nextInt(max),
  102. // random.nextInt(max),
  103. // random.nextInt(max),
  104. // random.nextInt(max),
  105. // random.nextInt(max)
  106. // )
  107. // }
  108. // val Labels: js.Array[
  109. // String | js.Array[Date | Double | Moment | String] | Double | Date | Moment
  110. // ] =
  111. // js.Array("Red", "Blue", "Yellow", "Green", "Purple", "Orange")
  112. // val BackgroundColor: ChartColor =
  113. // js.Array(
  114. // color(54, 162, 235, 0.2),
  115. // color(255, 206, 86, 0.2),
  116. // color(75, 192, 192, 0.2),
  117. // color(153, 102, 255, 0.2),
  118. // color(255, 159, 64, 0.2)
  119. // )
  120. // val BorderColor: ChartColor =
  121. // js.Array(
  122. // color(255, 99, 132, 1),
  123. // color(54, 162, 235, 1),
  124. // color(255, 206, 86, 1),
  125. // color(75, 192, 192, 1),
  126. // color(153, 102, 255, 1),
  127. // color(255, 159, 64, 1)
  128. // )
  129. // def color(r: Int, g: Int, b: Int, a: Double): String =
  130. // s"rgba($r, $g, $b, $a)"
  131. // }