@jigowatts/jigowatts-ui 1.1.2 → 1.1.3

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 (210) hide show
  1. package/dist/AccordionSummary-B4zooGpd.js +1 -0
  2. package/dist/AccordionSummary-B4zooGpd.js.map +1 -0
  3. package/dist/ButtonBase-pxtIu13Q.js +1 -0
  4. package/dist/ButtonBase-pxtIu13Q.js.map +1 -0
  5. package/dist/DateTimePicker-DJSOr5wM.js +1 -0
  6. package/dist/DateTimePicker-DJSOr5wM.js.map +1 -0
  7. package/dist/ListContext-DOVwHqy-.js +1 -0
  8. package/dist/ListContext-DOVwHqy-.js.map +1 -0
  9. package/dist/MenuItem-yBaT3_db.js +1 -0
  10. package/dist/MenuItem-yBaT3_db.js.map +1 -0
  11. package/dist/Paper-COvYqxZa.js +1 -0
  12. package/dist/Paper-COvYqxZa.js.map +1 -0
  13. package/dist/Tabs-D3lJRumZ.js +1 -0
  14. package/dist/Tabs-D3lJRumZ.js.map +1 -0
  15. package/dist/_commonjsHelpers-CT_km90n.js +1 -0
  16. package/dist/_commonjsHelpers-CT_km90n.js.map +1 -0
  17. package/dist/assets/index27.css +1 -1
  18. package/dist/browser-DxfwT6rn.js +1 -0
  19. package/dist/browser-DxfwT6rn.js.map +1 -0
  20. package/dist/components/Button/index.js +1 -0
  21. package/dist/components/Button/index.js.map +1 -0
  22. package/dist/components/Button/index.test.js +1 -0
  23. package/dist/components/Button/index.test.js.map +1 -0
  24. package/dist/components/Card/index.js +1 -0
  25. package/dist/components/Card/index.js.map +1 -0
  26. package/dist/components/Card/index.test.js +1 -0
  27. package/dist/components/Card/index.test.js.map +1 -0
  28. package/dist/components/CustomLink/index.js +1 -0
  29. package/dist/components/CustomLink/index.js.map +1 -0
  30. package/dist/components/CustomLink/index.test.js +1 -0
  31. package/dist/components/CustomLink/index.test.js.map +1 -0
  32. package/dist/components/DataTable/index.js +1 -0
  33. package/dist/components/DataTable/index.js.map +1 -0
  34. package/dist/components/DataTable/index.test.js +1 -0
  35. package/dist/components/DataTable/index.test.js.map +1 -0
  36. package/dist/components/DatePickerController/index.js +1 -0
  37. package/dist/components/DatePickerController/index.js.map +1 -0
  38. package/dist/components/DatePickerController/index.test.js +1 -0
  39. package/dist/components/DatePickerController/index.test.js.map +1 -0
  40. package/dist/components/ErrorMessage/index.js +1 -0
  41. package/dist/components/ErrorMessage/index.js.map +1 -0
  42. package/dist/components/ErrorMessage/index.test.js +1 -0
  43. package/dist/components/ErrorMessage/index.test.js.map +1 -0
  44. package/dist/components/EvseStateLabel/index.js +1 -0
  45. package/dist/components/EvseStateLabel/index.js.map +1 -0
  46. package/dist/components/FlexButtons/index.js +1 -0
  47. package/dist/components/FlexButtons/index.js.map +1 -0
  48. package/dist/components/Form/index.js +1 -0
  49. package/dist/components/Form/index.js.map +1 -0
  50. package/dist/components/Form/index.test.js +1 -0
  51. package/dist/components/Form/index.test.js.map +1 -0
  52. package/dist/components/FormItem/index.js +1 -0
  53. package/dist/components/FormItem/index.js.map +1 -0
  54. package/dist/components/FormItem/index.test.js +1 -0
  55. package/dist/components/FormItem/index.test.js.map +1 -0
  56. package/dist/components/FormTitle/index.js +1 -0
  57. package/dist/components/FormTitle/index.js.map +1 -0
  58. package/dist/components/FormTitle/index.test.js +1 -0
  59. package/dist/components/FormTitle/index.test.js.map +1 -0
  60. package/dist/components/Input/index.js +1 -0
  61. package/dist/components/Input/index.js.map +1 -0
  62. package/dist/components/Input/index.test.js +1 -0
  63. package/dist/components/Input/index.test.js.map +1 -0
  64. package/dist/components/InputController/index.js +1 -0
  65. package/dist/components/InputController/index.js.map +1 -0
  66. package/dist/components/InputController/index.test.js +1 -0
  67. package/dist/components/InputController/index.test.js.map +1 -0
  68. package/dist/components/InputGroup/index.js +1 -0
  69. package/dist/components/InputGroup/index.js.map +1 -0
  70. package/dist/components/InputGroup/index.test.js +1 -0
  71. package/dist/components/InputGroup/index.test.js.map +1 -0
  72. package/dist/components/Label/index.js +1 -0
  73. package/dist/components/Label/index.js.map +1 -0
  74. package/dist/components/Label/index.test.js +1 -0
  75. package/dist/components/Label/index.test.js.map +1 -0
  76. package/dist/components/LabeledContent/index.js +1 -0
  77. package/dist/components/LabeledContent/index.js.map +1 -0
  78. package/dist/components/LabeledContent/index.test.js +1 -0
  79. package/dist/components/LabeledContent/index.test.js.map +1 -0
  80. package/dist/components/LoadingOverlay/index.js +1 -0
  81. package/dist/components/LoadingOverlay/index.js.map +1 -0
  82. package/dist/components/LoadingOverlay/index.test.js +1 -0
  83. package/dist/components/LoadingOverlay/index.test.js.map +1 -0
  84. package/dist/components/Map/index.js +1 -0
  85. package/dist/components/Map/index.js.map +1 -0
  86. package/dist/components/MaxWidthContainer/index.js +1 -0
  87. package/dist/components/MaxWidthContainer/index.js.map +1 -0
  88. package/dist/components/MaxWidthContainer/index.test.js +1 -0
  89. package/dist/components/MaxWidthContainer/index.test.js.map +1 -0
  90. package/dist/components/NumericFieldController/index.js +1 -0
  91. package/dist/components/NumericFieldController/index.js.map +1 -0
  92. package/dist/components/NumericFieldController/index.test.js +1 -0
  93. package/dist/components/NumericFieldController/index.test.js.map +1 -0
  94. package/dist/components/OfflineLabel/index.js +1 -0
  95. package/dist/components/OfflineLabel/index.js.map +1 -0
  96. package/dist/components/PageSizeSelector/index.js +1 -0
  97. package/dist/components/PageSizeSelector/index.js.map +1 -0
  98. package/dist/components/Pagination/index.js +1 -0
  99. package/dist/components/Pagination/index.js.map +1 -0
  100. package/dist/components/Pagination/index.test.js +1 -0
  101. package/dist/components/Pagination/index.test.js.map +1 -0
  102. package/dist/components/PasswordInputController/index.js +1 -0
  103. package/dist/components/PasswordInputController/index.js.map +1 -0
  104. package/dist/components/PasswordInputController/index.test.js +1 -0
  105. package/dist/components/PasswordInputController/index.test.js.map +1 -0
  106. package/dist/components/RadioButton/index.js +1 -0
  107. package/dist/components/RadioButton/index.js.map +1 -0
  108. package/dist/components/RadioButton/index.test.js +1 -0
  109. package/dist/components/RadioButton/index.test.js.map +1 -0
  110. package/dist/components/RadioGroupController/index.js +1 -0
  111. package/dist/components/RadioGroupController/index.js.map +1 -0
  112. package/dist/components/RadioGroupController/index.test.js +1 -0
  113. package/dist/components/RadioGroupController/index.test.js.map +1 -0
  114. package/dist/components/RangeDatePicker/index.js +1 -0
  115. package/dist/components/RangeDatePicker/index.js.map +1 -0
  116. package/dist/components/RangeDatePickerController/index.js +1 -0
  117. package/dist/components/RangeDatePickerController/index.js.map +1 -0
  118. package/dist/components/RangeDatePickerController/index.test.js +1 -0
  119. package/dist/components/RangeDatePickerController/index.test.js.map +1 -0
  120. package/dist/components/ReportCard/index.js +1 -0
  121. package/dist/components/ReportCard/index.js.map +1 -0
  122. package/dist/components/ReportCard/index.test.js +1 -0
  123. package/dist/components/ReportCard/index.test.js.map +1 -0
  124. package/dist/components/ReportChart/index.js +1 -0
  125. package/dist/components/ReportChart/index.js.map +1 -0
  126. package/dist/components/ScrollableDialog/index.js +1 -0
  127. package/dist/components/ScrollableDialog/index.js.map +1 -0
  128. package/dist/components/ScrollableDialog/index.test.js +1 -0
  129. package/dist/components/ScrollableDialog/index.test.js.map +1 -0
  130. package/dist/components/SearchForm/index.js +1 -0
  131. package/dist/components/SearchForm/index.js.map +1 -0
  132. package/dist/components/SelectBox/index.js +1 -0
  133. package/dist/components/SelectBox/index.js.map +1 -0
  134. package/dist/components/SelectBox/index.test.js +1 -0
  135. package/dist/components/SelectBox/index.test.js.map +1 -0
  136. package/dist/components/SelectBoxController/index.js +1 -0
  137. package/dist/components/SelectBoxController/index.js.map +1 -0
  138. package/dist/components/SelectBoxController/index.test.js +1 -0
  139. package/dist/components/SelectBoxController/index.test.js.map +1 -0
  140. package/dist/components/SideMenu/index.js +228 -226
  141. package/dist/components/SideMenu/index.js.map +1 -0
  142. package/dist/components/SideMenu/index.test.js +1 -0
  143. package/dist/components/SideMenu/index.test.js.map +1 -0
  144. package/dist/components/SubMenu/index.js +1 -0
  145. package/dist/components/SubMenu/index.js.map +1 -0
  146. package/dist/components/SubMenu/index.test.js +1 -0
  147. package/dist/components/SubMenu/index.test.js.map +1 -0
  148. package/dist/components/Tabs/index.js +1 -0
  149. package/dist/components/Tabs/index.js.map +1 -0
  150. package/dist/components/Tabs/index.test.js +1 -0
  151. package/dist/components/Tabs/index.test.js.map +1 -0
  152. package/dist/components/Textarea/index.js +1 -0
  153. package/dist/components/Textarea/index.js.map +1 -0
  154. package/dist/components/Textarea/index.test.js +1 -0
  155. package/dist/components/Textarea/index.test.js.map +1 -0
  156. package/dist/components/ToggleButton/index.js +1 -0
  157. package/dist/components/ToggleButton/index.js.map +1 -0
  158. package/dist/components/ToggleButton/index.test.js +1 -0
  159. package/dist/components/ToggleButton/index.test.js.map +1 -0
  160. package/dist/constants/datetime.js +1 -0
  161. package/dist/constants/datetime.js.map +1 -0
  162. package/dist/createSvgIcon-B53UOwxg.js +1 -0
  163. package/dist/createSvgIcon-B53UOwxg.js.map +1 -0
  164. package/dist/createSvgIcon-Dj8zNxRS.js +1 -0
  165. package/dist/createSvgIcon-Dj8zNxRS.js.map +1 -0
  166. package/dist/index-0O6z6pEj.js +1 -0
  167. package/dist/index-0O6z6pEj.js.map +1 -0
  168. package/dist/index-BLPOOjNr.js +1 -0
  169. package/dist/index-BLPOOjNr.js.map +1 -0
  170. package/dist/index-BqWHRIKL.js +1 -0
  171. package/dist/index-BqWHRIKL.js.map +1 -0
  172. package/dist/index-Bs3JCwgu.js +1 -0
  173. package/dist/index-Bs3JCwgu.js.map +1 -0
  174. package/dist/index-BzzM70NU.js +1 -0
  175. package/dist/index-BzzM70NU.js.map +1 -0
  176. package/dist/index-CICI7n5Y.js +1 -0
  177. package/dist/index-CICI7n5Y.js.map +1 -0
  178. package/dist/index-DWRHnq8_.js +1 -0
  179. package/dist/index-DWRHnq8_.js.map +1 -0
  180. package/dist/index-Di2gTfPF.js +1 -0
  181. package/dist/index-Di2gTfPF.js.map +1 -0
  182. package/dist/index-Dqxvyh3z.js +1 -0
  183. package/dist/index-Dqxvyh3z.js.map +1 -0
  184. package/dist/index-VF82hRp0.js +1 -0
  185. package/dist/index-VF82hRp0.js.map +1 -0
  186. package/dist/index-kvi6aotO.js +1 -0
  187. package/dist/index-kvi6aotO.js.map +1 -0
  188. package/dist/index.esm-ChwJSgnF.js +1 -0
  189. package/dist/index.esm-ChwJSgnF.js.map +1 -0
  190. package/dist/index.js +1 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/isEqual-BBhdD79C.js +1 -0
  193. package/dist/isEqual-BBhdD79C.js.map +1 -0
  194. package/dist/link-CjdKDftr.js +1 -0
  195. package/dist/link-CjdKDftr.js.map +1 -0
  196. package/dist/mergeSlotProps-J197zKan.js +1 -0
  197. package/dist/mergeSlotProps-J197zKan.js.map +1 -0
  198. package/dist/react.esm-C8amP77L.js +1 -0
  199. package/dist/react.esm-C8amP77L.js.map +1 -0
  200. package/dist/styled-CWju4EfZ.js +1 -0
  201. package/dist/styled-CWju4EfZ.js.map +1 -0
  202. package/dist/unsupportedProp-DZaWZqWQ.js +1 -0
  203. package/dist/unsupportedProp-DZaWZqWQ.js.map +1 -0
  204. package/dist/useControlled-BQCJRJNJ.js +1 -0
  205. package/dist/useControlled-BQCJRJNJ.js.map +1 -0
  206. package/dist/useIsFocusVisible-BxB-Hdhb.js +1 -0
  207. package/dist/useIsFocusVisible-BxB-Hdhb.js.map +1 -0
  208. package/dist/useSlotProps-Bh7akxXV.js +1 -0
  209. package/dist/useSlotProps-Bh7akxXV.js.map +1 -0
  210. package/package.json +1 -1
@@ -40,3 +40,4 @@ export {
40
40
  h as ScrollableDialog,
41
41
  h as default
42
42
  };
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.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,EACD,IAAAN;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,GAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzD;"}
@@ -57,3 +57,4 @@ describe("ScrollableDialog", () => {
57
57
  ).not.toBeInTheDocument(), a.click(n.getByText("Open!")), expect(n.getByText("This is a test dialog.")).toBeInTheDocument();
58
58
  });
59
59
  });
60
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.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,UAAC;AAAA,QAAA;AAAA,MACxB;AAAA,IAAA;AAGF,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;AACzB,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,MACjB;AAAA,IAAA;AAGF,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,YAAC;AAAA,UAAA;AAAA,QACxB;AAAA,MACF,EAAA,CAAA;AAAA,IAAA,KAGkB,CAAE,GAGxB;AAAA,MACEM,EAAO,YAAY,wBAAwB;AAAA,IAAA,EAC3C,IAAI,qBAGNC,EAAU,MAAMD,EAAO,UAAU,OAAO,CAAC,GAGzC,OAAOA,EAAO,UAAU,wBAAwB,CAAC,EAAE,kBAAkB;AAAA,EAAA,CACtE;AACH,CAAC;"}
@@ -84,3 +84,4 @@ export {
84
84
  L as SearchForm,
85
85
  L as default
86
86
  };
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/Search.js","../../../src/components/SearchForm/index.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"\n}), 'Search');","import { type ReactNode } from \"react\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport { Button } from \"@mui/material\";\nimport Accordion from \"@mui/material/Accordion\";\nimport AccordionDetails from \"@mui/material/AccordionDetails\";\nimport AccordionSummary from \"@mui/material/AccordionSummary\";\nimport { type FieldValues, type useForm } from \"react-hook-form\";\n\nimport { FlexButtons } from \"../FlexButtons\";\nimport styles from \"./index.module.scss\";\n\ntype Props = {\n headerTitle?: string;\n children: ReactNode;\n defaultExpanded?: boolean;\n handleSubmit: ReturnType<typeof useForm>[\"handleSubmit\"];\n onSubmitSearch: (data: FieldValues) => void;\n onClickClear?: () => void;\n};\n\nexport const SearchForm = ({\n headerTitle,\n children,\n defaultExpanded,\n handleSubmit,\n onSubmitSearch,\n onClickClear,\n}: Props) => {\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={<ExpandMoreIcon />}\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={<SearchIcon />}\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":["_interopRequireDefault","require$$0","Search","default_1","_createSvgIcon","require$$1","_jsxRuntime","require$$2","SearchForm","headerTitle","children","defaultExpanded","handleSubmit","onSubmitSearch","onClickClear","handleClear","handle","data","jsxs","Accordion","styles","jsx","AccordionSummary","ExpandMoreIcon","AccordionDetails","FlexButtons","Button","SearchIcon"],"mappings":";;;;;;YAGIA,IAAyBC;AAC7B,OAAO,eAAeC,GAAS,cAAc;AAAA,EAC3C,OAAO;AACT,CAAC;AACD,IAAeC,IAAAD,EAAA,UAAG,QACdE,IAAiBJ,EAAuBK,EAAA,CAAgC,GACxEC,IAAcC;AACHJ,IAAeD,EAAA,cAAOE,EAAe,6BAA2BE,EAAY,KAAK,QAAQ;AAAA,EACtG,GAAG;AACL,CAAC,GAAG,QAAQ;;;;;;;;;GCSCE,IAAa,CAAC;AAAA,EACzB,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AACF,MAAa;AACX,QAAMC,IAAc,MAAM;AACxB,IAAID,KACWA;EACf,GAGIE,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,GAAe,EAAA;AAAA,QAE3B,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,GAAW,EAAA;AAAA,YACvB,IAAI;AAAA,cACF,YAAY;AAAA,cACZ,OAAO;AAAA,cACP,UAAU,EAAE,YAAY,UAAU;AAAA,cAClC,OAAO;AAAA,YACT;AAAA,YACD,UAAA;AAAA,UAAA;AAAA,QAED;AAAA,MAAA,GACF;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;","x_google_ignoreList":[0]}
@@ -5,3 +5,4 @@ export {
5
5
  a as SelectBox,
6
6
  m as default
7
7
  };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -32,3 +32,4 @@ describe("SelectBox component", () => {
32
32
  expect(e).not.toHaveClass(p.error);
33
33
  });
34
34
  });
35
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.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,EAAA,GAGlCC,IAAK,kBACLC,IAAO;AAEb,KAAG,+CAA+C,MAAM;AACtD,IAAAC,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,IAAAJ,GAAQ,MAAAC,GAAY,QAAAF,EAAgB,CAAA,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,qBACf,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;EAAkB,CACxC,GAED,GAAG,iDAAiD,MAAM;AACjD,IAAAT,EAAA,gBAAAC,EAACC,GAAU,EAAA,QAAAL,EAAA,CAAgB,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,EAAA,CAAgB,CAAE;AAE9B,UAAAM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,IAAI,YAAYO,EAAO,KAAK;AAAA,EAAA,CAC/C;AAWH,CAAC;"}
@@ -85,3 +85,4 @@ export {
85
85
  N as SelectBoxController,
86
86
  N as default
87
87
  };
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import {\n FormControl,\n FormHelperText,\n IconButton,\n MenuItem,\n Select,\n} from \"@mui/material\";\nimport { SelectChangeEvent } from \"@mui/material/Select/SelectInput\";\nimport { ClearIcon } from \"@mui/x-date-pickers\";\nimport { Controller, type Control } 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 = {\n control: Control;\n name: string;\n options: SelectBoxOption[];\n defaultValue?: SelectBoxOption[\"value\"][] | (SelectBoxOption[\"value\"] | null);\n emptyValue?: [] | 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};\n\nexport const SelectBoxController = (props: Props) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue,\n onChange,\n onClear,\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 <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 field.onChange(event, child);\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? null}\n displayEmpty\n renderValue={(value) => {\n if (isMulti) {\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 (value) {\n return options.find((option) => option.value === value)?.label;\n }\n return <span className={styles.placeholder}>{placeholder}</span>;\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(isMulti ? [] : emptyValue);\n onClear?.(event);\n }}\n >\n <ClearIcon />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": { color: \"primary.main\" },\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 );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","existValue","value","jsx","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","ClearIcon","m","MenuItem","FormHelperText"],"mappings":";;;;;;GAiCaA,IAAsB,CAACC,MAAiB;AAC7C,QAAA;AAAA,IACJ,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,EACE,IAAAT,GAEEU,IAAa,CACjBC,MAEQ,MAAM,QAAQA,CAAK,KAAKA,EAAM,UAAY,CAACN,KAAWM;AAI9D,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAZ;AAAA,MACA,MAAAC;AAAA,MACA,cAAAE;AAAA,MACA,QAAQ,CAAC,EAAE,OAAAU,GAAO,YAAAC,QACf;;AAAA,+BAAAC,EAAAC,GAAA,EAAY,OAAOF,EAAW,SAC7B,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAACM;AAAA,YAAA;AAAA,cACE,GAAGJ;AAAA,cACJ,UAAU,CAACK,GAAOC,MAAU;AACpB,gBAAAN,EAAA,SAASK,GAAOC,CAAK,GAC3BZ,KAAA,QAAAA,EAAWW,GAAOC;AAAA,cACpB;AAAA,cACA,UAAUf;AAAA,cACV,MAAK;AAAA,cACL,OAAOS,EAAM,SAAS;AAAA,cACtB,cAAY;AAAA,cACZ,aAAa,CAACH,MAAU;;AACtB,oBAAIN;AACF,sBAAIM,KAAA,QAAAA,EAAO;AAKF,2BAJQA,EAAM;AAAA,sBACnB,CAACU;;AACC,gCAAAC,IAAAnB,EAAQ,KAAK,CAACoB,MAAWA,EAAO,UAAUF,CAAG,MAA7C,gBAAAC,EAAgD;AAAA;AAAA,oBAAA,EAEtC,KAAK,IAAI;AAAA,2BAEhBX;AACT,0BAAOW,IAAAnB,EAAQ,KAAK,CAACoB,MAAWA,EAAO,UAAUZ,CAAK,MAA/C,gBAAAW,EAAkD;AAE3D,uBAAQ,gBAAAV,EAAA,QAAA,EAAK,WAAWY,EAAO,aAAc,UAAYlB,EAAA,CAAA;AAAA,cAC3D;AAAA,cACA,cACE,gBAAAM;AAAA,gBAACa;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,oBACF,YAAYf,EAAWI,EAAM,KAAK,IAAI,YAAY;AAAA,kBACpD;AAAA,kBACA,SAAS,CAACK,MAAU;AAClB,oBAAAL,EAAM,SAAST,IAAU,CAAC,IAAIE,CAAU,GACxCE,KAAA,QAAAA,EAAUU;AAAA,kBACZ;AAAA,kBAEA,4BAACO,GAAU,EAAA;AAAA,gBAAA;AAAA,cACb;AAAA,cAEF,IAAI;AAAA,gBACF,6BAA6B;AAAA,kBAC3B,SAAShB,EAAWI,EAAM,KAAK,IAAI,SAAS;AAAA,gBAC9C;AAAA,gBACA,qCAAqC,EAAE,OAAO,eAAe;AAAA,cAC/D;AAAA,cAEC,UAAAX,EAAQ,IAAI,CAACwB,wBACXC,GAAS,EAAA,OAAOD,EAAE,OAChB,UAAA;AAAA,gBAAA;AAAA,gBACAA,EAAE;AAAA,gBAAO;AAAA,cAAA,KAFmBA,EAAE,KAGjC,CACD;AAAA,YAAA;AAAA,UACH;AAAA,UACC,gBAAAf,EAAAiB,GAAA,EAAgB,WAAWP,IAAAP,EAAA,UAAA,gBAAAO,EAAO,SAAQ;AAAA,QAAA,GAC7C;AAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -50,3 +50,4 @@ describe("SelectBoxController component", () => {
50
50
  }
51
51
  });
52
52
  });
53
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.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,EAAS,CAAA,GACvC,EAAE,SAAAC,EAAQ,IAAIH,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,IAAA,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,MACF;AAAA,IAAA,GAIWE,EAAA,QAAQ,CAACI,MAAU;AAC9B,YAAMC,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUF,CAAK;AACxD,MAAIC,KACF,OAAOE,EAAO,UAAUF,EAAO,KAAK,CAAC,EAAE;IACzC,CACD;AAAA,EAAA,CACF,GAED,GAAG,+EAA+E,MAAM;AACtF,UAAM,EAAE,QAAAZ,EAAO,IAAIC,EAAW,MAAMC,EAAS,CAAA,GACvC,EAAE,SAAAC,EAAQ,IAAIH,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,IAAA,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,MACF;AAAA,IAAA;AAIF,UAAMK,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUN,CAAY;AAC/D,QAAIK,GAAQ;AAEV,YAAMG,IAAiBD,EAAO,UAAUF,EAAO,KAAK;AAC7C,aAAAG,CAAc,EAAE;IACzB;AAAA,EAAA,CACD;AACH,CAAC;"}