@jigowatts/jigowatts-ui 1.2.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/dist/components/Button/index.cjs.js.map +1 -1
  2. package/dist/components/Button/index.es.js.map +1 -1
  3. package/dist/components/Button/index.test.cjs.js +1 -1
  4. package/dist/components/Button/index.test.cjs.js.map +1 -1
  5. package/dist/components/Button/index.test.es.js +1 -1
  6. package/dist/components/Button/index.test.es.js.map +1 -1
  7. package/dist/components/Card/index.cjs.js.map +1 -1
  8. package/dist/components/Card/index.es.js.map +1 -1
  9. package/dist/components/Card/index.test.cjs.js +1 -1
  10. package/dist/components/Card/index.test.cjs.js.map +1 -1
  11. package/dist/components/Card/index.test.es.js +1 -1
  12. package/dist/components/Card/index.test.es.js.map +1 -1
  13. package/dist/components/CardWithTitle/index.cjs.js.map +1 -1
  14. package/dist/components/CardWithTitle/index.es.js.map +1 -1
  15. package/dist/components/CardWithTitle/index.test.cjs.js +1 -1
  16. package/dist/components/CardWithTitle/index.test.cjs.js.map +1 -1
  17. package/dist/components/CardWithTitle/index.test.es.js +2 -2
  18. package/dist/components/CardWithTitle/index.test.es.js.map +1 -1
  19. package/dist/components/CustomLink/index.cjs.js.map +1 -1
  20. package/dist/components/CustomLink/index.es.js.map +1 -1
  21. package/dist/components/CustomLink/index.test.cjs.js +1 -1
  22. package/dist/components/CustomLink/index.test.cjs.js.map +1 -1
  23. package/dist/components/CustomLink/index.test.es.js +2 -2
  24. package/dist/components/CustomLink/index.test.es.js.map +1 -1
  25. package/dist/components/DataTable/index.cjs.js.map +1 -1
  26. package/dist/components/DataTable/index.es.js.map +1 -1
  27. package/dist/components/DataTable/index.test.cjs.js +1 -1
  28. package/dist/components/DataTable/index.test.cjs.js.map +1 -1
  29. package/dist/components/DataTable/index.test.es.js +3 -3
  30. package/dist/components/DataTable/index.test.es.js.map +1 -1
  31. package/dist/components/DatePickerController/index.cjs.js.map +1 -1
  32. package/dist/components/DatePickerController/index.d.ts +1 -0
  33. package/dist/components/DatePickerController/index.es.js.map +1 -1
  34. package/dist/components/DatePickerController/index.test.cjs.js +1 -1
  35. package/dist/components/DatePickerController/index.test.cjs.js.map +1 -1
  36. package/dist/components/DatePickerController/index.test.es.js +1 -1
  37. package/dist/components/DatePickerController/index.test.es.js.map +1 -1
  38. package/dist/components/ErrorMessage/index.cjs.js.map +1 -1
  39. package/dist/components/ErrorMessage/index.es.js.map +1 -1
  40. package/dist/components/ErrorMessage/index.test.cjs.js +1 -1
  41. package/dist/components/ErrorMessage/index.test.cjs.js.map +1 -1
  42. package/dist/components/ErrorMessage/index.test.es.js +2 -2
  43. package/dist/components/ErrorMessage/index.test.es.js.map +1 -1
  44. package/dist/components/EvseStateLabel/index.cjs.js.map +1 -1
  45. package/dist/components/EvseStateLabel/index.es.js.map +1 -1
  46. package/dist/components/FlexButtons/index.cjs.js.map +1 -1
  47. package/dist/components/FlexButtons/index.es.js.map +1 -1
  48. package/dist/components/FlexButtons/index.test.cjs.js +1 -1
  49. package/dist/components/FlexButtons/index.test.cjs.js.map +1 -1
  50. package/dist/components/FlexButtons/index.test.es.js +2 -2
  51. package/dist/components/FlexButtons/index.test.es.js.map +1 -1
  52. package/dist/components/Form/index.cjs.js.map +1 -1
  53. package/dist/components/Form/index.es.js.map +1 -1
  54. package/dist/components/Form/index.test.cjs.js +1 -1
  55. package/dist/components/Form/index.test.cjs.js.map +1 -1
  56. package/dist/components/Form/index.test.es.js +2 -2
  57. package/dist/components/Form/index.test.es.js.map +1 -1
  58. package/dist/components/FormItem/index.cjs.js.map +1 -1
  59. package/dist/components/FormItem/index.es.js.map +1 -1
  60. package/dist/components/FormItem/index.test.cjs.js +1 -1
  61. package/dist/components/FormItem/index.test.cjs.js.map +1 -1
  62. package/dist/components/FormItem/index.test.es.js +2 -2
  63. package/dist/components/FormItem/index.test.es.js.map +1 -1
  64. package/dist/components/FormTitle/index.cjs.js.map +1 -1
  65. package/dist/components/FormTitle/index.es.js.map +1 -1
  66. package/dist/components/FormTitle/index.test.cjs.js +1 -1
  67. package/dist/components/FormTitle/index.test.cjs.js.map +1 -1
  68. package/dist/components/FormTitle/index.test.es.js +2 -2
  69. package/dist/components/FormTitle/index.test.es.js.map +1 -1
  70. package/dist/components/HStack/index.cjs.js.map +1 -1
  71. package/dist/components/HStack/index.es.js.map +1 -1
  72. package/dist/components/HStack/index.test.cjs.js +1 -1
  73. package/dist/components/HStack/index.test.cjs.js.map +1 -1
  74. package/dist/components/HStack/index.test.es.js +2 -2
  75. package/dist/components/HStack/index.test.es.js.map +1 -1
  76. package/dist/components/HtmlRenderer/index.cjs.js +1 -1
  77. package/dist/components/HtmlRenderer/index.es.js +1 -1
  78. package/dist/components/HtmlRenderer/index.test.cjs.js +1 -1
  79. package/dist/components/HtmlRenderer/index.test.cjs.js.map +1 -1
  80. package/dist/components/HtmlRenderer/index.test.es.js +2 -2
  81. package/dist/components/HtmlRenderer/index.test.es.js.map +1 -1
  82. package/dist/components/Input/index.cjs.js.map +1 -1
  83. package/dist/components/Input/index.es.js.map +1 -1
  84. package/dist/components/Input/index.test.cjs.js +1 -1
  85. package/dist/components/Input/index.test.cjs.js.map +1 -1
  86. package/dist/components/Input/index.test.es.js +1 -1
  87. package/dist/components/Input/index.test.es.js.map +1 -1
  88. package/dist/components/InputController/index.cjs.js.map +1 -1
  89. package/dist/components/InputController/index.es.js.map +1 -1
  90. package/dist/components/InputController/index.test.cjs.js +1 -1
  91. package/dist/components/InputController/index.test.cjs.js.map +1 -1
  92. package/dist/components/InputController/index.test.es.js +1 -1
  93. package/dist/components/InputController/index.test.es.js.map +1 -1
  94. package/dist/components/InputGroup/index.cjs.js.map +1 -1
  95. package/dist/components/InputGroup/index.es.js.map +1 -1
  96. package/dist/components/InputGroup/index.test.cjs.js +1 -1
  97. package/dist/components/InputGroup/index.test.cjs.js.map +1 -1
  98. package/dist/components/InputGroup/index.test.es.js +2 -2
  99. package/dist/components/InputGroup/index.test.es.js.map +1 -1
  100. package/dist/components/Label/index.cjs.js.map +1 -1
  101. package/dist/components/Label/index.es.js.map +1 -1
  102. package/dist/components/Label/index.test.cjs.js +1 -1
  103. package/dist/components/Label/index.test.cjs.js.map +1 -1
  104. package/dist/components/Label/index.test.es.js +2 -2
  105. package/dist/components/Label/index.test.es.js.map +1 -1
  106. package/dist/components/LabeledContent/index.cjs.js.map +1 -1
  107. package/dist/components/LabeledContent/index.es.js.map +1 -1
  108. package/dist/components/LabeledContent/index.test.cjs.js +1 -1
  109. package/dist/components/LabeledContent/index.test.cjs.js.map +1 -1
  110. package/dist/components/LabeledContent/index.test.es.js +1 -1
  111. package/dist/components/LabeledContent/index.test.es.js.map +1 -1
  112. package/dist/components/LoadingOverlay/index.cjs.js.map +1 -1
  113. package/dist/components/LoadingOverlay/index.es.js.map +1 -1
  114. package/dist/components/LoadingOverlay/index.test.cjs.js +1 -1
  115. package/dist/components/LoadingOverlay/index.test.cjs.js.map +1 -1
  116. package/dist/components/LoadingOverlay/index.test.es.js +2 -2
  117. package/dist/components/LoadingOverlay/index.test.es.js.map +1 -1
  118. package/dist/components/Map/index.cjs.js +2 -2
  119. package/dist/components/Map/index.cjs.js.map +1 -1
  120. package/dist/components/Map/index.es.js +709 -716
  121. package/dist/components/Map/index.es.js.map +1 -1
  122. package/dist/components/MaxWidthContainer/index.cjs.js.map +1 -1
  123. package/dist/components/MaxWidthContainer/index.es.js.map +1 -1
  124. package/dist/components/MaxWidthContainer/index.test.cjs.js +1 -1
  125. package/dist/components/MaxWidthContainer/index.test.cjs.js.map +1 -1
  126. package/dist/components/MaxWidthContainer/index.test.es.js +2 -2
  127. package/dist/components/MaxWidthContainer/index.test.es.js.map +1 -1
  128. package/dist/components/NumericFieldController/index.cjs.js.map +1 -1
  129. package/dist/components/NumericFieldController/index.d.ts +1 -0
  130. package/dist/components/NumericFieldController/index.es.js.map +1 -1
  131. package/dist/components/NumericFieldController/index.test.cjs.js +1 -1
  132. package/dist/components/NumericFieldController/index.test.cjs.js.map +1 -1
  133. package/dist/components/NumericFieldController/index.test.es.js +1 -1
  134. package/dist/components/NumericFieldController/index.test.es.js.map +1 -1
  135. package/dist/components/OfflineLabel/index.cjs.js.map +1 -1
  136. package/dist/components/OfflineLabel/index.es.js.map +1 -1
  137. package/dist/components/PageSizeSelector/index.cjs.js.map +1 -1
  138. package/dist/components/PageSizeSelector/index.es.js.map +1 -1
  139. package/dist/components/Pagination/index.cjs.js +2 -2
  140. package/dist/components/Pagination/index.cjs.js.map +1 -1
  141. package/dist/components/Pagination/index.es.js +17 -17
  142. package/dist/components/Pagination/index.es.js.map +1 -1
  143. package/dist/components/Pagination/index.test.cjs.js +1 -1
  144. package/dist/components/Pagination/index.test.cjs.js.map +1 -1
  145. package/dist/components/Pagination/index.test.es.js +1 -1
  146. package/dist/components/Pagination/index.test.es.js.map +1 -1
  147. package/dist/components/PasswordInputController/index.cjs.js.map +1 -1
  148. package/dist/components/PasswordInputController/index.es.js.map +1 -1
  149. package/dist/components/PasswordInputController/index.test.cjs.js +1 -1
  150. package/dist/components/PasswordInputController/index.test.cjs.js.map +1 -1
  151. package/dist/components/PasswordInputController/index.test.es.js +1 -1
  152. package/dist/components/PasswordInputController/index.test.es.js.map +1 -1
  153. package/dist/components/RadioButton/index.test.cjs.js +1 -1
  154. package/dist/components/RadioButton/index.test.cjs.js.map +1 -1
  155. package/dist/components/RadioButton/index.test.es.js +2 -2
  156. package/dist/components/RadioButton/index.test.es.js.map +1 -1
  157. package/dist/components/RadioGroupController/index.cjs.js.map +1 -1
  158. package/dist/components/RadioGroupController/index.es.js.map +1 -1
  159. package/dist/components/RadioGroupController/index.test.cjs.js +1 -1
  160. package/dist/components/RadioGroupController/index.test.cjs.js.map +1 -1
  161. package/dist/components/RadioGroupController/index.test.es.js +1 -1
  162. package/dist/components/RadioGroupController/index.test.es.js.map +1 -1
  163. package/dist/components/RangeDatePicker/index.cjs.js.map +1 -1
  164. package/dist/components/RangeDatePicker/index.es.js.map +1 -1
  165. package/dist/components/RangeDatePickerController/index.cjs.js.map +1 -1
  166. package/dist/components/RangeDatePickerController/index.es.js.map +1 -1
  167. package/dist/components/RangeDatePickerController/index.test.cjs.js +1 -1
  168. package/dist/components/RangeDatePickerController/index.test.cjs.js.map +1 -1
  169. package/dist/components/RangeDatePickerController/index.test.es.js +1 -1
  170. package/dist/components/RangeDatePickerController/index.test.es.js.map +1 -1
  171. package/dist/components/ReportCard/index.cjs.js.map +1 -1
  172. package/dist/components/ReportCard/index.es.js.map +1 -1
  173. package/dist/components/ReportCard/index.test.cjs.js +1 -1
  174. package/dist/components/ReportCard/index.test.cjs.js.map +1 -1
  175. package/dist/components/ReportCard/index.test.es.js +1 -1
  176. package/dist/components/ReportCard/index.test.es.js.map +1 -1
  177. package/dist/components/ReportChart/index.cjs.js.map +1 -1
  178. package/dist/components/ReportChart/index.es.js.map +1 -1
  179. package/dist/components/ReportChartMulti/index.cjs.js.map +1 -1
  180. package/dist/components/ReportChartMulti/index.es.js.map +1 -1
  181. package/dist/components/ReportChartMulti/index.test.cjs.js +1 -1
  182. package/dist/components/ReportChartMulti/index.test.cjs.js.map +1 -1
  183. package/dist/components/ReportChartMulti/index.test.es.js +1 -1
  184. package/dist/components/ReportChartMulti/index.test.es.js.map +1 -1
  185. package/dist/components/ScrollableDialog/index.cjs.js.map +1 -1
  186. package/dist/components/ScrollableDialog/index.es.js.map +1 -1
  187. package/dist/components/ScrollableDialog/index.test.cjs.js +1 -1
  188. package/dist/components/ScrollableDialog/index.test.cjs.js.map +1 -1
  189. package/dist/components/ScrollableDialog/index.test.es.js +1 -1
  190. package/dist/components/ScrollableDialog/index.test.es.js.map +1 -1
  191. package/dist/components/SearchForm/index.cjs.js.map +1 -1
  192. package/dist/components/SearchForm/index.es.js.map +1 -1
  193. package/dist/components/SelectBox/index.test.cjs.js +1 -1
  194. package/dist/components/SelectBox/index.test.cjs.js.map +1 -1
  195. package/dist/components/SelectBox/index.test.es.js +1 -1
  196. package/dist/components/SelectBox/index.test.es.js.map +1 -1
  197. package/dist/components/SelectBoxController/index.cjs.js.map +1 -1
  198. package/dist/components/SelectBoxController/index.es.js.map +1 -1
  199. package/dist/components/SelectBoxController/index.test.cjs.js +1 -1
  200. package/dist/components/SelectBoxController/index.test.cjs.js.map +1 -1
  201. package/dist/components/SelectBoxController/index.test.es.js +1 -1
  202. package/dist/components/SelectBoxController/index.test.es.js.map +1 -1
  203. package/dist/components/SideMenu/index.cjs.js.map +1 -1
  204. package/dist/components/SideMenu/index.es.js.map +1 -1
  205. package/dist/components/SideMenu/index.test.cjs.js +1 -1
  206. package/dist/components/SideMenu/index.test.cjs.js.map +1 -1
  207. package/dist/components/SideMenu/index.test.es.js +3 -3
  208. package/dist/components/SideMenu/index.test.es.js.map +1 -1
  209. package/dist/components/SpinnerButton/index.cjs.js.map +1 -1
  210. package/dist/components/SpinnerButton/index.es.js.map +1 -1
  211. package/dist/components/SpinnerButton/index.test.cjs.js +1 -1
  212. package/dist/components/SpinnerButton/index.test.cjs.js.map +1 -1
  213. package/dist/components/SpinnerButton/index.test.es.js +2 -2
  214. package/dist/components/SpinnerButton/index.test.es.js.map +1 -1
  215. package/dist/components/SubMenu/index.cjs.js.map +1 -1
  216. package/dist/components/SubMenu/index.es.js.map +1 -1
  217. package/dist/components/SubMenu/index.test.cjs.js +1 -1
  218. package/dist/components/SubMenu/index.test.cjs.js.map +1 -1
  219. package/dist/components/SubMenu/index.test.es.js +1 -1
  220. package/dist/components/SubMenu/index.test.es.js.map +1 -1
  221. package/dist/components/Tabs/index.cjs.js.map +1 -1
  222. package/dist/components/Tabs/index.d.ts +1 -1
  223. package/dist/components/Tabs/index.es.js.map +1 -1
  224. package/dist/components/Tabs/index.test.cjs.js +1 -1
  225. package/dist/components/Tabs/index.test.cjs.js.map +1 -1
  226. package/dist/components/Tabs/index.test.es.js +2 -2
  227. package/dist/components/Tabs/index.test.es.js.map +1 -1
  228. package/dist/components/Textarea/index.cjs.js.map +1 -1
  229. package/dist/components/Textarea/index.es.js.map +1 -1
  230. package/dist/components/Textarea/index.test.cjs.js +1 -1
  231. package/dist/components/Textarea/index.test.cjs.js.map +1 -1
  232. package/dist/components/Textarea/index.test.es.js +2 -2
  233. package/dist/components/Textarea/index.test.es.js.map +1 -1
  234. package/dist/components/Title/index.cjs.js.map +1 -1
  235. package/dist/components/Title/index.es.js.map +1 -1
  236. package/dist/components/Title/index.test.cjs.js +1 -1
  237. package/dist/components/Title/index.test.cjs.js.map +1 -1
  238. package/dist/components/Title/index.test.es.js +2 -2
  239. package/dist/components/Title/index.test.es.js.map +1 -1
  240. package/dist/components/ToggleButton/index.cjs.js.map +1 -1
  241. package/dist/components/ToggleButton/index.es.js.map +1 -1
  242. package/dist/components/ToggleButton/index.test.cjs.js +1 -1
  243. package/dist/components/ToggleButton/index.test.cjs.js.map +1 -1
  244. package/dist/components/ToggleButton/index.test.es.js +1 -1
  245. package/dist/components/ToggleButton/index.test.es.js.map +1 -1
  246. package/dist/components/VStack/index.cjs.js.map +1 -1
  247. package/dist/components/VStack/index.es.js.map +1 -1
  248. package/dist/components/VStack/index.test.cjs.js +1 -1
  249. package/dist/components/VStack/index.test.cjs.js.map +1 -1
  250. package/dist/components/VStack/index.test.es.js +2 -2
  251. package/dist/components/VStack/index.test.es.js.map +1 -1
  252. package/dist/{index-D5b3AasF.js → index--uHewOkd.js} +2 -2
  253. package/dist/{index-D5b3AasF.js.map → index--uHewOkd.js.map} +1 -1
  254. package/dist/index-9p9q0wxE.cjs +39 -0
  255. package/dist/index-9p9q0wxE.cjs.map +1 -0
  256. package/dist/index-B663CLQ0.cjs.map +1 -1
  257. package/dist/{index-C50NsnJO.cjs → index-Bbj4TMfJ.cjs} +2 -2
  258. package/dist/{index-C50NsnJO.cjs.map → index-Bbj4TMfJ.cjs.map} +1 -1
  259. package/dist/{index-ZP4xL6Dt.js → index-Bt_ypxrX.js} +7373 -6726
  260. package/dist/index-Bt_ypxrX.js.map +1 -0
  261. package/dist/index-C9Dbd7MM.cjs +4 -0
  262. package/dist/index-C9Dbd7MM.cjs.map +1 -0
  263. package/dist/index-CCbJ_2yU.cjs.map +1 -1
  264. package/dist/index-CSiE_l9r.js.map +1 -1
  265. package/dist/index-CaEC29Xt.cjs +96 -0
  266. package/dist/index-CaEC29Xt.cjs.map +1 -0
  267. package/dist/{index-DCSLk6pp.js → index-Cj9ZvtM1.js} +1890 -2721
  268. package/dist/index-Cj9ZvtM1.js.map +1 -0
  269. package/dist/index-pr0ncuNy.js.map +1 -1
  270. package/dist/{index-BqN32Ptm.js → index-zix1zlkq.js} +628 -602
  271. package/dist/index-zix1zlkq.js.map +1 -0
  272. package/dist/index.cjs.js +1 -1
  273. package/dist/index.es.js +1 -1
  274. package/dist/{react.esm-CiMn0Rnx.cjs → react.esm-BcRJ42eI.cjs} +31 -31
  275. package/dist/react.esm-BcRJ42eI.cjs.map +1 -0
  276. package/dist/{react.esm-2FJSSo-S.js → react.esm-DVhZgPrH.js} +629 -608
  277. package/dist/react.esm-DVhZgPrH.js.map +1 -0
  278. package/package.json +21 -18
  279. package/dist/browser-BCVsA9bD.cjs +0 -2
  280. package/dist/browser-BCVsA9bD.cjs.map +0 -1
  281. package/dist/browser-BYxLWVDg.js +0 -654
  282. package/dist/browser-BYxLWVDg.js.map +0 -1
  283. package/dist/index-BHsZ5xlA.cjs +0 -96
  284. package/dist/index-BHsZ5xlA.cjs.map +0 -1
  285. package/dist/index-BoNIpBs7.cjs +0 -4
  286. package/dist/index-BoNIpBs7.cjs.map +0 -1
  287. package/dist/index-BpMSrIOq.cjs +0 -43
  288. package/dist/index-BpMSrIOq.cjs.map +0 -1
  289. package/dist/index-BqN32Ptm.js.map +0 -1
  290. package/dist/index-DCSLk6pp.js.map +0 -1
  291. package/dist/index-ZP4xL6Dt.js.map +0 -1
  292. package/dist/react.esm-2FJSSo-S.js.map +0 -1
  293. package/dist/react.esm-CiMn0Rnx.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/ReportChartMulti/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n CategoryScale,\n Chart as ChartJS,\n Tooltip as ChartJSTooltip,\n ChartOptions,\n Filler,\n Legend,\n LinearScale,\n LineController,\n LineElement,\n PointElement,\n TimeScale,\n Title,\n TooltipItem,\n} from \"chart.js\";\n\nimport \"chartjs-adapter-date-fns\";\n\nimport { endOfDay, format, startOfDay } from \"date-fns\";\nimport { Line as LineChartJS } from \"react-chartjs-2\";\n\nimport { CardWithTitle } from \"../CardWithTitle\";\nimport styles from \"./index.module.scss\";\n\nexport type datasetType = {\n label: string;\n data: { date: string; value: number }[];\n borderColor: string;\n backgroundColor?: string;\n borderWidth?: number;\n fill?: boolean | number | string;\n stack?: string;\n skipEmptyData?: boolean;\n};\n\ntype Props = {\n datasets: datasetType[];\n xLabel: string;\n yLabel: string;\n dataIntervalMin?: number;\n xType: \"day\" | \"week\" | \"month\" | \"year\";\n chartMargin?: ChartMargin;\n tooltipFormatter?: CustomToolTipFormatter;\n isLoading?: boolean;\n title: string; // Add title prop\n precision?: number; // Y軸の小数点以下の桁数を指定\n};\n\ntype ChartMargin = {\n top: number;\n right: number;\n bottom: number;\n left: number;\n};\n\ntype CustomToolTipFormatter = (value: unknown, label: string) => string[];\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Filler,\n LineController,\n Title,\n ChartJSTooltip,\n Legend,\n TimeScale, // TimeScaleを登録\n);\n\n// グラフで利用する標準色を定義\nexport const chartColors = {\n red: \"rgb(255, 99, 132)\",\n orange: \"rgb(255, 184, 76)\",\n yellow: \"rgb(255, 205, 86)\",\n green: \"rgb(102, 187, 106)\",\n blue: \"rgb(41, 182, 246)\",\n purple: \"rgb(153, 102, 255)\",\n grey: \"rgb(201, 203, 207)\",\n // 透過色(塗りつぶしに利用)\n redTransparent: \"rgba(255, 99, 132, 0.5)\",\n orangeTransparent: \"rgba(255, 184, 76, 0.5)\",\n yellowTransparent: \"rgba(255, 205, 86, 0.5)\",\n greenTransparent: \"rgba(102, 187, 106, 0.5)\",\n blueTransparent: \"rgba(41, 182, 246, 0.5)\",\n purpleTransparent: \"rgba(153, 102, 255, 0.5)\",\n greyTransparent: \"rgba(201, 203, 207, 0.5)\",\n};\n\nexport const ReportChartMulti = (props: Props) => {\n const {\n datasets,\n xLabel = \"\",\n yLabel = \"\",\n xType = \"day\",\n dataIntervalMin = 5,\n chartMargin = { top: 0, right: 20, bottom: 20, left: 10 },\n tooltipFormatter = (value: unknown, label: string) => [\n String(value),\n String(label),\n ],\n isLoading,\n title, // Destructure title from props\n precision,\n } = props;\n\n const chartRef = useRef(null);\n\n // stackにグループを追加している場合は、積み上げグラフとなる\n const isStacked = datasets.some((dataset) => dataset.stack !== undefined);\n\n // 時間の範囲を描画する基準として利用するダミーデータをdatasetsに追加\n // TODO:現状はxTypeがdayの場合のみ対応している\n if (xType === \"day\") {\n const startDate = format(\n startOfDay(new Date()),\n \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\",\n );\n const endDate = format(\n endOfDay(new Date()),\n \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\",\n );\n\n const rangeOfDate = [\n { date: startDate, value: 0 },\n { date: endDate, value: 0 },\n ];\n\n datasets.unshift({\n label: \"\",\n data: rangeOfDate,\n borderColor: \"rgba(0, 0, 0, 0)\", // 透明色\n });\n }\n\n const dayScaleOptions = {\n type: \"time\",\n time: {\n unit: \"minute\",\n displayFormats: {\n minute: \"HH:mm\",\n },\n tooltipFormat: \"HH:mm\",\n },\n title: {\n display: true,\n text: xLabel,\n },\n ticks: {\n source: \"auto\",\n autoSkip: true,\n maxTicksLimit: 24,\n callback: function (value: string | number): string {\n const dateValue =\n typeof value === \"string\" ? new Date(value) : new Date(value);\n const hours = dateValue.getHours();\n return `${hours}時`;\n },\n },\n };\n\n const otherScaleOptions = {\n title: {\n display: true,\n text: xLabel,\n },\n };\n\n const options: ChartOptions<\"line\"> = {\n interaction: {\n intersect: false,\n },\n responsive: true,\n aspectRatio: 2,\n maintainAspectRatio: false,\n animation: false,\n transitions: {\n resize: {\n animations: {\n x: {\n from: 0,\n },\n y: {\n from: 0,\n },\n },\n },\n show: {\n animations: {\n x: {\n from: 0,\n },\n y: {\n from: 0,\n },\n },\n },\n },\n layout: {\n padding: {\n left: chartMargin.left,\n right: chartMargin.right,\n top: chartMargin.top,\n bottom: chartMargin.bottom,\n },\n },\n plugins: {\n legend: {\n display: true,\n position: \"top\" as const,\n },\n title: {\n display: false,\n },\n tooltip: {\n callbacks: {\n label: (context: TooltipItem<\"line\">) => {\n // 時間基準データはツールチップに表示させない\n if (context.dataset.label === \"\") {\n return \"\";\n }\n const label = context.dataset.label\n ? `${context.dataset.label}`\n : \"\";\n const ar = tooltipFormatter(context.parsed.y, label);\n const str = ar.reverse().join(\":\");\n return str;\n },\n },\n },\n },\n scales: {\n x: xType === \"day\" ? dayScaleOptions : otherScaleOptions, // 実際使うTypeが増えたらここを改修\n y: {\n stacked: isStacked,\n beginAtZero: true,\n title: {\n display: true,\n text: yLabel,\n },\n ticks: {\n precision: precision,\n },\n },\n },\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const skipped = (ctx: any, value: any): any =>\n ctx.p0.skip || ctx.p1.skip ? value : undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const down = (ctx: any, value: any): any =>\n ctx.p0.parsed.y > ctx.p1.parsed.y ? value : undefined;\n\n const fillGaps = (data: { date: string; value: number | null }[]) => {\n const filledData: { date: string; value: number | null }[] = [...data];\n\n if (data.length > 1) {\n const lastTime = new Date(data[data.length - 1].date).getTime();\n const secondLastTime = new Date(data[data.length - 2].date).getTime();\n const finalTimeDifference = (lastTime - secondLastTime) / (1000 * 60);\n\n // 最後のデータポイントが大きなギャップを持つ場合にNaNを挿入\n if (finalTimeDifference > dataIntervalMin) {\n filledData.splice(filledData.length - 1, 0, {\n date: new Date(secondLastTime + 1).toISOString(),\n value: NaN,\n });\n }\n }\n return filledData;\n };\n\n // データセットの整形\n const formattedDatasets = datasets.map((dataset) => {\n const dataWithGaps = dataset.skipEmptyData\n ? fillGaps(dataset.data)\n : dataset.data;\n return {\n label: dataset.label,\n data: dataWithGaps.map((item) => {\n const date = new Date(item.date);\n return { x: date, y: item.value };\n }),\n borderColor: dataset.borderColor,\n backgroundColor: dataset.backgroundColor || dataset.borderColor,\n tension: 0.4,\n borderWidth: dataset.borderWidth || undefined,\n fill: dataset.fill || false,\n stack: dataset.stack || undefined,\n pointRadius: 0,\n spanGaps: dataset.skipEmptyData ? true : false,\n segment: dataset.skipEmptyData\n ? {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n borderColor: (ctx: any) =>\n skipped(ctx, \"rgba(0,0,0,0.2)\") || down(ctx, dataset.borderColor),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n borderDash: (ctx: any) => skipped(ctx, [6, 6]),\n }\n : undefined,\n };\n });\n\n const chartJsData = {\n datasets: formattedDatasets,\n };\n\n const ChartData = () => {\n if (isLoading) {\n return <div className={styles.nodata}>loading...</div>;\n } else if (\n datasets.length === 0 ||\n (datasets.length === 1 && datasets[0].label === \"\")\n ) {\n return <div className={styles.nodata}>NO DATA</div>;\n } else {\n return (\n <LineChartJS ref={chartRef} options={options} data={chartJsData} />\n );\n }\n };\n\n return (\n <div className={styles.reportChart}>\n <CardWithTitle title={title} spacingFromTitle={0}>\n <Box className={styles.reportBox}>\n <div className={styles.chart}>\n <ChartData />\n </div>\n </Box>\n </CardWithTitle>\n </div>\n );\n};\n\nexport default ReportChartMulti;"],"names":["ChartJS","CategoryScale","LinearScale","PointElement","LineElement","Filler","LineController","Title","ChartJSTooltip","Legend","TimeScale","chartColors","ReportChartMulti","props","datasets","xLabel","yLabel","xType","dataIntervalMin","chartMargin","tooltipFormatter","value","label","isLoading","title","precision","chartRef","useRef","isStacked","dataset","startDate","format","startOfDay","endDate","endOfDay","rangeOfDate","dayScaleOptions","otherScaleOptions","options","context","skipped","ctx","down","fillGaps","data","filledData","lastTime","secondLastTime","chartJsData","dataWithGaps","item","ChartData","jsx","styles","LineChartJS","CardWithTitle","Box"],"mappings":";;;;;;;;;;;;;;AA2DAA,EAAQ;AAAA,EACNC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAAA,EACAC;AAAA,EACAC;AAAA;AACF;AAGO,MAAMC,KAAc;AAAA,EACzB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA;AAAA,EAEN,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,iBAAiB;AACnB,GAEaC,KAAmB,CAACC,MAAiB;AAC1C,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,QAAAC,IAAS;AAAA,IACT,QAAAC,IAAS;AAAA,IACT,OAAAC,IAAQ;AAAA,IACR,iBAAAC,IAAkB;AAAA,IAClB,aAAAC,IAAc,EAAE,KAAK,GAAG,OAAO,IAAI,QAAQ,IAAI,MAAM,GAAG;AAAA,IACxD,kBAAAC,IAAmB,CAACC,GAAgBC,MAAkB;AAAA,MACpD,OAAOD,CAAK;AAAA,MACZ,OAAOC,CAAK;AAAA,IACd;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA;AAAA,IACA,WAAAC;AAAA,EAAA,IACEZ,GAEEa,IAAWC,EAAO,IAAI,GAGtBC,IAAYd,EAAS,KAAK,CAACe,MAAYA,EAAQ,UAAU,MAAS;AAIxE,MAAIZ,MAAU,OAAO;AACnB,UAAMa,IAAYC;AAAA,MAChBC,EAAe,oBAAA,MAAM;AAAA,MACrB;AAAA,IACF,GACMC,IAAUF;AAAA,MACdG,EAAa,oBAAA,MAAM;AAAA,MACnB;AAAA,IACF,GAEMC,IAAc;AAAA,MAClB,EAAE,MAAML,GAAW,OAAO,EAAE;AAAA,MAC5B,EAAE,MAAMG,GAAS,OAAO,EAAE;AAAA,IAC5B;AAEA,IAAAnB,EAAS,QAAQ;AAAA,MACf,OAAO;AAAA,MACP,MAAMqB;AAAA,MACN,aAAa;AAAA;AAAA,IAAA,CACd;AAAA,EAAA;AAGH,QAAMC,IAAkB;AAAA,IACtB,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,gBAAgB;AAAA,QACd,QAAQ;AAAA,MACV;AAAA,MACA,eAAe;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAMrB;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,eAAe;AAAA,MACf,UAAU,SAAUM,GAAgC;AAIlD,eAAO,IAFL,OAAOA,KAAU,WAAW,IAAI,KAAKA,CAAK,IAAI,IAAI,KAAKA,CAAK,GACtC,SAAS,CAClB;AAAA,MAAA;AAAA,IACjB;AAAA,EAEJ,GAEMgB,IAAoB;AAAA,IACxB,OAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAMtB;AAAA,IAAA;AAAA,EAEV,GAEMuB,IAAgC;AAAA,IACpC,aAAa;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,qBAAqB;AAAA,IACrB,WAAW;AAAA,IACX,aAAa;AAAA,MACX,QAAQ;AAAA,QACN,YAAY;AAAA,UACV,GAAG;AAAA,YACD,MAAM;AAAA,UACR;AAAA,UACA,GAAG;AAAA,YACD,MAAM;AAAA,UAAA;AAAA,QACR;AAAA,MAEJ;AAAA,MACA,MAAM;AAAA,QACJ,YAAY;AAAA,UACV,GAAG;AAAA,YACD,MAAM;AAAA,UACR;AAAA,UACA,GAAG;AAAA,YACD,MAAM;AAAA,UAAA;AAAA,QACR;AAAA,MACF;AAAA,IAEJ;AAAA,IACA,QAAQ;AAAA,MACN,SAAS;AAAA,QACP,MAAMnB,EAAY;AAAA,QAClB,OAAOA,EAAY;AAAA,QACnB,KAAKA,EAAY;AAAA,QACjB,QAAQA,EAAY;AAAA,MAAA;AAAA,IAExB;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,MACA,SAAS;AAAA,QACP,WAAW;AAAA,UACT,OAAO,CAACoB,MAAiC;AAEnC,gBAAAA,EAAQ,QAAQ,UAAU;AACrB,qBAAA;AAEH,kBAAAjB,IAAQiB,EAAQ,QAAQ,QAC1B,GAAGA,EAAQ,QAAQ,KAAK,KACxB;AAGG,mBAFInB,EAAiBmB,EAAQ,OAAO,GAAGjB,CAAK,EACpC,QAAQ,EAAE,KAAK,GAAG;AAAA,UAC1B;AAAA,QACT;AAAA,MACF;AAAA,IAEJ;AAAA,IACA,QAAQ;AAAA,MACN,GAAGL,MAAU,QAAQmB,IAAkBC;AAAA;AAAA,MACvC,GAAG;AAAA,QACD,SAAST;AAAA,QACT,aAAa;AAAA,QACb,OAAO;AAAA,UACL,SAAS;AAAA,UACT,MAAMZ;AAAA,QACR;AAAA,QACA,OAAO;AAAA,UACL,WAAAS;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EAEJ,GAEMe,IAAU,CAACC,GAAUpB,MACzBoB,EAAI,GAAG,QAAQA,EAAI,GAAG,OAAOpB,IAAQ,QAEjCqB,IAAO,CAACD,GAAUpB,MACtBoB,EAAI,GAAG,OAAO,IAAIA,EAAI,GAAG,OAAO,IAAIpB,IAAQ,QAExCsB,IAAW,CAACC,MAAmD;AAC7D,UAAAC,IAAuD,CAAC,GAAGD,CAAI;AAEjE,QAAAA,EAAK,SAAS,GAAG;AACb,YAAAE,IAAW,IAAI,KAAKF,EAAKA,EAAK,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,GACxDG,IAAiB,IAAI,KAAKH,EAAKA,EAAK,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ;AAIpE,OAH6BE,IAAWC,MAAmB,MAAO,MAGxC7B,KACxB2B,EAAW,OAAOA,EAAW,SAAS,GAAG,GAAG;AAAA,QAC1C,MAAM,IAAI,KAAKE,IAAiB,CAAC,EAAE,YAAY;AAAA,QAC/C,OAAO;AAAA,MAAA,CACR;AAAA,IACH;AAEK,WAAAF;AAAA,EACT,GAiCMG,IAAc;AAAA,IAClB,UA/BwBlC,EAAS,IAAI,CAACe,MAAY;AAClD,YAAMoB,IAAepB,EAAQ,gBACzBc,EAASd,EAAQ,IAAI,IACrBA,EAAQ;AACL,aAAA;AAAA,QACL,OAAOA,EAAQ;AAAA,QACf,MAAMoB,EAAa,IAAI,CAACC,OAEf,EAAE,GADI,IAAI,KAAKA,EAAK,IAAI,GACb,GAAGA,EAAK,MAAM,EACjC;AAAA,QACD,aAAarB,EAAQ;AAAA,QACrB,iBAAiBA,EAAQ,mBAAmBA,EAAQ;AAAA,QACpD,SAAS;AAAA,QACT,aAAaA,EAAQ,eAAe;AAAA,QACpC,MAAMA,EAAQ,QAAQ;AAAA,QACtB,OAAOA,EAAQ,SAAS;AAAA,QACxB,aAAa;AAAA,QACb,UAAU,EAAAA,EAAQ;AAAA,QAClB,SAASA,EAAQ,gBACb;AAAA;AAAA,UAEE,aAAa,CAACY,MACZD,EAAQC,GAAK,iBAAiB,KAAKC,EAAKD,GAAKZ,EAAQ,WAAW;AAAA;AAAA,UAElE,YAAY,CAACY,MAAaD,EAAQC,GAAK,CAAC,GAAG,CAAC,CAAC;AAAA,QAAA,IAE/C;AAAA,MACN;AAAA,IAAA,CACD;AAAA,EAID,GAEMU,IAAY,MACZ5B,IACM,gBAAA6B,EAAA,OAAA,EAAI,WAAWC,EAAO,QAAQ,UAAU,cAAA,IAEhDvC,EAAS,WAAW,KACnBA,EAAS,WAAW,KAAKA,EAAS,CAAC,EAAE,UAAU,KAExC,gBAAAsC,EAAA,OAAA,EAAI,WAAWC,EAAO,QAAQ,UAAO,WAAA,sBAG1CC,GAAY,EAAA,KAAK5B,GAAU,SAAAY,GAAkB,MAAMU,GAAa;AAMrE,SAAA,gBAAAI,EAAC,OAAI,EAAA,WAAWC,EAAO,aACrB,4BAACE,GAAc,EAAA,OAAA/B,GAAc,kBAAkB,GAC7C,UAAC,gBAAA4B,EAAAI,GAAA,EAAI,WAAWH,EAAO,WACrB,UAAC,gBAAAD,EAAA,OAAA,EAAI,WAAWC,EAAO,OACrB,UAAA,gBAAAD,EAACD,GAAU,CAAA,CAAA,EACb,CAAA,EACF,CAAA,EACF,CAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/ReportChartMulti/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n CategoryScale,\n Chart as ChartJS,\n Tooltip as ChartJSTooltip,\n ChartOptions,\n Filler,\n Legend,\n LinearScale,\n LineController,\n LineElement,\n PointElement,\n TimeScale,\n Title,\n TooltipItem,\n} from \"chart.js\";\n\nimport \"chartjs-adapter-date-fns\";\n\nimport { endOfDay, format, startOfDay } from \"date-fns\";\nimport { Line as LineChartJS } from \"react-chartjs-2\";\n\nimport { CardWithTitle } from \"../CardWithTitle\";\nimport styles from \"./index.module.scss\";\n\nexport type datasetType = {\n label: string;\n data: { date: string; value: number }[];\n borderColor: string;\n backgroundColor?: string;\n borderWidth?: number;\n fill?: boolean | number | string;\n stack?: string;\n skipEmptyData?: boolean;\n};\n\ntype Props = {\n datasets: datasetType[];\n xLabel: string;\n yLabel: string;\n dataIntervalMin?: number;\n xType: \"day\" | \"week\" | \"month\" | \"year\";\n chartMargin?: ChartMargin;\n tooltipFormatter?: CustomToolTipFormatter;\n isLoading?: boolean;\n title: string; // Add title prop\n precision?: number; // Y軸の小数点以下の桁数を指定\n};\n\ntype ChartMargin = {\n top: number;\n right: number;\n bottom: number;\n left: number;\n};\n\ntype CustomToolTipFormatter = (value: unknown, label: string) => string[];\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Filler,\n LineController,\n Title,\n ChartJSTooltip,\n Legend,\n TimeScale, // TimeScaleを登録\n);\n\n// グラフで利用する標準色を定義\nexport const chartColors = {\n red: \"rgb(255, 99, 132)\",\n orange: \"rgb(255, 184, 76)\",\n yellow: \"rgb(255, 205, 86)\",\n green: \"rgb(102, 187, 106)\",\n blue: \"rgb(41, 182, 246)\",\n purple: \"rgb(153, 102, 255)\",\n grey: \"rgb(201, 203, 207)\",\n // 透過色(塗りつぶしに利用)\n redTransparent: \"rgba(255, 99, 132, 0.5)\",\n orangeTransparent: \"rgba(255, 184, 76, 0.5)\",\n yellowTransparent: \"rgba(255, 205, 86, 0.5)\",\n greenTransparent: \"rgba(102, 187, 106, 0.5)\",\n blueTransparent: \"rgba(41, 182, 246, 0.5)\",\n purpleTransparent: \"rgba(153, 102, 255, 0.5)\",\n greyTransparent: \"rgba(201, 203, 207, 0.5)\",\n};\n\nexport const ReportChartMulti = (props: Props) => {\n const {\n datasets,\n xLabel = \"\",\n yLabel = \"\",\n xType = \"day\",\n dataIntervalMin = 5,\n chartMargin = { top: 0, right: 20, bottom: 20, left: 10 },\n tooltipFormatter = (value: unknown, label: string) => [\n String(value),\n String(label),\n ],\n isLoading,\n title, // Destructure title from props\n precision,\n } = props;\n\n const chartRef = useRef(null);\n\n // stackにグループを追加している場合は、積み上げグラフとなる\n const isStacked = datasets.some((dataset) => dataset.stack !== undefined);\n\n // 時間の範囲を描画する基準として利用するダミーデータをdatasetsに追加\n // TODO:現状はxTypeがdayの場合のみ対応している\n if (xType === \"day\") {\n const startDate = format(\n startOfDay(new Date()),\n \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\",\n );\n const endDate = format(\n endOfDay(new Date()),\n \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\",\n );\n\n const rangeOfDate = [\n { date: startDate, value: 0 },\n { date: endDate, value: 0 },\n ];\n\n datasets.unshift({\n label: \"\",\n data: rangeOfDate,\n borderColor: \"rgba(0, 0, 0, 0)\", // 透明色\n });\n }\n\n const dayScaleOptions = {\n type: \"time\",\n time: {\n unit: \"minute\",\n displayFormats: {\n minute: \"HH:mm\",\n },\n tooltipFormat: \"HH:mm\",\n },\n title: {\n display: true,\n text: xLabel,\n },\n ticks: {\n source: \"auto\",\n autoSkip: true,\n maxTicksLimit: 24,\n callback: function (value: string | number): string {\n const dateValue =\n typeof value === \"string\" ? new Date(value) : new Date(value);\n const hours = dateValue.getHours();\n return `${hours}時`;\n },\n },\n };\n\n const otherScaleOptions = {\n title: {\n display: true,\n text: xLabel,\n },\n };\n\n const options: ChartOptions<\"line\"> = {\n interaction: {\n intersect: false,\n },\n responsive: true,\n aspectRatio: 2,\n maintainAspectRatio: false,\n animation: false,\n transitions: {\n resize: {\n animations: {\n x: {\n from: 0,\n },\n y: {\n from: 0,\n },\n },\n },\n show: {\n animations: {\n x: {\n from: 0,\n },\n y: {\n from: 0,\n },\n },\n },\n },\n layout: {\n padding: {\n left: chartMargin.left,\n right: chartMargin.right,\n top: chartMargin.top,\n bottom: chartMargin.bottom,\n },\n },\n plugins: {\n legend: {\n display: true,\n position: \"top\" as const,\n },\n title: {\n display: false,\n },\n tooltip: {\n callbacks: {\n label: (context: TooltipItem<\"line\">) => {\n // 時間基準データはツールチップに表示させない\n if (context.dataset.label === \"\") {\n return \"\";\n }\n const label = context.dataset.label\n ? `${context.dataset.label}`\n : \"\";\n const ar = tooltipFormatter(context.parsed.y, label);\n const str = ar.reverse().join(\":\");\n return str;\n },\n },\n },\n },\n scales: {\n x: xType === \"day\" ? dayScaleOptions : otherScaleOptions, // 実際使うTypeが増えたらここを改修\n y: {\n stacked: isStacked,\n beginAtZero: true,\n title: {\n display: true,\n text: yLabel,\n },\n ticks: {\n precision: precision,\n },\n },\n },\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const skipped = (ctx: any, value: any): any =>\n ctx.p0.skip || ctx.p1.skip ? value : undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const down = (ctx: any, value: any): any =>\n ctx.p0.parsed.y > ctx.p1.parsed.y ? value : undefined;\n\n const fillGaps = (data: { date: string; value: number | null }[]) => {\n const filledData: { date: string; value: number | null }[] = [...data];\n\n if (data.length > 1) {\n const lastTime = new Date(data[data.length - 1].date).getTime();\n const secondLastTime = new Date(data[data.length - 2].date).getTime();\n const finalTimeDifference = (lastTime - secondLastTime) / (1000 * 60);\n\n // 最後のデータポイントが大きなギャップを持つ場合にNaNを挿入\n if (finalTimeDifference > dataIntervalMin) {\n filledData.splice(filledData.length - 1, 0, {\n date: new Date(secondLastTime + 1).toISOString(),\n value: NaN,\n });\n }\n }\n return filledData;\n };\n\n // データセットの整形\n const formattedDatasets = datasets.map((dataset) => {\n const dataWithGaps = dataset.skipEmptyData\n ? fillGaps(dataset.data)\n : dataset.data;\n return {\n label: dataset.label,\n data: dataWithGaps.map((item) => {\n const date = new Date(item.date);\n return { x: date, y: item.value };\n }),\n borderColor: dataset.borderColor,\n backgroundColor: dataset.backgroundColor || dataset.borderColor,\n tension: 0.4,\n borderWidth: dataset.borderWidth || undefined,\n fill: dataset.fill || false,\n stack: dataset.stack || undefined,\n pointRadius: 0,\n spanGaps: dataset.skipEmptyData ? true : false,\n segment: dataset.skipEmptyData\n ? {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n borderColor: (ctx: any) =>\n skipped(ctx, \"rgba(0,0,0,0.2)\") || down(ctx, dataset.borderColor),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n borderDash: (ctx: any) => skipped(ctx, [6, 6]),\n }\n : undefined,\n };\n });\n\n const chartJsData = {\n datasets: formattedDatasets,\n };\n\n const ChartData = () => {\n if (isLoading) {\n return <div className={styles.nodata}>loading...</div>;\n } else if (\n datasets.length === 0 ||\n (datasets.length === 1 && datasets[0].label === \"\")\n ) {\n return <div className={styles.nodata}>NO DATA</div>;\n } else {\n return (\n <LineChartJS ref={chartRef} options={options} data={chartJsData} />\n );\n }\n };\n\n return (\n <div className={styles.reportChart}>\n <CardWithTitle title={title} spacingFromTitle={0}>\n <Box className={styles.reportBox}>\n <div className={styles.chart}>\n <ChartData />\n </div>\n </Box>\n </CardWithTitle>\n </div>\n );\n};\n\nexport default ReportChartMulti;\n"],"names":["ChartJS","CategoryScale","LinearScale","PointElement","LineElement","Filler","LineController","Title","ChartJSTooltip","Legend","TimeScale","chartColors","ReportChartMulti","props","datasets","xLabel","yLabel","xType","dataIntervalMin","chartMargin","tooltipFormatter","value","label","isLoading","title","precision","chartRef","useRef","isStacked","dataset","startDate","format","startOfDay","endDate","endOfDay","rangeOfDate","dayScaleOptions","otherScaleOptions","options","context","skipped","ctx","down","fillGaps","data","filledData","lastTime","secondLastTime","chartJsData","dataWithGaps","item","ChartData","jsx","styles","LineChartJS","CardWithTitle","Box"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs"),a=require("./index.cjs.js");require("chartjs-adapter-date-fns");jest.mock("react-chartjs-2",()=>({Line:()=>t.jsx("canvas",{"data-testid":"chartjs-line"})}));const i=[{label:"Dataset 1",data:[{date:"2024-07-10T00:00:00+09:00",value:70},{date:"2024-07-10T00:05:00+09:00",value:75},{date:"2024-07-10T00:10:00+09:00",value:80}],borderColor:"red",skipEmptyData:!0},{label:"Dataset 2",data:[{date:"2024-07-10T01:00:00+09:00",value:60},{date:"2024-07-10T01:05:00+09:00",value:65},{date:"2024-07-10T01:10:00+09:00",value:70}],borderColor:"blue",skipEmptyData:!1}],r={datasets:i,title:"Test Chart",xLabel:"Time",yLabel:"Value",xType:"day",dataIntervalMin:5,chartMargin:{top:0,right:20,bottom:20,left:10},isLoading:!1,precision:void 0};describe("ReportChartMulti",()=>{it("renders the chart with the given title",()=>{e.render(t.jsx(a.ReportChartMulti,{...r})),expect(e.screen.getByText("Test Chart")).toBeInTheDocument()}),it("renders the chart with NO DATA when datasets are empty",()=>{e.render(t.jsx(a.ReportChartMulti,{...r,datasets:[]})),expect(e.screen.getByText("NO DATA")).toBeInTheDocument()}),it("renders the chart with loading message when isLoading is true",()=>{e.render(t.jsx(a.ReportChartMulti,{...r,isLoading:!0})),expect(e.screen.getByText("loading...")).toBeInTheDocument()}),it("renders the chart with the correct datasets",()=>{e.render(t.jsx(a.ReportChartMulti,{...r}));const s=e.screen.getByTestId("chartjs-line");expect(s).toBeInTheDocument()})});
1
+ "use strict";const t=require("react/jsx-runtime"),e=require("../../react.esm-BcRJ42eI.cjs"),a=require("./index.cjs.js");require("chartjs-adapter-date-fns");jest.mock("react-chartjs-2",()=>({Line:()=>t.jsx("canvas",{"data-testid":"chartjs-line"})}));const i=[{label:"Dataset 1",data:[{date:"2024-07-10T00:00:00+09:00",value:70},{date:"2024-07-10T00:05:00+09:00",value:75},{date:"2024-07-10T00:10:00+09:00",value:80}],borderColor:"red",skipEmptyData:!0},{label:"Dataset 2",data:[{date:"2024-07-10T01:00:00+09:00",value:60},{date:"2024-07-10T01:05:00+09:00",value:65},{date:"2024-07-10T01:10:00+09:00",value:70}],borderColor:"blue",skipEmptyData:!1}],r={datasets:i,title:"Test Chart",xLabel:"Time",yLabel:"Value",xType:"day",dataIntervalMin:5,chartMargin:{top:0,right:20,bottom:20,left:10},isLoading:!1,precision:void 0};describe("ReportChartMulti",()=>{it("renders the chart with the given title",()=>{e.render(t.jsx(a.ReportChartMulti,{...r})),expect(e.screen.getByText("Test Chart")).toBeInTheDocument()}),it("renders the chart with NO DATA when datasets are empty",()=>{e.render(t.jsx(a.ReportChartMulti,{...r,datasets:[]})),expect(e.screen.getByText("NO DATA")).toBeInTheDocument()}),it("renders the chart with loading message when isLoading is true",()=>{e.render(t.jsx(a.ReportChartMulti,{...r,isLoading:!0})),expect(e.screen.getByText("loading...")).toBeInTheDocument()}),it("renders the chart with the correct datasets",()=>{e.render(t.jsx(a.ReportChartMulti,{...r}));const s=e.screen.getByTestId("chartjs-line");expect(s).toBeInTheDocument()})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/ReportChartMulti/index.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { render, screen } from \"@testing-library/react\";\n\nimport { ReportChartMulti } from \".\";\n\nimport \"chartjs-adapter-date-fns\";\n\njest.mock(\"react-chartjs-2\", () => ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Line: () => <canvas data-testid=\"chartjs-line\" />,\n}));\n\nconst mockDatasets = [\n {\n label: \"Dataset 1\",\n data: [\n { date: \"2024-07-10T00:00:00+09:00\", value: 70 },\n { date: \"2024-07-10T00:05:00+09:00\", value: 75 },\n { date: \"2024-07-10T00:10:00+09:00\", value: 80 },\n ],\n borderColor: \"red\",\n skipEmptyData: true,\n },\n {\n label: \"Dataset 2\",\n data: [\n { date: \"2024-07-10T01:00:00+09:00\", value: 60 },\n { date: \"2024-07-10T01:05:00+09:00\", value: 65 },\n { date: \"2024-07-10T01:10:00+09:00\", value: 70 },\n ],\n borderColor: \"blue\",\n skipEmptyData: false,\n },\n];\n\nconst defaultProps = {\n datasets: mockDatasets,\n title: \"Test Chart\",\n xLabel: \"Time\",\n yLabel: \"Value\",\n xType: \"day\" as const,\n dataIntervalMin: 5,\n chartMargin: { top: 0, right: 20, bottom: 20, left: 10 },\n isLoading: false,\n precision: undefined,\n};\n\ndescribe(\"ReportChartMulti\", () => {\n it(\"renders the chart with the given title\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n expect(screen.getByText(\"Test Chart\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with NO DATA when datasets are empty\", () => {\n render(<ReportChartMulti {...defaultProps} datasets={[]} />);\n expect(screen.getByText(\"NO DATA\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with loading message when isLoading is true\", () => {\n render(<ReportChartMulti {...defaultProps} isLoading={true} />);\n expect(screen.getByText(\"loading...\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with the correct datasets\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n const chart = screen.getByTestId(\"chartjs-line\");\n expect(chart).toBeInTheDocument();\n });\n});\n"],"names":["jsx","mockDatasets","defaultProps","render","ReportChartMulti","screen","chart"],"mappings":"4JAOA,KAAK,KAAK,kBAAmB,KAAO,CAElC,KAAM,IAAOA,EAAA,IAAA,SAAA,CAAO,cAAY,cAAe,CAAA,CACjD,EAAE,EAEF,MAAMC,EAAe,CACnB,CACE,MAAO,YACP,KAAM,CACJ,CAAE,KAAM,4BAA6B,MAAO,EAAG,EAC/C,CAAE,KAAM,4BAA6B,MAAO,EAAG,EAC/C,CAAE,KAAM,4BAA6B,MAAO,EAAG,CACjD,EACA,YAAa,MACb,cAAe,EACjB,EACA,CACE,MAAO,YACP,KAAM,CACJ,CAAE,KAAM,4BAA6B,MAAO,EAAG,EAC/C,CAAE,KAAM,4BAA6B,MAAO,EAAG,EAC/C,CAAE,KAAM,4BAA6B,MAAO,EAAG,CACjD,EACA,YAAa,OACb,cAAe,EAAA,CAEnB,EAEMC,EAAe,CACnB,SAAUD,EACV,MAAO,aACP,OAAQ,OACR,OAAQ,QACR,MAAO,MACP,gBAAiB,EACjB,YAAa,CAAE,IAAK,EAAG,MAAO,GAAI,OAAQ,GAAI,KAAM,EAAG,EACvD,UAAW,GACX,UAAW,MACb,EAEA,SAAS,mBAAoB,IAAM,CACjC,GAAG,yCAA0C,IAAM,CACjDE,EAAAA,OAAQH,EAAAA,IAAAI,EAAAA,iBAAA,CAAkB,GAAGF,CAAc,CAAA,CAAE,EAC7C,OAAOG,EAAAA,OAAO,UAAU,YAAY,CAAC,EAAE,kBAAkB,CAAA,CAC1D,EAED,GAAG,yDAA0D,IAAM,CACjEF,EAAA,aAAQC,mBAAkB,CAAA,GAAGF,EAAc,SAAU,GAAI,CAAE,EAC3D,OAAOG,EAAAA,OAAO,UAAU,SAAS,CAAC,EAAE,kBAAkB,CAAA,CACvD,EAED,GAAG,gEAAiE,IAAM,CACxEF,EAAA,aAAQC,mBAAkB,CAAA,GAAGF,EAAc,UAAW,GAAM,CAAE,EAC9D,OAAOG,EAAAA,OAAO,UAAU,YAAY,CAAC,EAAE,kBAAkB,CAAA,CAC1D,EAED,GAAG,8CAA+C,IAAM,CACtDF,EAAAA,OAAQH,EAAAA,IAAAI,EAAAA,iBAAA,CAAkB,GAAGF,CAAc,CAAA,CAAE,EACvC,MAAAI,EAAQD,EAAAA,OAAO,YAAY,cAAc,EACxC,OAAAC,CAAK,EAAE,kBAAkB,CAAA,CACjC,CACH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/ReportChartMulti/index.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { render, screen } from \"@testing-library/react\";\n\nimport { ReportChartMulti } from \".\";\n\nimport \"chartjs-adapter-date-fns\";\n\njest.mock(\"react-chartjs-2\", () => ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Line: () => <canvas data-testid=\"chartjs-line\" />,\n}));\n\nconst mockDatasets = [\n {\n label: \"Dataset 1\",\n data: [\n { date: \"2024-07-10T00:00:00+09:00\", value: 70 },\n { date: \"2024-07-10T00:05:00+09:00\", value: 75 },\n { date: \"2024-07-10T00:10:00+09:00\", value: 80 },\n ],\n borderColor: \"red\",\n skipEmptyData: true,\n },\n {\n label: \"Dataset 2\",\n data: [\n { date: \"2024-07-10T01:00:00+09:00\", value: 60 },\n { date: \"2024-07-10T01:05:00+09:00\", value: 65 },\n { date: \"2024-07-10T01:10:00+09:00\", value: 70 },\n ],\n borderColor: \"blue\",\n skipEmptyData: false,\n },\n];\n\nconst defaultProps = {\n datasets: mockDatasets,\n title: \"Test Chart\",\n xLabel: \"Time\",\n yLabel: \"Value\",\n xType: \"day\" as const,\n dataIntervalMin: 5,\n chartMargin: { top: 0, right: 20, bottom: 20, left: 10 },\n isLoading: false,\n precision: undefined,\n};\n\ndescribe(\"ReportChartMulti\", () => {\n it(\"renders the chart with the given title\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n expect(screen.getByText(\"Test Chart\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with NO DATA when datasets are empty\", () => {\n render(<ReportChartMulti {...defaultProps} datasets={[]} />);\n expect(screen.getByText(\"NO DATA\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with loading message when isLoading is true\", () => {\n render(<ReportChartMulti {...defaultProps} isLoading={true} />);\n expect(screen.getByText(\"loading...\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with the correct datasets\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n const chart = screen.getByTestId(\"chartjs-line\");\n expect(chart).toBeInTheDocument();\n });\n});\n"],"names":["jsx","mockDatasets","defaultProps","render","ReportChartMulti","screen","chart"],"mappings":"4JAOA,KAAK,KAAK,kBAAmB,KAAO,CAElC,KAAM,IAAMA,EAAAA,IAAC,SAAA,CAAO,cAAY,cAAA,CAAe,CACjD,EAAE,EAEF,MAAMC,EAAe,CACnB,CACE,MAAO,YACP,KAAM,CACJ,CAAE,KAAM,4BAA6B,MAAO,EAAA,EAC5C,CAAE,KAAM,4BAA6B,MAAO,EAAA,EAC5C,CAAE,KAAM,4BAA6B,MAAO,EAAA,CAAG,EAEjD,YAAa,MACb,cAAe,EAAA,EAEjB,CACE,MAAO,YACP,KAAM,CACJ,CAAE,KAAM,4BAA6B,MAAO,EAAA,EAC5C,CAAE,KAAM,4BAA6B,MAAO,EAAA,EAC5C,CAAE,KAAM,4BAA6B,MAAO,EAAA,CAAG,EAEjD,YAAa,OACb,cAAe,EAAA,CAEnB,EAEMC,EAAe,CACnB,SAAUD,EACV,MAAO,aACP,OAAQ,OACR,OAAQ,QACR,MAAO,MACP,gBAAiB,EACjB,YAAa,CAAE,IAAK,EAAG,MAAO,GAAI,OAAQ,GAAI,KAAM,EAAA,EACpD,UAAW,GACX,UAAW,MACb,EAEA,SAAS,mBAAoB,IAAM,CACjC,GAAG,yCAA0C,IAAM,CACjDE,EAAAA,OAAOH,EAAAA,IAACI,EAAAA,iBAAA,CAAkB,GAAGF,CAAA,CAAc,CAAE,EAC7C,OAAOG,EAAAA,OAAO,UAAU,YAAY,CAAC,EAAE,kBAAA,CACzC,CAAC,EAED,GAAG,yDAA0D,IAAM,CACjEF,EAAAA,aAAQC,mBAAA,CAAkB,GAAGF,EAAc,SAAU,CAAA,EAAI,CAAE,EAC3D,OAAOG,EAAAA,OAAO,UAAU,SAAS,CAAC,EAAE,kBAAA,CACtC,CAAC,EAED,GAAG,gEAAiE,IAAM,CACxEF,EAAAA,aAAQC,mBAAA,CAAkB,GAAGF,EAAc,UAAW,GAAM,CAAE,EAC9D,OAAOG,EAAAA,OAAO,UAAU,YAAY,CAAC,EAAE,kBAAA,CACzC,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtDF,EAAAA,OAAOH,EAAAA,IAACI,EAAAA,iBAAA,CAAkB,GAAGF,CAAA,CAAc,CAAE,EAC7C,MAAMI,EAAQD,EAAAA,OAAO,YAAY,cAAc,EAC/C,OAAOC,CAAK,EAAE,kBAAA,CAChB,CAAC,CACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { r as e, s as a } from "../../react.esm-2FJSSo-S.js";
2
+ import { r as e, s as a } from "../../react.esm-DVhZgPrH.js";
3
3
  import { ReportChartMulti as r } from "./index.es.js";
4
4
  import "chartjs-adapter-date-fns";
5
5
  jest.mock("react-chartjs-2", () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/ReportChartMulti/index.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { render, screen } from \"@testing-library/react\";\n\nimport { ReportChartMulti } from \".\";\n\nimport \"chartjs-adapter-date-fns\";\n\njest.mock(\"react-chartjs-2\", () => ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Line: () => <canvas data-testid=\"chartjs-line\" />,\n}));\n\nconst mockDatasets = [\n {\n label: \"Dataset 1\",\n data: [\n { date: \"2024-07-10T00:00:00+09:00\", value: 70 },\n { date: \"2024-07-10T00:05:00+09:00\", value: 75 },\n { date: \"2024-07-10T00:10:00+09:00\", value: 80 },\n ],\n borderColor: \"red\",\n skipEmptyData: true,\n },\n {\n label: \"Dataset 2\",\n data: [\n { date: \"2024-07-10T01:00:00+09:00\", value: 60 },\n { date: \"2024-07-10T01:05:00+09:00\", value: 65 },\n { date: \"2024-07-10T01:10:00+09:00\", value: 70 },\n ],\n borderColor: \"blue\",\n skipEmptyData: false,\n },\n];\n\nconst defaultProps = {\n datasets: mockDatasets,\n title: \"Test Chart\",\n xLabel: \"Time\",\n yLabel: \"Value\",\n xType: \"day\" as const,\n dataIntervalMin: 5,\n chartMargin: { top: 0, right: 20, bottom: 20, left: 10 },\n isLoading: false,\n precision: undefined,\n};\n\ndescribe(\"ReportChartMulti\", () => {\n it(\"renders the chart with the given title\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n expect(screen.getByText(\"Test Chart\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with NO DATA when datasets are empty\", () => {\n render(<ReportChartMulti {...defaultProps} datasets={[]} />);\n expect(screen.getByText(\"NO DATA\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with loading message when isLoading is true\", () => {\n render(<ReportChartMulti {...defaultProps} isLoading={true} />);\n expect(screen.getByText(\"loading...\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with the correct datasets\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n const chart = screen.getByTestId(\"chartjs-line\");\n expect(chart).toBeInTheDocument();\n });\n});\n"],"names":["jsx","mockDatasets","defaultProps","render","ReportChartMulti","screen","chart"],"mappings":";;;;AAOA,KAAK,KAAK,mBAAmB,OAAO;AAAA;AAAA,EAElC,MAAM,MAAO,gBAAAA,EAAA,UAAA,EAAO,eAAY,eAAe,CAAA;AACjD,EAAE;AAEF,MAAMC,IAAe;AAAA,EACnB;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,EAAE,MAAM,6BAA6B,OAAO,GAAG;AAAA,MAC/C,EAAE,MAAM,6BAA6B,OAAO,GAAG;AAAA,MAC/C,EAAE,MAAM,6BAA6B,OAAO,GAAG;AAAA,IACjD;AAAA,IACA,aAAa;AAAA,IACb,eAAe;AAAA,EACjB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,EAAE,MAAM,6BAA6B,OAAO,GAAG;AAAA,MAC/C,EAAE,MAAM,6BAA6B,OAAO,GAAG;AAAA,MAC/C,EAAE,MAAM,6BAA6B,OAAO,GAAG;AAAA,IACjD;AAAA,IACA,aAAa;AAAA,IACb,eAAe;AAAA,EAAA;AAEnB,GAEMC,IAAe;AAAA,EACnB,UAAUD;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,aAAa,EAAE,KAAK,GAAG,OAAO,IAAI,QAAQ,IAAI,MAAM,GAAG;AAAA,EACvD,WAAW;AAAA,EACX,WAAW;AACb;AAEA,SAAS,oBAAoB,MAAM;AACjC,KAAG,0CAA0C,MAAM;AACjD,IAAAE,EAAQ,gBAAAH,EAAAI,GAAA,EAAkB,GAAGF,EAAc,CAAA,CAAE,GAC7C,OAAOG,EAAO,UAAU,YAAY,CAAC,EAAE,kBAAkB;AAAA,EAAA,CAC1D,GAED,GAAG,0DAA0D,MAAM;AACjE,IAAAF,oBAAQC,GAAkB,EAAA,GAAGF,GAAc,UAAU,IAAI,CAAE,GAC3D,OAAOG,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAkB;AAAA,EAAA,CACvD,GAED,GAAG,iEAAiE,MAAM;AACxE,IAAAF,oBAAQC,GAAkB,EAAA,GAAGF,GAAc,WAAW,IAAM,CAAE,GAC9D,OAAOG,EAAO,UAAU,YAAY,CAAC,EAAE,kBAAkB;AAAA,EAAA,CAC1D,GAED,GAAG,+CAA+C,MAAM;AACtD,IAAAF,EAAQ,gBAAAH,EAAAI,GAAA,EAAkB,GAAGF,EAAc,CAAA,CAAE;AACvC,UAAAI,IAAQD,EAAO,YAAY,cAAc;AACxC,WAAAC,CAAK,EAAE,kBAAkB;AAAA,EAAA,CACjC;AACH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/ReportChartMulti/index.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { render, screen } from \"@testing-library/react\";\n\nimport { ReportChartMulti } from \".\";\n\nimport \"chartjs-adapter-date-fns\";\n\njest.mock(\"react-chartjs-2\", () => ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Line: () => <canvas data-testid=\"chartjs-line\" />,\n}));\n\nconst mockDatasets = [\n {\n label: \"Dataset 1\",\n data: [\n { date: \"2024-07-10T00:00:00+09:00\", value: 70 },\n { date: \"2024-07-10T00:05:00+09:00\", value: 75 },\n { date: \"2024-07-10T00:10:00+09:00\", value: 80 },\n ],\n borderColor: \"red\",\n skipEmptyData: true,\n },\n {\n label: \"Dataset 2\",\n data: [\n { date: \"2024-07-10T01:00:00+09:00\", value: 60 },\n { date: \"2024-07-10T01:05:00+09:00\", value: 65 },\n { date: \"2024-07-10T01:10:00+09:00\", value: 70 },\n ],\n borderColor: \"blue\",\n skipEmptyData: false,\n },\n];\n\nconst defaultProps = {\n datasets: mockDatasets,\n title: \"Test Chart\",\n xLabel: \"Time\",\n yLabel: \"Value\",\n xType: \"day\" as const,\n dataIntervalMin: 5,\n chartMargin: { top: 0, right: 20, bottom: 20, left: 10 },\n isLoading: false,\n precision: undefined,\n};\n\ndescribe(\"ReportChartMulti\", () => {\n it(\"renders the chart with the given title\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n expect(screen.getByText(\"Test Chart\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with NO DATA when datasets are empty\", () => {\n render(<ReportChartMulti {...defaultProps} datasets={[]} />);\n expect(screen.getByText(\"NO DATA\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with loading message when isLoading is true\", () => {\n render(<ReportChartMulti {...defaultProps} isLoading={true} />);\n expect(screen.getByText(\"loading...\")).toBeInTheDocument();\n });\n\n it(\"renders the chart with the correct datasets\", () => {\n render(<ReportChartMulti {...defaultProps} />);\n const chart = screen.getByTestId(\"chartjs-line\");\n expect(chart).toBeInTheDocument();\n });\n});\n"],"names":["jsx","mockDatasets","defaultProps","render","ReportChartMulti","screen","chart"],"mappings":";;;;AAOA,KAAK,KAAK,mBAAmB,OAAO;AAAA;AAAA,EAElC,MAAM,MAAM,gBAAAA,EAAC,UAAA,EAAO,eAAY,eAAA,CAAe;AACjD,EAAE;AAEF,MAAMC,IAAe;AAAA,EACnB;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,EAAE,MAAM,6BAA6B,OAAO,GAAA;AAAA,MAC5C,EAAE,MAAM,6BAA6B,OAAO,GAAA;AAAA,MAC5C,EAAE,MAAM,6BAA6B,OAAO,GAAA;AAAA,IAAG;AAAA,IAEjD,aAAa;AAAA,IACb,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,EAAE,MAAM,6BAA6B,OAAO,GAAA;AAAA,MAC5C,EAAE,MAAM,6BAA6B,OAAO,GAAA;AAAA,MAC5C,EAAE,MAAM,6BAA6B,OAAO,GAAA;AAAA,IAAG;AAAA,IAEjD,aAAa;AAAA,IACb,eAAe;AAAA,EAAA;AAEnB,GAEMC,IAAe;AAAA,EACnB,UAAUD;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,aAAa,EAAE,KAAK,GAAG,OAAO,IAAI,QAAQ,IAAI,MAAM,GAAA;AAAA,EACpD,WAAW;AAAA,EACX,WAAW;AACb;AAEA,SAAS,oBAAoB,MAAM;AACjC,KAAG,0CAA0C,MAAM;AACjD,IAAAE,EAAO,gBAAAH,EAACI,GAAA,EAAkB,GAAGF,EAAA,CAAc,CAAE,GAC7C,OAAOG,EAAO,UAAU,YAAY,CAAC,EAAE,kBAAA;AAAA,EACzC,CAAC,GAED,GAAG,0DAA0D,MAAM;AACjE,IAAAF,oBAAQC,GAAA,EAAkB,GAAGF,GAAc,UAAU,CAAA,GAAI,CAAE,GAC3D,OAAOG,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAA;AAAA,EACtC,CAAC,GAED,GAAG,iEAAiE,MAAM;AACxE,IAAAF,oBAAQC,GAAA,EAAkB,GAAGF,GAAc,WAAW,IAAM,CAAE,GAC9D,OAAOG,EAAO,UAAU,YAAY,CAAC,EAAE,kBAAA;AAAA,EACzC,CAAC,GAED,GAAG,+CAA+C,MAAM;AACtD,IAAAF,EAAO,gBAAAH,EAACI,GAAA,EAAkB,GAAGF,EAAA,CAAc,CAAE;AAC7C,UAAMI,IAAQD,EAAO,YAAY,cAAc;AAC/C,WAAOC,CAAK,EAAE,kBAAA;AAAA,EAChB,CAAC;AACH,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/ScrollableDialog/index.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n DialogProps as MuiDialogProps,\n} from \"@mui/material\";\n\nexport type ConfirmDialogResult = \"confirm\" | \"cancel\";\n\ntype Props = {\n /** ダイアログのタイトル */\n dialogTitle: ReactNode;\n /** ダイアログの内容 */\n dialogContent: ReactNode;\n /** ダイアログの処理ボタン(複数可) */\n dialogActions: ReactNode;\n /** ダイアログの表示状態 */\n open: boolean;\n /** 閉じた時のhandler */\n onCloseDialog: (result: ConfirmDialogResult) => void;\n} & MuiDialogProps;\n\n/** MuiDialogを継承したコンテントのスクロール可能なDialogです。 */\nexport const ScrollableDialog = (props: Props) => {\n const {\n dialogTitle,\n dialogContent,\n dialogActions,\n open,\n onCloseDialog,\n ...dialogProps\n } = props;\n\n return (\n <Dialog\n {...dialogProps}\n open={open}\n onClose={() => onCloseDialog(\"cancel\")}\n scroll={\"paper\"}\n aria-labelledby=\"scroll-dialog-title\"\n aria-describedby=\"scroll-dialog-description\"\n >\n <DialogTitle\n sx={{\n display: \"flex\",\n gap: \"5px\",\n alignItems: \"center\",\n }}\n >\n {dialogTitle}\n </DialogTitle>\n <DialogContent dividers={true}>\n <DialogContentText tabIndex={-1}>{dialogContent}</DialogContentText>\n </DialogContent>\n <DialogActions sx={{ gap: \"10px\" }}>{dialogActions}</DialogActions>\n </Dialog>\n );\n};\n\nexport default ScrollableDialog;\n"],"names":["ScrollableDialog","props","dialogTitle","dialogContent","dialogActions","open","onCloseDialog","dialogProps","jsxs","Dialog","jsx","DialogTitle","DialogContent","DialogContentText","DialogActions"],"mappings":"4KA0BaA,EAAoBC,GAAiB,CAC1C,KAAA,CACJ,YAAAC,EACA,cAAAC,EACA,cAAAC,EACA,KAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EACDN,EAGF,OAAAO,EAAA,KAACC,EAAA,OAAA,CACE,GAAGF,EACJ,KAAAF,EACA,QAAS,IAAMC,EAAc,QAAQ,EACrC,OAAQ,QACR,kBAAgB,sBAChB,mBAAiB,4BAEjB,SAAA,CAAAI,EAAA,IAACC,EAAA,YAAA,CACC,GAAI,CACF,QAAS,OACT,IAAK,MACL,WAAY,QACd,EAEC,SAAAT,CAAA,CACH,EACAQ,EAAAA,IAACE,EAAAA,eAAc,SAAU,GACvB,eAACC,oBAAkB,CAAA,SAAU,GAAK,SAAAV,CAAA,CAAc,CAClD,CAAA,QACCW,EAAAA,cAAc,CAAA,GAAI,CAAE,IAAK,QAAW,SAAcV,CAAA,CAAA,CAAA,CAAA,CACrD,CAEJ"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/ScrollableDialog/index.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n DialogProps as MuiDialogProps,\n} from \"@mui/material\";\n\nexport type ConfirmDialogResult = \"confirm\" | \"cancel\";\n\ntype Props = {\n /** ダイアログのタイトル */\n dialogTitle: ReactNode;\n /** ダイアログの内容 */\n dialogContent: ReactNode;\n /** ダイアログの処理ボタン(複数可) */\n dialogActions: ReactNode;\n /** ダイアログの表示状態 */\n open: boolean;\n /** 閉じた時のhandler */\n onCloseDialog: (result: ConfirmDialogResult) => void;\n} & MuiDialogProps;\n\n/** MuiDialogを継承したコンテントのスクロール可能なDialogです。 */\nexport const ScrollableDialog = (props: Props) => {\n const {\n dialogTitle,\n dialogContent,\n dialogActions,\n open,\n onCloseDialog,\n ...dialogProps\n } = props;\n\n return (\n <Dialog\n {...dialogProps}\n open={open}\n onClose={() => onCloseDialog(\"cancel\")}\n scroll={\"paper\"}\n aria-labelledby=\"scroll-dialog-title\"\n aria-describedby=\"scroll-dialog-description\"\n >\n <DialogTitle\n sx={{\n display: \"flex\",\n gap: \"5px\",\n alignItems: \"center\",\n }}\n >\n {dialogTitle}\n </DialogTitle>\n <DialogContent dividers={true}>\n <DialogContentText tabIndex={-1}>{dialogContent}</DialogContentText>\n </DialogContent>\n <DialogActions sx={{ gap: \"10px\" }}>{dialogActions}</DialogActions>\n </Dialog>\n );\n};\n\nexport default ScrollableDialog;\n"],"names":["ScrollableDialog","props","dialogTitle","dialogContent","dialogActions","open","onCloseDialog","dialogProps","jsxs","Dialog","jsx","DialogTitle","DialogContent","DialogContentText","DialogActions"],"mappings":"4KA0BaA,EAAoBC,GAAiB,CAChD,KAAM,CACJ,YAAAC,EACA,cAAAC,EACA,cAAAC,EACA,KAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EACDN,EAEJ,OACEO,EAAAA,KAACC,EAAAA,OAAA,CACE,GAAGF,EACJ,KAAAF,EACA,QAAS,IAAMC,EAAc,QAAQ,EACrC,OAAQ,QACR,kBAAgB,sBAChB,mBAAiB,4BAEjB,SAAA,CAAAI,EAAAA,IAACC,EAAAA,YAAA,CACC,GAAI,CACF,QAAS,OACT,IAAK,MACL,WAAY,QAAA,EAGb,SAAAT,CAAA,CAAA,EAEHQ,EAAAA,IAACE,EAAAA,eAAc,SAAU,GACvB,eAACC,oBAAA,CAAkB,SAAU,GAAK,SAAAV,CAAA,CAAc,CAAA,CAClD,QACCW,EAAAA,cAAA,CAAc,GAAI,CAAE,IAAK,MAAA,EAAW,SAAAV,CAAA,CAAc,CAAA,CAAA,CAAA,CAGzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/ScrollableDialog/index.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n DialogProps as MuiDialogProps,\n} from \"@mui/material\";\n\nexport type ConfirmDialogResult = \"confirm\" | \"cancel\";\n\ntype Props = {\n /** ダイアログのタイトル */\n dialogTitle: ReactNode;\n /** ダイアログの内容 */\n dialogContent: ReactNode;\n /** ダイアログの処理ボタン(複数可) */\n dialogActions: ReactNode;\n /** ダイアログの表示状態 */\n open: boolean;\n /** 閉じた時のhandler */\n onCloseDialog: (result: ConfirmDialogResult) => void;\n} & MuiDialogProps;\n\n/** MuiDialogを継承したコンテントのスクロール可能なDialogです。 */\nexport const ScrollableDialog = (props: Props) => {\n const {\n dialogTitle,\n dialogContent,\n dialogActions,\n open,\n onCloseDialog,\n ...dialogProps\n } = props;\n\n return (\n <Dialog\n {...dialogProps}\n open={open}\n onClose={() => onCloseDialog(\"cancel\")}\n scroll={\"paper\"}\n aria-labelledby=\"scroll-dialog-title\"\n aria-describedby=\"scroll-dialog-description\"\n >\n <DialogTitle\n sx={{\n display: \"flex\",\n gap: \"5px\",\n alignItems: \"center\",\n }}\n >\n {dialogTitle}\n </DialogTitle>\n <DialogContent dividers={true}>\n <DialogContentText tabIndex={-1}>{dialogContent}</DialogContentText>\n </DialogContent>\n <DialogActions sx={{ gap: \"10px\" }}>{dialogActions}</DialogActions>\n </Dialog>\n );\n};\n\nexport default ScrollableDialog;\n"],"names":["ScrollableDialog","props","dialogTitle","dialogContent","dialogActions","open","onCloseDialog","dialogProps","jsxs","Dialog","jsx","DialogTitle","DialogContent","DialogContentText","DialogActions"],"mappings":";;AA0Ba,MAAAA,IAAmB,CAACC,MAAiB;AAC1C,QAAA;AAAA,IACJ,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,MAAAC;AAAA,IACA,eAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDN;AAGF,SAAA,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,MAAAF;AAAA,MACA,SAAS,MAAMC,EAAc,QAAQ;AAAA,MACrC,QAAQ;AAAA,MACR,mBAAgB;AAAA,MAChB,oBAAiB;AAAA,MAEjB,UAAA;AAAA,QAAA,gBAAAI;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,SAAS;AAAA,cACT,KAAK;AAAA,cACL,YAAY;AAAA,YACd;AAAA,YAEC,UAAAT;AAAA,UAAA;AAAA,QACH;AAAA,QACA,gBAAAQ,EAACE,KAAc,UAAU,IACvB,4BAACC,GAAkB,EAAA,UAAU,IAAK,UAAAV,EAAA,CAAc,EAClD,CAAA;AAAA,0BACCW,GAAc,EAAA,IAAI,EAAE,KAAK,UAAW,UAAcV,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACrD;AAEJ;"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/ScrollableDialog/index.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n DialogProps as MuiDialogProps,\n} from \"@mui/material\";\n\nexport type ConfirmDialogResult = \"confirm\" | \"cancel\";\n\ntype Props = {\n /** ダイアログのタイトル */\n dialogTitle: ReactNode;\n /** ダイアログの内容 */\n dialogContent: ReactNode;\n /** ダイアログの処理ボタン(複数可) */\n dialogActions: ReactNode;\n /** ダイアログの表示状態 */\n open: boolean;\n /** 閉じた時のhandler */\n onCloseDialog: (result: ConfirmDialogResult) => void;\n} & MuiDialogProps;\n\n/** MuiDialogを継承したコンテントのスクロール可能なDialogです。 */\nexport const ScrollableDialog = (props: Props) => {\n const {\n dialogTitle,\n dialogContent,\n dialogActions,\n open,\n onCloseDialog,\n ...dialogProps\n } = props;\n\n return (\n <Dialog\n {...dialogProps}\n open={open}\n onClose={() => onCloseDialog(\"cancel\")}\n scroll={\"paper\"}\n aria-labelledby=\"scroll-dialog-title\"\n aria-describedby=\"scroll-dialog-description\"\n >\n <DialogTitle\n sx={{\n display: \"flex\",\n gap: \"5px\",\n alignItems: \"center\",\n }}\n >\n {dialogTitle}\n </DialogTitle>\n <DialogContent dividers={true}>\n <DialogContentText tabIndex={-1}>{dialogContent}</DialogContentText>\n </DialogContent>\n <DialogActions sx={{ gap: \"10px\" }}>{dialogActions}</DialogActions>\n </Dialog>\n );\n};\n\nexport default ScrollableDialog;\n"],"names":["ScrollableDialog","props","dialogTitle","dialogContent","dialogActions","open","onCloseDialog","dialogProps","jsxs","Dialog","jsx","DialogTitle","DialogContent","DialogContentText","DialogActions"],"mappings":";;AA0BO,MAAMA,IAAmB,CAACC,MAAiB;AAChD,QAAM;AAAA,IACJ,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,MAAAC;AAAA,IACA,eAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDN;AAEJ,SACE,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,MAAAF;AAAA,MACA,SAAS,MAAMC,EAAc,QAAQ;AAAA,MACrC,QAAQ;AAAA,MACR,mBAAgB;AAAA,MAChB,oBAAiB;AAAA,MAEjB,UAAA;AAAA,QAAA,gBAAAI;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,SAAS;AAAA,cACT,KAAK;AAAA,cACL,YAAY;AAAA,YAAA;AAAA,YAGb,UAAAT;AAAA,UAAA;AAAA,QAAA;AAAA,QAEH,gBAAAQ,EAACE,KAAc,UAAU,IACvB,4BAACC,GAAA,EAAkB,UAAU,IAAK,UAAAV,EAAA,CAAc,EAAA,CAClD;AAAA,0BACCW,GAAA,EAAc,IAAI,EAAE,KAAK,OAAA,GAAW,UAAAV,EAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzD;"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("react/jsx-runtime"),s=require("react"),t=require("../../react.esm-CiMn0Rnx.cjs"),c=require("./index.cjs.js");describe("ScrollableDialog",()=>{it("renders correctly",()=>{const o="Test Title",n="Test Content",l=e.jsx("button",{children:"Test Action"}),{getByText:i}=t.render(e.jsx(c.ScrollableDialog,{dialogTitle:o,dialogContent:n,dialogActions:l,open:!0,onCloseDialog:()=>{}}));expect(i(o)).toBeInTheDocument(),expect(i(n)).toBeInTheDocument(),expect(i("Test Action")).toBeInTheDocument()}),it('calls onClose with "cancel" when the dialog is closed',()=>{const o=jest.fn();t.render(e.jsx(c.ScrollableDialog,{open:!0,dialogTitle:"Test Dialog",dialogContent:"This is a test dialog.",dialogActions:e.jsx("button",{onClick:()=>o("cancel"),children:"Cancel"}),onCloseDialog:o}));const n=t.screen.getByRole("button",{name:/cancel/i});t.fireEvent.click(n),expect(o).toHaveBeenCalledWith("cancel")}),it("displays the dialog when the open button is clicked",()=>{const o=()=>{const[n,l]=s.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>l(!0),children:"Open!"}),e.jsx(c.ScrollableDialog,{open:n,dialogTitle:"Test Dialog",dialogContent:"This is a test dialog.",dialogActions:e.jsx("button",{onClick:()=>{},children:"Close"}),onCloseDialog:()=>{}})]})};t.render(e.jsx(o,{})),expect(t.screen.queryByText("This is a test dialog.")).not.toBeInTheDocument(),t.fireEvent.click(t.screen.getByText("Open!")),expect(t.screen.getByText("This is a test dialog.")).toBeInTheDocument()})});
1
+ "use strict";const e=require("react/jsx-runtime"),s=require("react"),t=require("../../react.esm-BcRJ42eI.cjs"),c=require("./index.cjs.js");describe("ScrollableDialog",()=>{it("renders correctly",()=>{const o="Test Title",n="Test Content",l=e.jsx("button",{children:"Test Action"}),{getByText:i}=t.render(e.jsx(c.ScrollableDialog,{dialogTitle:o,dialogContent:n,dialogActions:l,open:!0,onCloseDialog:()=>{}}));expect(i(o)).toBeInTheDocument(),expect(i(n)).toBeInTheDocument(),expect(i("Test Action")).toBeInTheDocument()}),it('calls onClose with "cancel" when the dialog is closed',()=>{const o=jest.fn();t.render(e.jsx(c.ScrollableDialog,{open:!0,dialogTitle:"Test Dialog",dialogContent:"This is a test dialog.",dialogActions:e.jsx("button",{onClick:()=>o("cancel"),children:"Cancel"}),onCloseDialog:o}));const n=t.screen.getByRole("button",{name:/cancel/i});t.fireEvent.click(n),expect(o).toHaveBeenCalledWith("cancel")}),it("displays the dialog when the open button is clicked",()=>{const o=()=>{const[n,l]=s.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>l(!0),children:"Open!"}),e.jsx(c.ScrollableDialog,{open:n,dialogTitle:"Test Dialog",dialogContent:"This is a test dialog.",dialogActions:e.jsx("button",{onClick:()=>{},children:"Close"}),onCloseDialog:()=>{}})]})};t.render(e.jsx(o,{})),expect(t.screen.queryByText("This is a test dialog.")).not.toBeInTheDocument(),t.fireEvent.click(t.screen.getByText("Open!")),expect(t.screen.getByText("This is a test dialog.")).toBeInTheDocument()})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/ScrollableDialog/index.test.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { ScrollableDialog } from \".\";\n\ndescribe(\"ScrollableDialog\", () => {\n it(\"renders correctly\", () => {\n const title = \"Test Title\";\n const content = \"Test Content\";\n const dialogActions = <button>Test Action</button>;\n\n const { getByText } = render(\n <ScrollableDialog\n dialogTitle={title}\n dialogContent={content}\n dialogActions={dialogActions}\n open={true}\n onCloseDialog={() => {}}\n />,\n );\n\n expect(getByText(title)).toBeInTheDocument();\n expect(getByText(content)).toBeInTheDocument();\n expect(getByText(\"Test Action\")).toBeInTheDocument();\n });\n\n it('calls onClose with \"cancel\" when the dialog is closed', () => {\n const handleClose = jest.fn();\n render(\n <ScrollableDialog\n open={true}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={\n <button onClick={() => handleClose(\"cancel\")}>Cancel</button>\n }\n onCloseDialog={handleClose}\n />,\n );\n\n const cancelButton = screen.getByRole(\"button\", { name: /cancel/i });\n fireEvent.click(cancelButton);\n\n expect(handleClose).toHaveBeenCalledWith(\"cancel\");\n });\n\n it(\"displays the dialog when the open button is clicked\", () => {\n const TestComponent = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <button onClick={() => setOpen(true)}>Open!</button>\n <ScrollableDialog\n open={open}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={<button onClick={() => {}}>Close</button>}\n onCloseDialog={() => {}}\n />\n </>\n );\n };\n render(<TestComponent />);\n\n // ダイアログがまだ表示されていないことを確認\n expect(\n screen.queryByText(\"This is a test dialog.\"),\n ).not.toBeInTheDocument();\n\n // Open! ボタンをクリック\n fireEvent.click(screen.getByText(\"Open!\"));\n\n // ダイアログが表示されていることを確認\n expect(screen.getByText(\"This is a test dialog.\")).toBeInTheDocument();\n });\n});\n"],"names":["title","content","dialogActions","jsx","getByText","render","ScrollableDialog","handleClose","cancelButton","screen","fireEvent","TestComponent","open","setOpen","useState","jsxs","Fragment"],"mappings":"2IAKA,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMA,EAAQ,aACRC,EAAU,eACVC,EAAiBC,EAAAA,IAAA,SAAA,CAAO,SAAW,aAAA,CAAA,EAEnC,CAAE,UAAAC,GAAcC,EAAA,OACpBF,EAAA,IAACG,EAAA,iBAAA,CACC,YAAaN,EACb,cAAeC,EACf,cAAAC,EACA,KAAM,GACN,cAAe,IAAM,CAAA,CAAC,CAAA,CAE1B,EAEA,OAAOE,EAAUJ,CAAK,CAAC,EAAE,kBAAkB,EAC3C,OAAOI,EAAUH,CAAO,CAAC,EAAE,kBAAkB,EAC7C,OAAOG,EAAU,aAAa,CAAC,EAAE,kBAAkB,CAAA,CACpD,EAED,GAAG,wDAAyD,IAAM,CAC1D,MAAAG,EAAc,KAAK,GAAG,EAC5BF,EAAA,OACEF,EAAA,IAACG,EAAA,iBAAA,CACC,KAAM,GACN,YAAY,cACZ,cAAc,yBACd,oBACG,SAAO,CAAA,QAAS,IAAMC,EAAY,QAAQ,EAAG,SAAM,SAAA,EAEtD,cAAeA,CAAA,CAAA,CAEnB,EAEA,MAAMC,EAAeC,EAAAA,OAAO,UAAU,SAAU,CAAE,KAAM,UAAW,EACnEC,EAAA,UAAU,MAAMF,CAAY,EAErB,OAAAD,CAAW,EAAE,qBAAqB,QAAQ,CAAA,CAClD,EAED,GAAG,sDAAuD,IAAM,CAC9D,MAAMI,EAAgB,IAAM,CAC1B,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAS,EAAK,EAEtC,OAEIC,EAAA,KAAAC,WAAA,CAAA,SAAA,CAAAb,MAAC,UAAO,QAAS,IAAMU,EAAQ,EAAI,EAAG,SAAK,QAAA,EAC3CV,EAAA,IAACG,EAAA,iBAAA,CACC,KAAAM,EACA,YAAY,cACZ,cAAc,yBACd,cAAeT,EAAA,IAAC,SAAO,CAAA,QAAS,IAAM,CAAA,EAAI,SAAK,QAAA,EAC/C,cAAe,IAAM,CAAA,CAAC,CAAA,CACxB,EACF,CAEJ,EACOE,EAAAA,OAAAF,EAAA,IAACQ,IAAc,CAAE,EAGxB,OACEF,EAAA,OAAO,YAAY,wBAAwB,CAAA,EAC3C,IAAI,kBAAkB,EAGxBC,EAAAA,UAAU,MAAMD,EAAAA,OAAO,UAAU,OAAO,CAAC,EAGzC,OAAOA,EAAAA,OAAO,UAAU,wBAAwB,CAAC,EAAE,kBAAkB,CAAA,CACtE,CACH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/ScrollableDialog/index.test.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { ScrollableDialog } from \".\";\n\ndescribe(\"ScrollableDialog\", () => {\n it(\"renders correctly\", () => {\n const title = \"Test Title\";\n const content = \"Test Content\";\n const dialogActions = <button>Test Action</button>;\n\n const { getByText } = render(\n <ScrollableDialog\n dialogTitle={title}\n dialogContent={content}\n dialogActions={dialogActions}\n open={true}\n onCloseDialog={() => {}}\n />,\n );\n\n expect(getByText(title)).toBeInTheDocument();\n expect(getByText(content)).toBeInTheDocument();\n expect(getByText(\"Test Action\")).toBeInTheDocument();\n });\n\n it('calls onClose with \"cancel\" when the dialog is closed', () => {\n const handleClose = jest.fn();\n render(\n <ScrollableDialog\n open={true}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={\n <button onClick={() => handleClose(\"cancel\")}>Cancel</button>\n }\n onCloseDialog={handleClose}\n />,\n );\n\n const cancelButton = screen.getByRole(\"button\", { name: /cancel/i });\n fireEvent.click(cancelButton);\n\n expect(handleClose).toHaveBeenCalledWith(\"cancel\");\n });\n\n it(\"displays the dialog when the open button is clicked\", () => {\n const TestComponent = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <button onClick={() => setOpen(true)}>Open!</button>\n <ScrollableDialog\n open={open}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={<button onClick={() => {}}>Close</button>}\n onCloseDialog={() => {}}\n />\n </>\n );\n };\n render(<TestComponent />);\n\n // ダイアログがまだ表示されていないことを確認\n expect(\n screen.queryByText(\"This is a test dialog.\"),\n ).not.toBeInTheDocument();\n\n // Open! ボタンをクリック\n fireEvent.click(screen.getByText(\"Open!\"));\n\n // ダイアログが表示されていることを確認\n expect(screen.getByText(\"This is a test dialog.\")).toBeInTheDocument();\n });\n});\n"],"names":["title","content","dialogActions","jsx","getByText","render","ScrollableDialog","handleClose","cancelButton","screen","fireEvent","TestComponent","open","setOpen","useState","jsxs","Fragment"],"mappings":"2IAKA,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMA,EAAQ,aACRC,EAAU,eACVC,EAAgBC,EAAAA,IAAC,SAAA,CAAO,SAAA,aAAA,CAAW,EAEnC,CAAE,UAAAC,GAAcC,EAAAA,OACpBF,EAAAA,IAACG,EAAAA,iBAAA,CACC,YAAaN,EACb,cAAeC,EACf,cAAAC,EACA,KAAM,GACN,cAAe,IAAM,CAAC,CAAA,CAAA,CACxB,EAGF,OAAOE,EAAUJ,CAAK,CAAC,EAAE,kBAAA,EACzB,OAAOI,EAAUH,CAAO,CAAC,EAAE,kBAAA,EAC3B,OAAOG,EAAU,aAAa,CAAC,EAAE,kBAAA,CACnC,CAAC,EAED,GAAG,wDAAyD,IAAM,CAChE,MAAMG,EAAc,KAAK,GAAA,EACzBF,EAAAA,OACEF,EAAAA,IAACG,EAAAA,iBAAA,CACC,KAAM,GACN,YAAY,cACZ,cAAc,yBACd,oBACG,SAAA,CAAO,QAAS,IAAMC,EAAY,QAAQ,EAAG,SAAA,SAAM,EAEtD,cAAeA,CAAA,CAAA,CACjB,EAGF,MAAMC,EAAeC,EAAAA,OAAO,UAAU,SAAU,CAAE,KAAM,UAAW,EACnEC,EAAAA,UAAU,MAAMF,CAAY,EAE5B,OAAOD,CAAW,EAAE,qBAAqB,QAAQ,CACnD,CAAC,EAED,GAAG,sDAAuD,IAAM,CAC9D,MAAMI,EAAgB,IAAM,CAC1B,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAS,EAAK,EAEtC,OACEC,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAb,MAAC,UAAO,QAAS,IAAMU,EAAQ,EAAI,EAAG,SAAA,QAAK,EAC3CV,EAAAA,IAACG,EAAAA,iBAAA,CACC,KAAAM,EACA,YAAY,cACZ,cAAc,yBACd,cAAeT,EAAAA,IAAC,SAAA,CAAO,QAAS,IAAM,CAAC,EAAG,SAAA,QAAK,EAC/C,cAAe,IAAM,CAAC,CAAA,CAAA,CACxB,EACF,CAEJ,EACAE,EAAAA,OAAOF,EAAAA,IAACQ,IAAc,CAAE,EAGxB,OACEF,EAAAA,OAAO,YAAY,wBAAwB,CAAA,EAC3C,IAAI,kBAAA,EAGNC,EAAAA,UAAU,MAAMD,EAAAA,OAAO,UAAU,OAAO,CAAC,EAGzC,OAAOA,EAAAA,OAAO,UAAU,wBAAwB,CAAC,EAAE,kBAAA,CACrD,CAAC,CACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as e, jsxs as r, Fragment as d } from "react/jsx-runtime";
2
2
  import { useState as g } from "react";
3
- import { r as c, s as n, f as a } from "../../react.esm-2FJSSo-S.js";
3
+ import { r as c, s as n, f as a } from "../../react.esm-DVhZgPrH.js";
4
4
  import { ScrollableDialog as s } from "./index.es.js";
5
5
  describe("ScrollableDialog", () => {
6
6
  it("renders correctly", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/ScrollableDialog/index.test.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { ScrollableDialog } from \".\";\n\ndescribe(\"ScrollableDialog\", () => {\n it(\"renders correctly\", () => {\n const title = \"Test Title\";\n const content = \"Test Content\";\n const dialogActions = <button>Test Action</button>;\n\n const { getByText } = render(\n <ScrollableDialog\n dialogTitle={title}\n dialogContent={content}\n dialogActions={dialogActions}\n open={true}\n onCloseDialog={() => {}}\n />,\n );\n\n expect(getByText(title)).toBeInTheDocument();\n expect(getByText(content)).toBeInTheDocument();\n expect(getByText(\"Test Action\")).toBeInTheDocument();\n });\n\n it('calls onClose with \"cancel\" when the dialog is closed', () => {\n const handleClose = jest.fn();\n render(\n <ScrollableDialog\n open={true}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={\n <button onClick={() => handleClose(\"cancel\")}>Cancel</button>\n }\n onCloseDialog={handleClose}\n />,\n );\n\n const cancelButton = screen.getByRole(\"button\", { name: /cancel/i });\n fireEvent.click(cancelButton);\n\n expect(handleClose).toHaveBeenCalledWith(\"cancel\");\n });\n\n it(\"displays the dialog when the open button is clicked\", () => {\n const TestComponent = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <button onClick={() => setOpen(true)}>Open!</button>\n <ScrollableDialog\n open={open}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={<button onClick={() => {}}>Close</button>}\n onCloseDialog={() => {}}\n />\n </>\n );\n };\n render(<TestComponent />);\n\n // ダイアログがまだ表示されていないことを確認\n expect(\n screen.queryByText(\"This is a test dialog.\"),\n ).not.toBeInTheDocument();\n\n // Open! ボタンをクリック\n fireEvent.click(screen.getByText(\"Open!\"));\n\n // ダイアログが表示されていることを確認\n expect(screen.getByText(\"This is a test dialog.\")).toBeInTheDocument();\n });\n});\n"],"names":["title","content","dialogActions","jsx","getByText","render","ScrollableDialog","handleClose","cancelButton","screen","fireEvent","open","setOpen","useState","jsxs","Fragment"],"mappings":";;;;AAKA,SAAS,oBAAoB,MAAM;AACjC,KAAG,qBAAqB,MAAM;AAC5B,UAAMA,IAAQ,cACRC,IAAU,gBACVC,IAAiB,gBAAAC,EAAA,UAAA,EAAO,UAAW,cAAA,CAAA,GAEnC,EAAE,WAAAC,MAAcC;AAAA,MACpB,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,aAAaN;AAAA,UACb,eAAeC;AAAA,UACf,eAAAC;AAAA,UACA,MAAM;AAAA,UACN,eAAe,MAAM;AAAA,UAAA;AAAA,QAAC;AAAA,MAAA;AAAA,IAE1B;AAEA,WAAOE,EAAUJ,CAAK,CAAC,EAAE,kBAAkB,GAC3C,OAAOI,EAAUH,CAAO,CAAC,EAAE,kBAAkB,GAC7C,OAAOG,EAAU,aAAa,CAAC,EAAE,kBAAkB;AAAA,EAAA,CACpD,GAED,GAAG,yDAAyD,MAAM;AAC1D,UAAAG,IAAc,KAAK,GAAG;AAC5B,IAAAF;AAAA,MACE,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,iCACG,UAAO,EAAA,SAAS,MAAMC,EAAY,QAAQ,GAAG,UAAM,UAAA;AAAA,UAEtD,eAAeA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEnB;AAEA,UAAMC,IAAeC,EAAO,UAAU,UAAU,EAAE,MAAM,WAAW;AACnE,IAAAC,EAAU,MAAMF,CAAY,GAErB,OAAAD,CAAW,EAAE,qBAAqB,QAAQ;AAAA,EAAA,CAClD,GAED,GAAG,uDAAuD,MAAM;AAiBvD,IAAAF,EAAA,gBAAAF,EAhBe,MAAM;AAC1B,YAAM,CAACQ,GAAMC,CAAO,IAAIC,EAAS,EAAK;AAEtC,aAEI,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAZ,EAAC,YAAO,SAAS,MAAMS,EAAQ,EAAI,GAAG,UAAK,SAAA;AAAA,QAC3C,gBAAAT;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,MAAAK;AAAA,YACA,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,eAAe,gBAAAR,EAAC,UAAO,EAAA,SAAS,MAAM;AAAA,YAAA,GAAI,UAAK,SAAA;AAAA,YAC/C,eAAe,MAAM;AAAA,YAAA;AAAA,UAAC;AAAA,QAAA;AAAA,MACxB,GACF;AAAA,IAEJ,KACsB,CAAE,GAGxB;AAAA,MACEM,EAAO,YAAY,wBAAwB;AAAA,IAAA,EAC3C,IAAI,kBAAkB,GAGxBC,EAAU,MAAMD,EAAO,UAAU,OAAO,CAAC,GAGzC,OAAOA,EAAO,UAAU,wBAAwB,CAAC,EAAE,kBAAkB;AAAA,EAAA,CACtE;AACH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/ScrollableDialog/index.test.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { ScrollableDialog } from \".\";\n\ndescribe(\"ScrollableDialog\", () => {\n it(\"renders correctly\", () => {\n const title = \"Test Title\";\n const content = \"Test Content\";\n const dialogActions = <button>Test Action</button>;\n\n const { getByText } = render(\n <ScrollableDialog\n dialogTitle={title}\n dialogContent={content}\n dialogActions={dialogActions}\n open={true}\n onCloseDialog={() => {}}\n />,\n );\n\n expect(getByText(title)).toBeInTheDocument();\n expect(getByText(content)).toBeInTheDocument();\n expect(getByText(\"Test Action\")).toBeInTheDocument();\n });\n\n it('calls onClose with \"cancel\" when the dialog is closed', () => {\n const handleClose = jest.fn();\n render(\n <ScrollableDialog\n open={true}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={\n <button onClick={() => handleClose(\"cancel\")}>Cancel</button>\n }\n onCloseDialog={handleClose}\n />,\n );\n\n const cancelButton = screen.getByRole(\"button\", { name: /cancel/i });\n fireEvent.click(cancelButton);\n\n expect(handleClose).toHaveBeenCalledWith(\"cancel\");\n });\n\n it(\"displays the dialog when the open button is clicked\", () => {\n const TestComponent = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <button onClick={() => setOpen(true)}>Open!</button>\n <ScrollableDialog\n open={open}\n dialogTitle=\"Test Dialog\"\n dialogContent=\"This is a test dialog.\"\n dialogActions={<button onClick={() => {}}>Close</button>}\n onCloseDialog={() => {}}\n />\n </>\n );\n };\n render(<TestComponent />);\n\n // ダイアログがまだ表示されていないことを確認\n expect(\n screen.queryByText(\"This is a test dialog.\"),\n ).not.toBeInTheDocument();\n\n // Open! ボタンをクリック\n fireEvent.click(screen.getByText(\"Open!\"));\n\n // ダイアログが表示されていることを確認\n expect(screen.getByText(\"This is a test dialog.\")).toBeInTheDocument();\n });\n});\n"],"names":["title","content","dialogActions","jsx","getByText","render","ScrollableDialog","handleClose","cancelButton","screen","fireEvent","open","setOpen","useState","jsxs","Fragment"],"mappings":";;;;AAKA,SAAS,oBAAoB,MAAM;AACjC,KAAG,qBAAqB,MAAM;AAC5B,UAAMA,IAAQ,cACRC,IAAU,gBACVC,IAAgB,gBAAAC,EAAC,UAAA,EAAO,UAAA,cAAA,CAAW,GAEnC,EAAE,WAAAC,MAAcC;AAAA,MACpB,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,aAAaN;AAAA,UACb,eAAeC;AAAA,UACf,eAAAC;AAAA,UACA,MAAM;AAAA,UACN,eAAe,MAAM;AAAA,UAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACxB;AAGF,WAAOE,EAAUJ,CAAK,CAAC,EAAE,kBAAA,GACzB,OAAOI,EAAUH,CAAO,CAAC,EAAE,kBAAA,GAC3B,OAAOG,EAAU,aAAa,CAAC,EAAE,kBAAA;AAAA,EACnC,CAAC,GAED,GAAG,yDAAyD,MAAM;AAChE,UAAMG,IAAc,KAAK,GAAA;AACzB,IAAAF;AAAA,MACE,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,iCACG,UAAA,EAAO,SAAS,MAAMC,EAAY,QAAQ,GAAG,UAAA,UAAM;AAAA,UAEtD,eAAeA;AAAA,QAAA;AAAA,MAAA;AAAA,IACjB;AAGF,UAAMC,IAAeC,EAAO,UAAU,UAAU,EAAE,MAAM,WAAW;AACnE,IAAAC,EAAU,MAAMF,CAAY,GAE5B,OAAOD,CAAW,EAAE,qBAAqB,QAAQ;AAAA,EACnD,CAAC,GAED,GAAG,uDAAuD,MAAM;AAiB9D,IAAAF,EAAO,gBAAAF,EAhBe,MAAM;AAC1B,YAAM,CAACQ,GAAMC,CAAO,IAAIC,EAAS,EAAK;AAEtC,aACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,QAAA,gBAAAZ,EAAC,YAAO,SAAS,MAAMS,EAAQ,EAAI,GAAG,UAAA,SAAK;AAAA,QAC3C,gBAAAT;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,MAAAK;AAAA,YACA,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,eAAe,gBAAAR,EAAC,UAAA,EAAO,SAAS,MAAM;AAAA,YAAC,GAAG,UAAA,SAAK;AAAA,YAC/C,eAAe,MAAM;AAAA,YAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MACxB,GACF;AAAA,IAEJ,KACsB,CAAE,GAGxB;AAAA,MACEM,EAAO,YAAY,wBAAwB;AAAA,IAAA,EAC3C,IAAI,kBAAA,GAGNC,EAAU,MAAMD,EAAO,UAAU,OAAO,CAAC,GAGzC,OAAOA,EAAO,UAAU,wBAAwB,CAAC,EAAE,kBAAA;AAAA,EACrD,CAAC;AACH,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SearchForm/index.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport { ExpandMore, Search } from \"@mui/icons-material\";\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n} from \"@mui/material\";\nimport { type FieldValues, type useForm } from \"react-hook-form\";\n\nimport { FlexButtons } from \"../FlexButtons\";\nimport styles from \"./index.module.scss\";\n\ntype Props<T extends FieldValues = FieldValues> = {\n headerTitle?: string;\n children: ReactNode;\n defaultExpanded?: boolean;\n handleSubmit: ReturnType<typeof useForm<T>>[\"handleSubmit\"];\n onSubmitSearch: (data: T) => void;\n onClickClear?: () => void;\n};\n\nexport const SearchForm = <T extends FieldValues = FieldValues>({\n headerTitle,\n children,\n defaultExpanded,\n handleSubmit,\n onSubmitSearch,\n onClickClear,\n}: Props<T>) => {\n const handleClear = () => {\n if (onClickClear) {\n onClickClear();\n }\n };\n\n const handle = handleSubmit((data) => {\n onSubmitSearch(data);\n });\n\n return (\n <Accordion defaultExpanded={defaultExpanded} className={styles.container}>\n <AccordionSummary\n className={styles.header}\n aria-controls=\"panel-content\"\n expandIcon={<ExpandMore />}\n >\n {headerTitle || \"絞り込み\"}\n </AccordionSummary>\n <AccordionDetails className={styles.mainContent}>\n <form className={styles.searchForm} onSubmit={handle}>\n <div className={styles.inputItems}>{children}</div>\n <FlexButtons position=\"flex-end\">\n <Button\n onClick={handleClear}\n variant=\"outlined\"\n sx={{\n p: 1,\n background: \"white\",\n color: \"#6672e8\",\n borderBlockColor: \"#6672e8\",\n width: \"128px\",\n }}\n >\n クリア\n </Button>\n <Button\n type=\"submit\"\n variant=\"contained\"\n startIcon={<Search />}\n sx={{\n background: \"#6672e8\",\n color: \"white\",\n \":hover\": { background: \"#6672e8\" },\n width: \"128px\",\n }}\n >\n 検索\n </Button>\n </FlexButtons>\n </form>\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport default SearchForm;\n"],"names":["SearchForm","headerTitle","children","defaultExpanded","handleSubmit","onSubmitSearch","onClickClear","handleClear","handle","data","jsxs","Accordion","styles","jsx","AccordionSummary","ExpandMore","AccordionDetails","FlexButtons","Button","Search"],"mappings":"8aAsBaA,EAAa,CAAsC,CAC9D,YAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,eAAAC,EACA,aAAAC,CACF,IAAgB,CACd,MAAMC,EAAc,IAAM,CACpBD,GACWA,EAAA,CAEjB,EAEME,EAASJ,EAAcK,GAAS,CACpCJ,EAAeI,CAAI,CAAA,CACpB,EAED,OACGC,EAAAA,KAAAC,EAAAA,UAAA,CAAU,gBAAAR,EAAkC,UAAWS,EAAO,UAC7D,SAAA,CAAAC,EAAA,IAACC,EAAA,iBAAA,CACC,UAAWF,EAAO,OAClB,gBAAc,gBACd,iBAAaG,EAAW,WAAA,EAAA,EAEvB,SAAed,GAAA,MAAA,CAClB,EACAY,EAAA,IAACG,EAAiB,iBAAA,CAAA,UAAWJ,EAAO,YAClC,SAACF,EAAAA,KAAA,OAAA,CAAK,UAAWE,EAAO,WAAY,SAAUJ,EAC5C,SAAA,CAAAK,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,WAAa,SAAAV,EAAS,EAC7CQ,EAAAA,KAACO,EAAAA,YAAY,CAAA,SAAS,WACpB,SAAA,CAAAJ,EAAA,IAACK,EAAA,OAAA,CACC,QAASX,EACT,QAAQ,WACR,GAAI,CACF,EAAG,EACH,WAAY,QACZ,MAAO,UACP,iBAAkB,UAClB,MAAO,OACT,EACD,SAAA,KAAA,CAED,EACAM,EAAA,IAACK,EAAA,OAAA,CACC,KAAK,SACL,QAAQ,YACR,gBAAYC,EAAO,OAAA,EAAA,EACnB,GAAI,CACF,WAAY,UACZ,MAAO,QACP,SAAU,CAAE,WAAY,SAAU,EAClC,MAAO,OACT,EACD,SAAA,IAAA,CAAA,CAED,CACF,CAAA,CAAA,CAAA,CACF,CACF,CAAA,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SearchForm/index.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport { ExpandMore, Search } from \"@mui/icons-material\";\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n} from \"@mui/material\";\nimport { type FieldValues, type useForm } from \"react-hook-form\";\n\nimport { FlexButtons } from \"../FlexButtons\";\nimport styles from \"./index.module.scss\";\n\ntype Props<T extends FieldValues = FieldValues> = {\n headerTitle?: string;\n children: ReactNode;\n defaultExpanded?: boolean;\n handleSubmit: ReturnType<typeof useForm<T>>[\"handleSubmit\"];\n onSubmitSearch: (data: T) => void;\n onClickClear?: () => void;\n};\n\nexport const SearchForm = <T extends FieldValues = FieldValues>({\n headerTitle,\n children,\n defaultExpanded,\n handleSubmit,\n onSubmitSearch,\n onClickClear,\n}: Props<T>) => {\n const handleClear = () => {\n if (onClickClear) {\n onClickClear();\n }\n };\n\n const handle = handleSubmit((data) => {\n onSubmitSearch(data);\n });\n\n return (\n <Accordion defaultExpanded={defaultExpanded} className={styles.container}>\n <AccordionSummary\n className={styles.header}\n aria-controls=\"panel-content\"\n expandIcon={<ExpandMore />}\n >\n {headerTitle || \"絞り込み\"}\n </AccordionSummary>\n <AccordionDetails className={styles.mainContent}>\n <form className={styles.searchForm} onSubmit={handle}>\n <div className={styles.inputItems}>{children}</div>\n <FlexButtons position=\"flex-end\">\n <Button\n onClick={handleClear}\n variant=\"outlined\"\n sx={{\n p: 1,\n background: \"white\",\n color: \"#6672e8\",\n borderBlockColor: \"#6672e8\",\n width: \"128px\",\n }}\n >\n クリア\n </Button>\n <Button\n type=\"submit\"\n variant=\"contained\"\n startIcon={<Search />}\n sx={{\n background: \"#6672e8\",\n color: \"white\",\n \":hover\": { background: \"#6672e8\" },\n width: \"128px\",\n }}\n >\n 検索\n </Button>\n </FlexButtons>\n </form>\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport default SearchForm;\n"],"names":["SearchForm","headerTitle","children","defaultExpanded","handleSubmit","onSubmitSearch","onClickClear","handleClear","handle","data","jsxs","Accordion","styles","jsx","AccordionSummary","ExpandMore","AccordionDetails","FlexButtons","Button","Search"],"mappings":"8aAsBaA,EAAa,CAAsC,CAC9D,YAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,eAAAC,EACA,aAAAC,CACF,IAAgB,CACd,MAAMC,EAAc,IAAM,CACpBD,GACFA,EAAA,CAEJ,EAEME,EAASJ,EAAcK,GAAS,CACpCJ,EAAeI,CAAI,CACrB,CAAC,EAED,OACEC,EAAAA,KAACC,EAAAA,UAAA,CAAU,gBAAAR,EAAkC,UAAWS,EAAO,UAC7D,SAAA,CAAAC,EAAAA,IAACC,EAAAA,iBAAA,CACC,UAAWF,EAAO,OAClB,gBAAc,gBACd,iBAAaG,EAAAA,WAAA,EAAW,EAEvB,SAAAd,GAAe,MAAA,CAAA,EAElBY,EAAAA,IAACG,EAAAA,iBAAA,CAAiB,UAAWJ,EAAO,YAClC,SAAAF,EAAAA,KAAC,OAAA,CAAK,UAAWE,EAAO,WAAY,SAAUJ,EAC5C,SAAA,CAAAK,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAO,WAAa,SAAAV,EAAS,EAC7CQ,EAAAA,KAACO,EAAAA,YAAA,CAAY,SAAS,WACpB,SAAA,CAAAJ,EAAAA,IAACK,EAAAA,OAAA,CACC,QAASX,EACT,QAAQ,WACR,GAAI,CACF,EAAG,EACH,WAAY,QACZ,MAAO,UACP,iBAAkB,UAClB,MAAO,OAAA,EAEV,SAAA,KAAA,CAAA,EAGDM,EAAAA,IAACK,EAAAA,OAAA,CACC,KAAK,SACL,QAAQ,YACR,gBAAYC,EAAAA,OAAA,EAAO,EACnB,GAAI,CACF,WAAY,UACZ,MAAO,QACP,SAAU,CAAE,WAAY,SAAA,EACxB,MAAO,OAAA,EAEV,SAAA,IAAA,CAAA,CAED,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/SearchForm/index.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport { ExpandMore, Search } from \"@mui/icons-material\";\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n} from \"@mui/material\";\nimport { type FieldValues, type useForm } from \"react-hook-form\";\n\nimport { FlexButtons } from \"../FlexButtons\";\nimport styles from \"./index.module.scss\";\n\ntype Props<T extends FieldValues = FieldValues> = {\n headerTitle?: string;\n children: ReactNode;\n defaultExpanded?: boolean;\n handleSubmit: ReturnType<typeof useForm<T>>[\"handleSubmit\"];\n onSubmitSearch: (data: T) => void;\n onClickClear?: () => void;\n};\n\nexport const SearchForm = <T extends FieldValues = FieldValues>({\n headerTitle,\n children,\n defaultExpanded,\n handleSubmit,\n onSubmitSearch,\n onClickClear,\n}: Props<T>) => {\n const handleClear = () => {\n if (onClickClear) {\n onClickClear();\n }\n };\n\n const handle = handleSubmit((data) => {\n onSubmitSearch(data);\n });\n\n return (\n <Accordion defaultExpanded={defaultExpanded} className={styles.container}>\n <AccordionSummary\n className={styles.header}\n aria-controls=\"panel-content\"\n expandIcon={<ExpandMore />}\n >\n {headerTitle || \"絞り込み\"}\n </AccordionSummary>\n <AccordionDetails className={styles.mainContent}>\n <form className={styles.searchForm} onSubmit={handle}>\n <div className={styles.inputItems}>{children}</div>\n <FlexButtons position=\"flex-end\">\n <Button\n onClick={handleClear}\n variant=\"outlined\"\n sx={{\n p: 1,\n background: \"white\",\n color: \"#6672e8\",\n borderBlockColor: \"#6672e8\",\n width: \"128px\",\n }}\n >\n クリア\n </Button>\n <Button\n type=\"submit\"\n variant=\"contained\"\n startIcon={<Search />}\n sx={{\n background: \"#6672e8\",\n color: \"white\",\n \":hover\": { background: \"#6672e8\" },\n width: \"128px\",\n }}\n >\n 検索\n </Button>\n </FlexButtons>\n </form>\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport default SearchForm;\n"],"names":["SearchForm","headerTitle","children","defaultExpanded","handleSubmit","onSubmitSearch","onClickClear","handleClear","handle","data","jsxs","Accordion","styles","jsx","AccordionSummary","ExpandMore","AccordionDetails","FlexButtons","Button","Search"],"mappings":";;;;;;;;;;GAsBaA,IAAa,CAAsC;AAAA,EAC9D,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AACF,MAAgB;AACd,QAAMC,IAAc,MAAM;AACxB,IAAID,KACWA,EAAA;AAAA,EAEjB,GAEME,IAASJ,EAAa,CAACK,MAAS;AACpC,IAAAJ,EAAeI,CAAI;AAAA,EAAA,CACpB;AAED,SACG,gBAAAC,EAAAC,GAAA,EAAU,iBAAAR,GAAkC,WAAWS,EAAO,WAC7D,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAWF,EAAO;AAAA,QAClB,iBAAc;AAAA,QACd,8BAAaG,GAAW,EAAA;AAAA,QAEvB,UAAed,KAAA;AAAA,MAAA;AAAA,IAClB;AAAA,IACA,gBAAAY,EAACG,GAAiB,EAAA,WAAWJ,EAAO,aAClC,UAAC,gBAAAF,EAAA,QAAA,EAAK,WAAWE,EAAO,YAAY,UAAUJ,GAC5C,UAAA;AAAA,MAAA,gBAAAK,EAAC,OAAI,EAAA,WAAWD,EAAO,YAAa,UAAAV,GAAS;AAAA,MAC7C,gBAAAQ,EAACO,GAAY,EAAA,UAAS,YACpB,UAAA;AAAA,QAAA,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,SAASX;AAAA,YACT,SAAQ;AAAA,YACR,IAAI;AAAA,cACF,GAAG;AAAA,cACH,YAAY;AAAA,cACZ,OAAO;AAAA,cACP,kBAAkB;AAAA,cAClB,OAAO;AAAA,YACT;AAAA,YACD,UAAA;AAAA,UAAA;AAAA,QAED;AAAA,QACA,gBAAAM;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,6BAAYC,GAAO,EAAA;AAAA,YACnB,IAAI;AAAA,cACF,YAAY;AAAA,cACZ,OAAO;AAAA,cACP,UAAU,EAAE,YAAY,UAAU;AAAA,cAClC,OAAO;AAAA,YACT;AAAA,YACD,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,EACF,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/SearchForm/index.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport { ExpandMore, Search } from \"@mui/icons-material\";\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n} from \"@mui/material\";\nimport { type FieldValues, type useForm } from \"react-hook-form\";\n\nimport { FlexButtons } from \"../FlexButtons\";\nimport styles from \"./index.module.scss\";\n\ntype Props<T extends FieldValues = FieldValues> = {\n headerTitle?: string;\n children: ReactNode;\n defaultExpanded?: boolean;\n handleSubmit: ReturnType<typeof useForm<T>>[\"handleSubmit\"];\n onSubmitSearch: (data: T) => void;\n onClickClear?: () => void;\n};\n\nexport const SearchForm = <T extends FieldValues = FieldValues>({\n headerTitle,\n children,\n defaultExpanded,\n handleSubmit,\n onSubmitSearch,\n onClickClear,\n}: Props<T>) => {\n const handleClear = () => {\n if (onClickClear) {\n onClickClear();\n }\n };\n\n const handle = handleSubmit((data) => {\n onSubmitSearch(data);\n });\n\n return (\n <Accordion defaultExpanded={defaultExpanded} className={styles.container}>\n <AccordionSummary\n className={styles.header}\n aria-controls=\"panel-content\"\n expandIcon={<ExpandMore />}\n >\n {headerTitle || \"絞り込み\"}\n </AccordionSummary>\n <AccordionDetails className={styles.mainContent}>\n <form className={styles.searchForm} onSubmit={handle}>\n <div className={styles.inputItems}>{children}</div>\n <FlexButtons position=\"flex-end\">\n <Button\n onClick={handleClear}\n variant=\"outlined\"\n sx={{\n p: 1,\n background: \"white\",\n color: \"#6672e8\",\n borderBlockColor: \"#6672e8\",\n width: \"128px\",\n }}\n >\n クリア\n </Button>\n <Button\n type=\"submit\"\n variant=\"contained\"\n startIcon={<Search />}\n sx={{\n background: \"#6672e8\",\n color: \"white\",\n \":hover\": { background: \"#6672e8\" },\n width: \"128px\",\n }}\n >\n 検索\n </Button>\n </FlexButtons>\n </form>\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport default SearchForm;\n"],"names":["SearchForm","headerTitle","children","defaultExpanded","handleSubmit","onSubmitSearch","onClickClear","handleClear","handle","data","jsxs","Accordion","styles","jsx","AccordionSummary","ExpandMore","AccordionDetails","FlexButtons","Button","Search"],"mappings":";;;;;;;;;;GAsBaA,IAAa,CAAsC;AAAA,EAC9D,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AACF,MAAgB;AACd,QAAMC,IAAc,MAAM;AACxB,IAAID,KACFA,EAAA;AAAA,EAEJ,GAEME,IAASJ,EAAa,CAACK,MAAS;AACpC,IAAAJ,EAAeI,CAAI;AAAA,EACrB,CAAC;AAED,SACE,gBAAAC,EAACC,GAAA,EAAU,iBAAAR,GAAkC,WAAWS,EAAO,WAC7D,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAWF,EAAO;AAAA,QAClB,iBAAc;AAAA,QACd,8BAAaG,GAAA,EAAW;AAAA,QAEvB,UAAAd,KAAe;AAAA,MAAA;AAAA,IAAA;AAAA,IAElB,gBAAAY,EAACG,GAAA,EAAiB,WAAWJ,EAAO,aAClC,UAAA,gBAAAF,EAAC,QAAA,EAAK,WAAWE,EAAO,YAAY,UAAUJ,GAC5C,UAAA;AAAA,MAAA,gBAAAK,EAAC,OAAA,EAAI,WAAWD,EAAO,YAAa,UAAAV,GAAS;AAAA,MAC7C,gBAAAQ,EAACO,GAAA,EAAY,UAAS,YACpB,UAAA;AAAA,QAAA,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,SAASX;AAAA,YACT,SAAQ;AAAA,YACR,IAAI;AAAA,cACF,GAAG;AAAA,cACH,YAAY;AAAA,cACZ,OAAO;AAAA,cACP,kBAAkB;AAAA,cAClB,OAAO;AAAA,YAAA;AAAA,YAEV,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGD,gBAAAM;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,6BAAYC,GAAA,EAAO;AAAA,YACnB,IAAI;AAAA,cACF,YAAY;AAAA,cACZ,OAAO;AAAA,cACP,UAAU,EAAE,YAAY,UAAA;AAAA,cACxB,OAAO;AAAA,YAAA;AAAA,YAEV,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,EAAA,CACF;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs"),o=require("../../index-CCbJ_2yU.cjs");describe("SelectBox component",()=>{const r=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"}],c="test-selectbox",l="test-name";it("renders the select box with correct options",()=>{e.render(n.jsx(o.SelectBox,{id:c,name:l,values:r}));const t=e.screen.getByRole("combobox");expect(t).toHaveAttribute("id",c),expect(t).toHaveAttribute("name",l),r.forEach(({label:s,value:a})=>{const x=e.screen.getByText(s);expect(x).toBeInTheDocument(),expect(x).toHaveAttribute("value",a)})}),it("shows error message when provided",()=>{const t="Error message";e.render(n.jsx(o.SelectBox,{values:r,errorMessage:t}));const s=e.screen.getByText(t);expect(s).toBeInTheDocument()}),it("does not show error message when not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.queryByText(/Error message/i);expect(t).not.toBeInTheDocument()}),it("applies the error class to select box when errorMessage is provided",()=>{e.render(n.jsx(o.SelectBox,{values:r,errorMessage:"Error message"}));const s=e.screen.getByRole("combobox");expect(s).toHaveClass(o.styles.error)}),it("does not apply the error class to select box when errorMessage is not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.getByRole("combobox");expect(t).not.toHaveClass(o.styles.error)})});
1
+ "use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-BcRJ42eI.cjs"),o=require("../../index-CCbJ_2yU.cjs");describe("SelectBox component",()=>{const r=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"}],c="test-selectbox",l="test-name";it("renders the select box with correct options",()=>{e.render(n.jsx(o.SelectBox,{id:c,name:l,values:r}));const t=e.screen.getByRole("combobox");expect(t).toHaveAttribute("id",c),expect(t).toHaveAttribute("name",l),r.forEach(({label:s,value:a})=>{const x=e.screen.getByText(s);expect(x).toBeInTheDocument(),expect(x).toHaveAttribute("value",a)})}),it("shows error message when provided",()=>{const t="Error message";e.render(n.jsx(o.SelectBox,{values:r,errorMessage:t}));const s=e.screen.getByText(t);expect(s).toBeInTheDocument()}),it("does not show error message when not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.queryByText(/Error message/i);expect(t).not.toBeInTheDocument()}),it("applies the error class to select box when errorMessage is provided",()=>{e.render(n.jsx(o.SelectBox,{values:r,errorMessage:"Error message"}));const s=e.screen.getByRole("combobox");expect(s).toHaveClass(o.styles.error)}),it("does not apply the error class to select box when errorMessage is not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.getByRole("combobox");expect(t).not.toHaveClass(o.styles.error)})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":"kIAMA,SAAS,sBAAuB,IAAM,CACpC,MAAMA,EAAS,CACb,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,CACxC,EAEMC,EAAK,iBACLC,EAAO,YAEb,GAAG,8CAA+C,IAAM,CACtDC,EAAA,OAAQC,EAAA,IAAAC,YAAA,CAAU,GAAAJ,EAAQ,KAAAC,EAAY,OAAAF,EAAgB,CAAE,EAElD,MAAAM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,gBAAgB,KAAML,CAAE,EAC1C,OAAOK,CAAS,EAAE,gBAAgB,OAAQJ,CAAI,EAE9CF,EAAO,QAAQ,CAAC,CAAE,MAAAQ,EAAO,MAAAC,KAAY,CAC7B,MAAAC,EAASH,EAAAA,OAAO,UAAUC,CAAK,EAC9B,OAAAE,CAAM,EAAE,kBAAkB,EACjC,OAAOA,CAAM,EAAE,gBAAgB,QAASD,CAAK,CAAA,CAC9C,CAAA,CACF,EAED,GAAG,oCAAqC,IAAM,CAC5C,MAAME,EAAe,gBACrBR,EAAA,OAAQC,EAAA,IAAAC,EAAA,UAAA,CAAU,OAAAL,EAAgB,aAAAW,CAA4B,CAAA,CAAE,EAE1D,MAAAC,EAAeL,EAAAA,OAAO,UAAUI,CAAY,EAC3C,OAAAC,CAAY,EAAE,kBAAkB,CAAA,CACxC,EAED,GAAG,gDAAiD,IAAM,CACjDT,EAAAA,OAAAC,EAAAA,IAACC,EAAAA,UAAU,CAAA,OAAAL,CAAgB,CAAA,CAAE,EAE9B,MAAAY,EAAeL,EAAAA,OAAO,YAAY,gBAAgB,EACjD,OAAAK,CAAY,EAAE,IAAI,kBAAkB,CAAA,CAC5C,EAED,GAAG,sEAAuE,IAAM,CAE9ET,EAAA,OAAQC,EAAA,IAAAC,EAAA,UAAA,CAAU,OAAAL,EAAgB,aADb,eACyC,CAAA,CAAE,EAE1D,MAAAM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,YAAYO,EAAAA,OAAO,KAAK,CAAA,CAC3C,EAED,GAAG,iFAAkF,IAAM,CAClFV,EAAAA,OAAAC,EAAAA,IAACC,EAAAA,UAAU,CAAA,OAAAL,CAAgB,CAAA,CAAE,EAE9B,MAAAM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,IAAI,YAAYO,EAAAA,OAAO,KAAK,CAAA,CAC/C,CAWH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":"kIAMA,SAAS,sBAAuB,IAAM,CACpC,MAAMA,EAAS,CACb,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,CAAU,EAGlCC,EAAK,iBACLC,EAAO,YAEb,GAAG,8CAA+C,IAAM,CACtDC,EAAAA,OAAOC,EAAAA,IAACC,YAAA,CAAU,GAAAJ,EAAQ,KAAAC,EAAY,OAAAF,EAAgB,CAAE,EAExD,MAAMM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,gBAAgB,KAAML,CAAE,EAC1C,OAAOK,CAAS,EAAE,gBAAgB,OAAQJ,CAAI,EAE9CF,EAAO,QAAQ,CAAC,CAAE,MAAAQ,EAAO,MAAAC,KAAY,CACnC,MAAMC,EAASH,EAAAA,OAAO,UAAUC,CAAK,EACrC,OAAOE,CAAM,EAAE,kBAAA,EACf,OAAOA,CAAM,EAAE,gBAAgB,QAASD,CAAK,CAC/C,CAAC,CACH,CAAC,EAED,GAAG,oCAAqC,IAAM,CAC5C,MAAME,EAAe,gBACrBR,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,EAAgB,aAAAW,CAAA,CAA4B,CAAE,EAEhE,MAAMC,EAAeL,EAAAA,OAAO,UAAUI,CAAY,EAClD,OAAOC,CAAY,EAAE,kBAAA,CACvB,CAAC,EAED,GAAG,gDAAiD,IAAM,CACxDT,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,CAAA,CAAgB,CAAE,EAEpC,MAAMY,EAAeL,EAAAA,OAAO,YAAY,gBAAgB,EACxD,OAAOK,CAAY,EAAE,IAAI,kBAAA,CAC3B,CAAC,EAED,GAAG,sEAAuE,IAAM,CAE9ET,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,EAAgB,aADb,eACa,CAA4B,CAAE,EAEhE,MAAMM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,YAAYO,EAAAA,OAAO,KAAK,CAC5C,CAAC,EAED,GAAG,iFAAkF,IAAM,CACzFV,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,CAAA,CAAgB,CAAE,EAEpC,MAAMM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,IAAI,YAAYO,EAAAA,OAAO,KAAK,CAChD,CAAC,CAWH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { r as n, s as t } from "../../react.esm-2FJSSo-S.js";
2
+ import { r as n, s as t } from "../../react.esm-DVhZgPrH.js";
3
3
  import { s as p, S as c } from "../../index-CSiE_l9r.js";
4
4
  describe("SelectBox component", () => {
5
5
  const o = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":";;;AAMA,SAAS,uBAAuB,MAAM;AACpC,QAAMA,IAAS;AAAA,IACb,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,IACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,EACxC,GAEMC,IAAK,kBACLC,IAAO;AAEb,KAAG,+CAA+C,MAAM;AACtD,IAAAC,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,IAAAJ,GAAQ,MAAAC,GAAY,QAAAF,GAAgB,CAAE;AAElD,UAAAM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,gBAAgB,MAAML,CAAE,GAC1C,OAAOK,CAAS,EAAE,gBAAgB,QAAQJ,CAAI,GAE9CF,EAAO,QAAQ,CAAC,EAAE,OAAAQ,GAAO,OAAAC,QAAY;AAC7B,YAAAC,IAASH,EAAO,UAAUC,CAAK;AAC9B,aAAAE,CAAM,EAAE,kBAAkB,GACjC,OAAOA,CAAM,EAAE,gBAAgB,SAASD,CAAK;AAAA,IAAA,CAC9C;AAAA,EAAA,CACF,GAED,GAAG,qCAAqC,MAAM;AAC5C,UAAME,IAAe;AACrB,IAAAR,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,QAAAL,GAAgB,cAAAW,EAA4B,CAAA,CAAE;AAE1D,UAAAC,IAAeL,EAAO,UAAUI,CAAY;AAC3C,WAAAC,CAAY,EAAE,kBAAkB;AAAA,EAAA,CACxC,GAED,GAAG,iDAAiD,MAAM;AACjD,IAAAT,EAAA,gBAAAC,EAACC,GAAU,EAAA,QAAAL,EAAgB,CAAA,CAAE;AAE9B,UAAAY,IAAeL,EAAO,YAAY,gBAAgB;AACjD,WAAAK,CAAY,EAAE,IAAI,kBAAkB;AAAA,EAAA,CAC5C,GAED,GAAG,uEAAuE,MAAM;AAE9E,IAAAT,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,QAAAL,GAAgB,cADb,gBACyC,CAAA,CAAE;AAE1D,UAAAM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,YAAYO,EAAO,KAAK;AAAA,EAAA,CAC3C,GAED,GAAG,kFAAkF,MAAM;AAClF,IAAAV,EAAA,gBAAAC,EAACC,GAAU,EAAA,QAAAL,EAAgB,CAAA,CAAE;AAE9B,UAAAM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,IAAI,YAAYO,EAAO,KAAK;AAAA,EAAA,CAC/C;AAWH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":";;;AAMA,SAAS,uBAAuB,MAAM;AACpC,QAAMA,IAAS;AAAA,IACb,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,IAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,EAAU,GAGlCC,IAAK,kBACLC,IAAO;AAEb,KAAG,+CAA+C,MAAM;AACtD,IAAAC,EAAO,gBAAAC,EAACC,GAAA,EAAU,IAAAJ,GAAQ,MAAAC,GAAY,QAAAF,GAAgB,CAAE;AAExD,UAAMM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,gBAAgB,MAAML,CAAE,GAC1C,OAAOK,CAAS,EAAE,gBAAgB,QAAQJ,CAAI,GAE9CF,EAAO,QAAQ,CAAC,EAAE,OAAAQ,GAAO,OAAAC,QAAY;AACnC,YAAMC,IAASH,EAAO,UAAUC,CAAK;AACrC,aAAOE,CAAM,EAAE,kBAAA,GACf,OAAOA,CAAM,EAAE,gBAAgB,SAASD,CAAK;AAAA,IAC/C,CAAC;AAAA,EACH,CAAC,GAED,GAAG,qCAAqC,MAAM;AAC5C,UAAME,IAAe;AACrB,IAAAR,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,GAAgB,cAAAW,EAAA,CAA4B,CAAE;AAEhE,UAAMC,IAAeL,EAAO,UAAUI,CAAY;AAClD,WAAOC,CAAY,EAAE,kBAAA;AAAA,EACvB,CAAC,GAED,GAAG,iDAAiD,MAAM;AACxD,IAAAT,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,EAAA,CAAgB,CAAE;AAEpC,UAAMY,IAAeL,EAAO,YAAY,gBAAgB;AACxD,WAAOK,CAAY,EAAE,IAAI,kBAAA;AAAA,EAC3B,CAAC,GAED,GAAG,uEAAuE,MAAM;AAE9E,IAAAT,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,GAAgB,cADb,gBACa,CAA4B,CAAE;AAEhE,UAAMM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,YAAYO,EAAO,KAAK;AAAA,EAC5C,CAAC,GAED,GAAG,kFAAkF,MAAM;AACzF,IAAAV,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,EAAA,CAAgB,CAAE;AAEpC,UAAMM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,IAAI,YAAYO,EAAO,KAAK;AAAA,EAChD,CAAC;AAWH,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"qRA2CaA,EAA8CC,GAAoB,CACvE,KAAA,CACJ,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaF,EAAU,CAAA,EAAK,GAC5B,SAAAG,EACA,QAAAC,EACA,WAAAC,CAAA,EACEV,EAEEW,EACJC,GAEQ,MAAM,QAAQA,CAAK,GAAKA,EAAM,QAAY,CAACP,GAAWO,EAI9D,OAAAC,EAAAA,IAACC,EAAAA,IAAI,CAAA,QAAS,OACZ,SAAAD,EAAA,IAACE,EAAA,WAAA,CACC,QAAAd,EACA,KAAAC,EACA,aAAAE,EACA,OAAQ,CAAC,CAAE,MAAAY,EAAO,WAAAC,KACfC,OAAAA,OAAAA,EAAAA,KAAAC,EAAA,YAAA,CAAY,MAAOF,EAAW,QAC7B,SAAA,CAAAJ,EAAA,IAACO,EAAA,OAAA,CACE,GAAGJ,EACJ,SAAU,CAACK,EAAOC,IAAU,CACtB,CAACjB,GAAWgB,EAAM,OAAO,QAAU,GACrCL,EAAM,SAAS,MAAS,EAExBA,EAAM,SAASK,CAAK,EAEtBb,GAAA,MAAAA,EAAWa,EAAOC,EACpB,EACA,SAAUjB,EACV,KAAK,QACL,MAAOW,EAAM,OAAST,EACtB,aAAY,GACZ,WAAY,CAAE,GAAGG,CAAW,EAC5B,YAAa,IAAM,OACjB,MAAME,EAAQI,EAAM,MACpB,GAAIX,GAAW,MAAM,QAAQO,CAAK,GAChC,GAAIA,EAAM,OAKD,OAJQA,EAAM,IAClBW,UACC,OAAAC,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUF,CAAG,IAA7C,YAAAC,EAAgD,MACpD,EACc,KAAK,IAAI,UAGzBZ,IACC,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAE/C,OAAOY,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUb,CAAK,IAA/C,YAAAY,EACH,MAEN,OACGX,EAAA,IAAA,OAAA,CAAK,UAAWa,EAAO,YAAc,SAAYpB,EAAA,CAEtD,EACA,aACEO,EAAA,IAACc,EAAA,WAAA,CACC,GAAI,CACF,WAAYhB,EAAWK,EAAM,KAAK,EAAI,UAAY,QACpD,EACA,QAAUK,GAAU,CACZL,EAAA,SACJX,EAAU,CAAK,EAAAE,IAAe,GAAK,OAAYA,CACjD,EACAE,GAAA,MAAAA,EAAUY,EACZ,EAEA,eAACO,EAAAA,MAAM,CAAA,CAAA,CAAA,CACT,EAEF,GAAI,CACF,4BAA6B,CAC3B,QAASjB,EAAWK,EAAM,KAAK,EAAI,OAAS,EAC9C,EACA,oCAAqC,CACnC,MAAO,cACT,EACA,uBAAwB,CACtB,WAAY,0BACZ,aAAc,iBACd,SAAU,CACR,GAAI,OACJ,GAAI,UACN,EACA,YAAa,OACf,EACA,aAAc,gBAChB,EAEC,SAAAb,EAAQ,IAAK0B,UACXC,EAAS,SAAA,CAAA,MAAOD,EAAE,MAChB,SAAA,CAAA,IACAA,EAAE,MAAO,GAAA,CAFmB,EAAAA,EAAE,KAGjC,CACD,CAAA,CACH,EACChB,EAAA,IAAAkB,EAAA,eAAA,CAAgB,UAAWP,EAAAP,EAAA,QAAA,YAAAO,EAAO,OAAQ,CAAA,CAAA,CAC7C,CAAA,EAAA,CAAA,EAGN,CAEJ"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"qRA2CaA,EAA8CC,GAAoB,CAC7E,KAAM,CACJ,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaF,EAAU,CAAA,EAAK,GAC5B,SAAAG,EACA,QAAAC,EACA,WAAAC,CAAA,EACEV,EAEEW,EACJC,GAEQ,MAAM,QAAQA,CAAK,GAAKA,EAAM,QAAY,CAACP,GAAWO,EAGhE,OACEC,EAAAA,IAACC,EAAAA,IAAA,CAAI,QAAS,OACZ,SAAAD,EAAAA,IAACE,EAAAA,WAAA,CACC,QAAAd,EACA,KAAAC,EACA,aAAAE,EACA,OAAQ,CAAC,CAAE,MAAAY,EAAO,WAAAC,YAChBC,OAAAA,EAAAA,KAACC,EAAAA,YAAA,CAAY,MAAOF,EAAW,QAC7B,SAAA,CAAAJ,EAAAA,IAACO,EAAAA,OAAA,CACE,GAAGJ,EACJ,SAAU,CAACK,EAAOC,IAAU,CACtB,CAACjB,GAAWgB,EAAM,OAAO,QAAU,GACrCL,EAAM,SAAS,MAAS,EAExBA,EAAM,SAASK,CAAK,EAEtBb,GAAA,MAAAA,EAAWa,EAAOC,EACpB,EACA,SAAUjB,EACV,KAAK,QACL,MAAOW,EAAM,OAAST,EACtB,aAAY,GACZ,WAAY,CAAE,GAAGG,CAAA,EACjB,YAAa,IAAM,OACjB,MAAME,EAAQI,EAAM,MACpB,GAAIX,GAAW,MAAM,QAAQO,CAAK,GAChC,GAAIA,EAAM,OAKR,OAJeA,EAAM,IAClBW,UACC,OAAAC,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUF,CAAG,IAA7C,YAAAC,EAAgD,MAAA,EAEtC,KAAK,IAAI,UAGzBZ,IACC,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAE/C,OAAOY,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUb,CAAK,IAA/C,YAAAY,EACH,MAEN,OACEX,EAAAA,IAAC,OAAA,CAAK,UAAWa,EAAO,YAAc,SAAApB,EAAY,CAEtD,EACA,aACEO,EAAAA,IAACc,EAAAA,WAAA,CACC,GAAI,CACF,WAAYhB,EAAWK,EAAM,KAAK,EAAI,UAAY,QAAA,EAEpD,QAAUK,GAAU,CAClBL,EAAM,SACJX,EAAU,CAAA,EAAKE,IAAe,GAAK,OAAYA,CAAA,EAEjDE,GAAA,MAAAA,EAAUY,EACZ,EAEA,eAACO,EAAAA,MAAA,CAAA,CAAM,CAAA,CAAA,EAGX,GAAI,CACF,4BAA6B,CAC3B,QAASjB,EAAWK,EAAM,KAAK,EAAI,OAAS,EAAA,EAE9C,oCAAqC,CACnC,MAAO,cAAA,EAET,uBAAwB,CACtB,WAAY,0BACZ,aAAc,iBACd,SAAU,CACR,GAAI,OACJ,GAAI,UAAA,EAEN,YAAa,OAAA,EAEf,aAAc,gBAAA,EAGf,SAAAb,EAAQ,IAAK0B,UACXC,EAAAA,SAAA,CAAS,MAAOD,EAAE,MAChB,SAAA,CAAA,IACAA,EAAE,MAAO,GAAA,CAAA,EAFmBA,EAAE,KAGjC,CACD,CAAA,CAAA,EAEHhB,EAAAA,IAACkB,EAAAA,eAAA,CAAgB,UAAAP,EAAAP,EAAW,QAAX,YAAAO,EAAkB,OAAA,CAAQ,CAAA,CAAA,CAC7C,EAAA,CAAA,EAGN,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const u=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs"),p=require("react-hook-form"),d=require("./index.cjs.js");describe("SelectBoxController component",()=>{it("renders select box with options and correct default value",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n="Select an option",t=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],c=["option2"];e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:t,defaultValue:c,isMulti:!0,placeholder:n})),c.forEach(o=>{const a=t.find(x=>x.value===o);a&&expect(e.screen.getByText(a.label)).toBeInTheDocument()})}),it("renders select box with options and correct default value for single select",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],t="option2";e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:n,defaultValue:t,isMulti:!1}));const i=n.find(o=>o.value===t);if(i){const o=e.screen.getByText(i.label);expect(o).toBeInTheDocument()}})});
1
+ "use strict";const u=require("react/jsx-runtime"),e=require("../../react.esm-BcRJ42eI.cjs"),p=require("react-hook-form"),d=require("./index.cjs.js");describe("SelectBoxController component",()=>{it("renders select box with options and correct default value",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n="Select an option",t=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],c=["option2"];e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:t,defaultValue:c,isMulti:!0,placeholder:n})),c.forEach(o=>{const a=t.find(x=>x.value===o);a&&expect(e.screen.getByText(a.label)).toBeInTheDocument()})}),it("renders select box with options and correct default value for single select",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],t="option2";e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:n,defaultValue:t,isMulti:!1}));const i=n.find(o=>o.value===t);if(i){const o=e.screen.getByText(i.label);expect(o).toBeInTheDocument()}})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":"qJAKA,SAAS,gCAAiC,IAAM,CAC9C,GAAG,4DAA6D,IAAM,CACpE,KAAM,CAAE,OAAAA,CAAO,EAAIC,aAAW,IAAMC,WAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXC,EAAc,mBACdC,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,CACxC,EACMC,EAAe,CAAC,SAAS,EAG/BC,EAAA,OACEC,EAAA,IAACC,EAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,GASZ,YAAAF,CAAA,CAAA,CAEJ,EAGaE,EAAA,QAASI,GAAU,CAC9B,MAAMC,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUF,CAAK,EACpDC,GACF,OAAOE,SAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAkB,CAC3D,CACD,CAAA,CACF,EAED,GAAG,8EAA+E,IAAM,CACtF,KAAM,CAAE,OAAAZ,CAAO,EAAIC,aAAW,IAAMC,WAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXE,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,CACxC,EACMC,EAAe,UAGrBC,EAAA,OACEC,EAAA,IAACC,EAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,EAQZ,CAAA,CAEJ,EAGA,MAAMK,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUN,CAAY,EAC/D,GAAIK,EAAQ,CAEV,MAAMG,EAAiBD,EAAA,OAAO,UAAUF,EAAO,KAAK,EAC7C,OAAAG,CAAc,EAAE,kBAAkB,CAAA,CAC3C,CACD,CACH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":"qJAKA,SAAS,gCAAiC,IAAM,CAC9C,GAAG,4DAA6D,IAAM,CACpE,KAAM,CAAE,OAAAA,CAAA,EAAWC,aAAW,IAAMC,EAAAA,SAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXC,EAAc,mBACdC,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,CAAU,EAElCC,EAAe,CAAC,SAAS,EAG/BC,EAAAA,OACEC,EAAAA,IAACC,EAAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,GASZ,YAAAF,CAAA,CAAA,CACF,EAIFE,EAAa,QAASI,GAAU,CAC9B,MAAMC,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUF,CAAK,EACpDC,GACF,OAAOE,EAAAA,OAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAA,CAE3C,CAAC,CACH,CAAC,EAED,GAAG,8EAA+E,IAAM,CACtF,KAAM,CAAE,OAAAZ,CAAA,EAAWC,aAAW,IAAMC,EAAAA,SAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXE,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,CAAU,EAElCC,EAAe,UAGrBC,EAAAA,OACEC,EAAAA,IAACC,EAAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,EAQZ,CAAA,CACF,EAIF,MAAMK,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUN,CAAY,EAC/D,GAAIK,EAAQ,CAEV,MAAMG,EAAiBD,EAAAA,OAAO,UAAUF,EAAO,KAAK,EACpD,OAAOG,CAAc,EAAE,kBAAA,CACzB,CACF,CAAC,CACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { a as p, r as u, s as d } from "../../react.esm-2FJSSo-S.js";
2
+ import { a as p, r as u, s as d } from "../../react.esm-DVhZgPrH.js";
3
3
  import { useForm as m } from "react-hook-form";
4
4
  import { SelectBoxController as f } from "./index.es.js";
5
5
  describe("SelectBoxController component", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":";;;;AAKA,SAAS,iCAAiC,MAAM;AAC9C,KAAG,6DAA6D,MAAM;AACpE,UAAM,EAAE,QAAAA,EAAO,IAAIC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXC,IAAc,oBACdC,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,IACxC,GACMC,IAAe,CAAC,SAAS;AAG/B,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,UASZ,aAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ,GAGaE,EAAA,QAAQ,CAACI,MAAU;AAC9B,YAAMC,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUF,CAAK;AACxD,MAAIC,KACF,OAAOE,EAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAkB;AAAA,IAC3D,CACD;AAAA,EAAA,CACF,GAED,GAAG,+EAA+E,MAAM;AACtF,UAAM,EAAE,QAAAZ,EAAO,IAAIC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXE,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,IACxC,GACMC,IAAe;AAGrB,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,QAQZ;AAAA,MAAA;AAAA,IAEJ;AAGA,UAAMK,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUN,CAAY;AAC/D,QAAIK,GAAQ;AAEV,YAAMG,IAAiBD,EAAO,UAAUF,EAAO,KAAK;AAC7C,aAAAG,CAAc,EAAE,kBAAkB;AAAA,IAAA;AAAA,EAC3C,CACD;AACH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":";;;;AAKA,SAAS,iCAAiC,MAAM;AAC9C,KAAG,6DAA6D,MAAM;AACpE,UAAM,EAAE,QAAAA,EAAA,IAAWC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXC,IAAc,oBACdC,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,IAAU,GAElCC,IAAe,CAAC,SAAS;AAG/B,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,UASZ,aAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GAIFE,EAAa,QAAQ,CAACI,MAAU;AAC9B,YAAMC,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUF,CAAK;AACxD,MAAIC,KACF,OAAOE,EAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAA;AAAA,IAE3C,CAAC;AAAA,EACH,CAAC,GAED,GAAG,+EAA+E,MAAM;AACtF,UAAM,EAAE,QAAAZ,EAAA,IAAWC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXE,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,IAAU,GAElCC,IAAe;AAGrB,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,QAQZ;AAAA,MAAA;AAAA,IACF;AAIF,UAAMK,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUN,CAAY;AAC/D,QAAIK,GAAQ;AAEV,YAAMG,IAAiBD,EAAO,UAAUF,EAAO,KAAK;AACpD,aAAOG,CAAc,EAAE,kBAAA;AAAA,IACzB;AAAA,EACF,CAAC;AACH,CAAC;"}