@jigowatts/jigowatts-ui 2.1.2 → 2.3.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.
- package/README.md +28 -0
- package/dist/assets/index11.css +1 -1
- package/dist/assets/index17.css +1 -1
- package/dist/assets/index19.css +1 -1
- package/dist/assets/index2.css +1 -1
- package/dist/assets/index20.css +1 -1
- package/dist/assets/index21.css +1 -1
- package/dist/assets/index25.css +1 -1
- package/dist/assets/index28.css +1 -1
- package/dist/assets/index33.css +1 -1
- package/dist/assets/index4.css +1 -1
- package/dist/assets/index6.css +1 -1
- package/dist/components/Button/index.cjs.js +1 -1
- package/dist/components/Button/index.cjs.js.map +1 -1
- package/dist/components/Button/index.d.ts +2 -22
- package/dist/components/Button/index.es.js +7 -13
- package/dist/components/Button/index.es.js.map +1 -1
- package/dist/components/ErrorMessage/index.cjs.js +1 -1
- package/dist/components/ErrorMessage/index.es.js +2 -2
- package/dist/components/Input/index.cjs.js +1 -1
- package/dist/components/Input/index.es.js +17 -17
- package/dist/components/InputController/index.cjs.js +1 -1
- package/dist/components/InputController/index.cjs.js.map +1 -1
- package/dist/components/InputController/index.es.js +44 -43
- package/dist/components/InputController/index.es.js.map +1 -1
- package/dist/components/Label/index.cjs.js +1 -1
- package/dist/components/Label/index.es.js +1 -1
- package/dist/components/LabeledContent/index.cjs.js +1 -1
- package/dist/components/LabeledContent/index.es.js +6 -6
- package/dist/components/LoadingOverlay/index.cjs.js +1 -1
- package/dist/components/LoadingOverlay/index.cjs.js.map +1 -1
- package/dist/components/LoadingOverlay/index.es.js +10 -4
- package/dist/components/LoadingOverlay/index.es.js.map +1 -1
- package/dist/components/PageSizeSelector/index.cjs.js +1 -1
- package/dist/components/PageSizeSelector/index.es.js +1 -1
- package/dist/components/Pagination/index.cjs.js +2 -2
- package/dist/components/Pagination/index.es.js +15 -15
- package/dist/components/PasswordInputController/index.cjs.js +1 -1
- package/dist/components/PasswordInputController/index.cjs.js.map +1 -1
- package/dist/components/PasswordInputController/index.es.js +25 -25
- package/dist/components/PasswordInputController/index.es.js.map +1 -1
- package/dist/components/RadioButton/index.cjs.js +1 -1
- package/dist/components/RadioButton/index.es.js +1 -1
- package/dist/components/RadioButton/index.test.cjs.js +1 -1
- package/dist/components/RadioButton/index.test.es.js +1 -1
- package/dist/components/ScrollableDialog/index.cjs.js +1 -1
- package/dist/components/ScrollableDialog/index.cjs.js.map +1 -1
- package/dist/components/ScrollableDialog/index.es.js +12 -12
- package/dist/components/ScrollableDialog/index.es.js.map +1 -1
- package/dist/components/SearchForm/index.cjs.js +1 -1
- package/dist/components/SearchForm/index.cjs.js.map +1 -1
- package/dist/components/SearchForm/index.es.js +37 -43
- package/dist/components/SearchForm/index.es.js.map +1 -1
- package/dist/components/SelectBox/index.cjs.js +1 -1
- package/dist/components/SelectBox/index.es.js +1 -1
- package/dist/components/SelectBox/index.test.cjs.js +1 -1
- package/dist/components/SelectBox/index.test.es.js +1 -1
- package/dist/components/SelectBoxController/index.cjs.js +1 -1
- package/dist/components/SelectBoxController/index.cjs.js.map +1 -1
- package/dist/components/SelectBoxController/index.es.js +24 -24
- package/dist/components/SelectBoxController/index.es.js.map +1 -1
- package/dist/components/SideMenu/index.cjs.js +1 -1
- package/dist/components/SideMenu/index.es.js +28 -28
- package/dist/components/SubMenu/index.test.cjs.js +1 -1
- package/dist/components/SubMenu/index.test.cjs.js.map +1 -1
- package/dist/components/SubMenu/index.test.es.js +13 -13
- package/dist/components/SubMenu/index.test.es.js.map +1 -1
- package/dist/components/Tabs/index.cjs.js +1 -1
- package/dist/components/Tabs/index.cjs.js.map +1 -1
- package/dist/components/Tabs/index.es.js +16 -16
- package/dist/components/Tabs/index.es.js.map +1 -1
- package/dist/components/Textarea/index.cjs.js +1 -1
- package/dist/components/Textarea/index.es.js +8 -8
- package/dist/components/TwoFaDialog/index.cjs.js +3 -3
- package/dist/components/TwoFaDialog/index.cjs.js.map +1 -1
- package/dist/components/TwoFaDialog/index.es.js +139 -139
- package/dist/components/TwoFaDialog/index.es.js.map +1 -1
- package/dist/components/TwoFaLabel/index.cjs.js +1 -1
- package/dist/components/TwoFaLabel/index.cjs.js.map +1 -1
- package/dist/components/TwoFaLabel/index.es.js +32 -20
- package/dist/components/TwoFaLabel/index.es.js.map +1 -1
- package/dist/{index-CogWL0bN.js → index-CqVxO31c.js} +10 -10
- package/dist/{index-CogWL0bN.js.map → index-CqVxO31c.js.map} +1 -1
- package/dist/index-DNu4-rkL.cjs +2 -0
- package/dist/{index-SHLzSoKB.cjs.map → index-DNu4-rkL.cjs.map} +1 -1
- package/dist/{index-BM3CSrls.cjs → index-c8cvlwzF.cjs} +2 -2
- package/dist/{index-BM3CSrls.cjs.map → index-c8cvlwzF.cjs.map} +1 -1
- package/dist/index-omG0Vz2u.js +51 -0
- package/dist/{index-D7VNQwOv.js.map → index-omG0Vz2u.js.map} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +82 -76
- package/dist/index.es.js.map +1 -1
- package/dist/theme/index.cjs.js +2 -0
- package/dist/theme/index.cjs.js.map +1 -0
- package/dist/theme/index.d.ts +86 -0
- package/dist/theme/index.es.js +123 -0
- package/dist/theme/index.es.js.map +1 -0
- package/dist/theme/index.test.cjs.js +2 -0
- package/dist/theme/index.test.cjs.js.map +1 -0
- package/dist/theme/index.test.d.ts +1 -0
- package/dist/theme/index.test.es.js +41 -0
- package/dist/theme/index.test.es.js.map +1 -0
- package/dist/theme/themeStoryUtils.cjs.js +54 -0
- package/dist/theme/themeStoryUtils.cjs.js.map +1 -0
- package/dist/theme/themeStoryUtils.d.ts +195 -0
- package/dist/theme/themeStoryUtils.es.js +172 -0
- package/dist/theme/themeStoryUtils.es.js.map +1 -0
- package/package.json +14 -9
- package/dist/index-D7VNQwOv.js +0 -51
- package/dist/index-SHLzSoKB.cjs +0 -2
|
@@ -1,66 +1,60 @@
|
|
|
1
|
-
import { jsxs as o, jsx as
|
|
2
|
-
import { ExpandMore as
|
|
3
|
-
import { Accordion as
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { jsxs as o, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { ExpandMore as _, Search as h } from "@mui/icons-material";
|
|
3
|
+
import { Accordion as p, AccordionSummary as v, AccordionDetails as B } from "@mui/material";
|
|
4
|
+
import { Button as r } from "../Button/index.es.js";
|
|
5
|
+
import { FlexButtons as f } from "../FlexButtons/index.es.js";
|
|
6
|
+
import '../../assets/index6.css';const j = "_container_vj5gz_1", g = "_header_vj5gz_6", x = "_mainContent_vj5gz_19", z = "_searchForm_vj5gz_27", N = "_inputItems_vj5gz_33", b = "_clearButton_vj5gz_39", F = "_submitButton_vj5gz_47", n = {
|
|
7
|
+
container: j,
|
|
8
|
+
header: g,
|
|
9
|
+
mainContent: x,
|
|
10
|
+
searchForm: z,
|
|
11
|
+
inputItems: N,
|
|
12
|
+
clearButton: b,
|
|
13
|
+
submitButton: F
|
|
14
|
+
}, D = ({
|
|
12
15
|
headerTitle: a,
|
|
13
16
|
children: c,
|
|
14
17
|
defaultExpanded: s,
|
|
15
18
|
handleSubmit: i,
|
|
16
19
|
onSubmitSearch: m,
|
|
17
|
-
onClickClear:
|
|
20
|
+
onClickClear: e
|
|
18
21
|
}) => {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
m(
|
|
22
|
+
const l = () => {
|
|
23
|
+
e && e();
|
|
24
|
+
}, u = i((d) => {
|
|
25
|
+
m(d);
|
|
23
26
|
});
|
|
24
|
-
return /* @__PURE__ */ o(
|
|
25
|
-
/* @__PURE__ */
|
|
26
|
-
|
|
27
|
+
return /* @__PURE__ */ o(p, { defaultExpanded: s, className: n.container, children: [
|
|
28
|
+
/* @__PURE__ */ t(
|
|
29
|
+
v,
|
|
27
30
|
{
|
|
28
|
-
className:
|
|
31
|
+
className: n.header,
|
|
29
32
|
"aria-controls": "panel-content",
|
|
30
|
-
expandIcon: /* @__PURE__ */
|
|
33
|
+
expandIcon: /* @__PURE__ */ t(_, {}),
|
|
31
34
|
children: a || "絞り込み"
|
|
32
35
|
}
|
|
33
36
|
),
|
|
34
|
-
/* @__PURE__ */
|
|
35
|
-
/* @__PURE__ */
|
|
36
|
-
/* @__PURE__ */ o(
|
|
37
|
-
/* @__PURE__ */
|
|
37
|
+
/* @__PURE__ */ t(B, { className: n.mainContent, children: /* @__PURE__ */ o("form", { className: n.searchForm, onSubmit: u, children: [
|
|
38
|
+
/* @__PURE__ */ t("div", { className: n.inputItems, children: c }),
|
|
39
|
+
/* @__PURE__ */ o(f, { position: "flex-end", children: [
|
|
40
|
+
/* @__PURE__ */ t(
|
|
38
41
|
r,
|
|
39
42
|
{
|
|
40
|
-
onClick:
|
|
43
|
+
onClick: l,
|
|
41
44
|
variant: "outlined",
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
background: "white",
|
|
45
|
-
color: "#6672e8",
|
|
46
|
-
borderBlockColor: "#6672e8",
|
|
47
|
-
width: "128px"
|
|
48
|
-
},
|
|
45
|
+
color: "primary",
|
|
46
|
+
className: n.clearButton,
|
|
49
47
|
children: "クリア"
|
|
50
48
|
}
|
|
51
49
|
),
|
|
52
|
-
/* @__PURE__ */
|
|
50
|
+
/* @__PURE__ */ t(
|
|
53
51
|
r,
|
|
54
52
|
{
|
|
55
53
|
type: "submit",
|
|
56
54
|
variant: "contained",
|
|
57
|
-
startIcon: /* @__PURE__ */
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
color: "white",
|
|
61
|
-
":hover": { background: "#6672e8" },
|
|
62
|
-
width: "128px"
|
|
63
|
-
},
|
|
55
|
+
startIcon: /* @__PURE__ */ t(h, {}),
|
|
56
|
+
color: "primary",
|
|
57
|
+
className: n.submitButton,
|
|
64
58
|
children: "検索"
|
|
65
59
|
}
|
|
66
60
|
)
|
|
@@ -69,7 +63,7 @@ import '../../assets/index6.css';const F = "_container_89suu_1", I = "_header_89
|
|
|
69
63
|
] });
|
|
70
64
|
};
|
|
71
65
|
export {
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
D as SearchForm,
|
|
67
|
+
D as default
|
|
74
68
|
};
|
|
75
69
|
//# sourceMappingURL=index.es.js.map
|
|
@@ -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
|
|
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} from \"@mui/material\";\nimport { type FieldValues, type useForm } from \"react-hook-form\";\n\nimport Button from \"../Button\";\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 color=\"primary\"\n className={styles.clearButton}\n >\n クリア\n </Button>\n <Button\n type=\"submit\"\n variant=\"contained\"\n startIcon={<Search />}\n color=\"primary\"\n className={styles.submitButton}\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,OAAM;AAAA,YACN,WAAWK,EAAO;AAAA,YACnB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGD,gBAAAC;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,6BAAYC,GAAA,EAAO;AAAA,YACnB,OAAM;AAAA,YACN,WAAWP,EAAO;AAAA,YACnB,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";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("classnames");const e=require("../../index-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("classnames");const e=require("../../index-DNu4-rkL.cjs");exports.SelectBox=e.SelectBox;exports.default=e.SelectBox;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),o=require("../../index-
|
|
1
|
+
"use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),o=require("../../index-DNu4-rkL.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,6 +1,6 @@
|
|
|
1
1
|
import { jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import { r as n, s as t } from "../../react.esm-BBESb8eI.js";
|
|
3
|
-
import { s as p, S as c } from "../../index-
|
|
3
|
+
import { s as p, S as c } from "../../index-omG0Vz2u.js";
|
|
4
4
|
describe("SelectBox component", () => {
|
|
5
5
|
const o = [
|
|
6
6
|
{ label: "Option 1", value: "option1" },
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('../../assets/index5.css');const l=require("react/jsx-runtime"),f=require("@mui/icons-material"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('../../assets/index5.css');const l=require("react/jsx-runtime"),f=require("@mui/icons-material"),o=require("@mui/material"),A=require("react-hook-form"),B="_placeholder_egyvt_6",_={placeholder:B},x=g=>{const{control:v,name:y,options:a,defaultValue:j,isMulti:t,placeholder:b,emptyValue:i=t?[]:"",onChange:s,onClear:u,inputProps:M}=g,c=r=>Array.isArray(r)&&r.length||!t&&r;return l.jsx(o.Box,{display:"grid",children:l.jsx(A.Controller,{control:v,name:y,defaultValue:j,render:({field:r,fieldState:p})=>{var d;return l.jsxs(o.FormControl,{error:p.invalid,children:[l.jsx(o.Select,{...r,onChange:(e,n)=>{!t&&e.target.value===""?r.onChange(void 0):r.onChange(e),s==null||s(e,n)},multiple:t,size:"small",value:r.value??i,displayEmpty:!0,inputProps:{...M},renderValue:()=>{var n;const e=r.value;if(t&&Array.isArray(e)){if(e.length)return e.map(C=>{var h;return(h=a.find(S=>S.value===C))==null?void 0:h.label}).join(", ")}else if(e&&(typeof e=="string"||typeof e=="number"))return(n=a.find(m=>m.value===e))==null?void 0:n.label;return l.jsx("span",{className:_.placeholder,children:b})},endAdornment:l.jsx(o.IconButton,{sx:{visibility:c(r.value)?"visible":"hidden"},onClick:e=>{r.onChange(t?[]:i===""?void 0:i),u==null||u(e)},children:l.jsx(f.Clear,{})}),sx:{"& .MuiSelect-iconOutlined":{display:c(r.value)?"none":""},"&.Mui-focused .MuiIconButton-root":{color:"var(--jigowatts-color-primary, #6672e8)"},"& .MuiSelect-select ":{whiteSpace:"break-spaces !important",paddingRight:"4px !important",fontSize:{xs:"1rem",sm:"0.875rem"},paddingLeft:"9.5px"},paddingRight:"4px !important"},children:a.map(e=>l.jsxs(o.MenuItem,{value:e.value,children:[" ",e.label," "]},e.value))}),l.jsx(o.FormHelperText,{children:(d=p.error)==null?void 0:d.message})]})}})})};exports.SelectBoxController=x;exports.default=x;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -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
|
|
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: \"var(--jigowatts-color-primary, #6672e8)\",\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,yCAAA,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,57 +1,57 @@
|
|
|
1
1
|
import { jsx as l, jsxs as h } from "react/jsx-runtime";
|
|
2
2
|
import { Clear as A } from "@mui/icons-material";
|
|
3
|
-
import { Box as S, FormControl as
|
|
3
|
+
import { Box as S, FormControl as j, Select as B, MenuItem as V, IconButton as I, FormHelperText as _ } from "@mui/material";
|
|
4
4
|
import { Controller as k } from "react-hook-form";
|
|
5
|
-
import '../../assets/index5.css';const
|
|
6
|
-
placeholder:
|
|
5
|
+
import '../../assets/index5.css';const w = "_placeholder_egyvt_6", z = {
|
|
6
|
+
placeholder: w
|
|
7
7
|
}, H = (g) => {
|
|
8
8
|
const {
|
|
9
|
-
control:
|
|
10
|
-
name:
|
|
11
|
-
options:
|
|
9
|
+
control: v,
|
|
10
|
+
name: y,
|
|
11
|
+
options: n,
|
|
12
12
|
defaultValue: x,
|
|
13
|
-
isMulti:
|
|
13
|
+
isMulti: o,
|
|
14
14
|
placeholder: b,
|
|
15
|
-
emptyValue: a =
|
|
15
|
+
emptyValue: a = o ? [] : "",
|
|
16
16
|
onChange: i,
|
|
17
17
|
onClear: s,
|
|
18
18
|
inputProps: f
|
|
19
|
-
} = g, p = (r) => Array.isArray(r) && r.length || !
|
|
19
|
+
} = g, p = (r) => Array.isArray(r) && r.length || !o && r;
|
|
20
20
|
return /* @__PURE__ */ l(S, { display: "grid", children: /* @__PURE__ */ l(
|
|
21
21
|
k,
|
|
22
22
|
{
|
|
23
|
-
control:
|
|
24
|
-
name:
|
|
23
|
+
control: v,
|
|
24
|
+
name: y,
|
|
25
25
|
defaultValue: x,
|
|
26
26
|
render: ({ field: r, fieldState: u }) => {
|
|
27
27
|
var c;
|
|
28
|
-
return /* @__PURE__ */ h(
|
|
28
|
+
return /* @__PURE__ */ h(j, { error: u.invalid, children: [
|
|
29
29
|
/* @__PURE__ */ l(
|
|
30
|
-
|
|
30
|
+
B,
|
|
31
31
|
{
|
|
32
32
|
...r,
|
|
33
|
-
onChange: (e,
|
|
34
|
-
!
|
|
33
|
+
onChange: (e, t) => {
|
|
34
|
+
!o && e.target.value === "" ? r.onChange(void 0) : r.onChange(e), i == null || i(e, t);
|
|
35
35
|
},
|
|
36
|
-
multiple:
|
|
36
|
+
multiple: o,
|
|
37
37
|
size: "small",
|
|
38
38
|
value: r.value ?? a,
|
|
39
39
|
displayEmpty: !0,
|
|
40
40
|
inputProps: { ...f },
|
|
41
41
|
renderValue: () => {
|
|
42
|
-
var
|
|
42
|
+
var t;
|
|
43
43
|
const e = r.value;
|
|
44
|
-
if (
|
|
44
|
+
if (o && Array.isArray(e)) {
|
|
45
45
|
if (e.length)
|
|
46
46
|
return e.map(
|
|
47
47
|
(C) => {
|
|
48
48
|
var m;
|
|
49
|
-
return (m =
|
|
49
|
+
return (m = n.find((M) => M.value === C)) == null ? void 0 : m.label;
|
|
50
50
|
}
|
|
51
51
|
).join(", ");
|
|
52
52
|
} else if (e && (typeof e == "string" || typeof e == "number"))
|
|
53
|
-
return (
|
|
54
|
-
return /* @__PURE__ */ l("span", { className:
|
|
53
|
+
return (t = n.find((d) => d.value === e)) == null ? void 0 : t.label;
|
|
54
|
+
return /* @__PURE__ */ l("span", { className: z.placeholder, children: b });
|
|
55
55
|
},
|
|
56
56
|
endAdornment: /* @__PURE__ */ l(
|
|
57
57
|
I,
|
|
@@ -61,7 +61,7 @@ import '../../assets/index5.css';const z = "_placeholder_egyvt_6", F = {
|
|
|
61
61
|
},
|
|
62
62
|
onClick: (e) => {
|
|
63
63
|
r.onChange(
|
|
64
|
-
|
|
64
|
+
o ? [] : a === "" ? void 0 : a
|
|
65
65
|
), s == null || s(e);
|
|
66
66
|
},
|
|
67
67
|
children: /* @__PURE__ */ l(A, {})
|
|
@@ -72,7 +72,7 @@ import '../../assets/index5.css';const z = "_placeholder_egyvt_6", F = {
|
|
|
72
72
|
display: p(r.value) ? "none" : ""
|
|
73
73
|
},
|
|
74
74
|
"&.Mui-focused .MuiIconButton-root": {
|
|
75
|
-
color: "primary
|
|
75
|
+
color: "var(--jigowatts-color-primary, #6672e8)"
|
|
76
76
|
},
|
|
77
77
|
"& .MuiSelect-select ": {
|
|
78
78
|
whiteSpace: "break-spaces !important",
|
|
@@ -85,7 +85,7 @@ import '../../assets/index5.css';const z = "_placeholder_egyvt_6", F = {
|
|
|
85
85
|
},
|
|
86
86
|
paddingRight: "4px !important"
|
|
87
87
|
},
|
|
88
|
-
children:
|
|
88
|
+
children: n.map((e) => /* @__PURE__ */ h(V, { value: e.value, children: [
|
|
89
89
|
" ",
|
|
90
90
|
e.label,
|
|
91
91
|
" "
|
|
@@ -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
|
|
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: \"var(--jigowatts-color-primary, #6672e8)\",\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":";;;;;;GA2CaA,IAAsB,CAAwBC,MAAoB;AAC7E,QAAM;AAAA,IACJ,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC,IAAaF,IAAU,CAAA,IAAK;AAAA,IAC5B,UAAAG;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACEV,GAEEW,IAAa,CACjBC,MAEQ,MAAM,QAAQA,CAAK,KAAKA,EAAM,UAAY,CAACP,KAAWO;AAGhE,SACE,gBAAAC,EAACC,GAAA,EAAI,SAAS,QACZ,UAAA,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,SAAAd;AAAA,MACA,MAAAC;AAAA,MACA,cAAAE;AAAA,MACA,QAAQ,CAAC,EAAE,OAAAY,GAAO,YAAAC;;AAChB,+BAAAC,EAACC,GAAA,EAAY,OAAOF,EAAW,SAC7B,UAAA;AAAA,UAAA,gBAAAJ;AAAA,YAACO;AAAA,YAAA;AAAA,cACE,GAAGJ;AAAA,cACJ,UAAU,CAACK,GAAOC,MAAU;AAC1B,gBAAI,CAACjB,KAAWgB,EAAM,OAAO,UAAU,KACrCL,EAAM,SAAS,MAAS,IAExBA,EAAM,SAASK,CAAK,GAEtBb,KAAA,QAAAA,EAAWa,GAAOC;AAAA,cACpB;AAAA,cACA,UAAUjB;AAAA,cACV,MAAK;AAAA,cACL,OAAOW,EAAM,SAAST;AAAA,cACtB,cAAY;AAAA,cACZ,YAAY,EAAE,GAAGG,EAAA;AAAA,cACjB,aAAa,MAAM;;AACjB,sBAAME,IAAQI,EAAM;AACpB,oBAAIX,KAAW,MAAM,QAAQO,CAAK;AAChC,sBAAIA,EAAM;AAKR,2BAJeA,EAAM;AAAA,sBACnB,CAACW;;AACC,gCAAAC,IAAArB,EAAQ,KAAK,CAACsB,MAAWA,EAAO,UAAUF,CAAG,MAA7C,gBAAAC,EAAgD;AAAA;AAAA,oBAAA,EAEtC,KAAK,IAAI;AAAA,2BAGzBZ,MACC,OAAOA,KAAU,YAAY,OAAOA,KAAU;AAE/C,0BAAOY,IAAArB,EAAQ,KAAK,CAACsB,MAAWA,EAAO,UAAUb,CAAK,MAA/C,gBAAAY,EACH;AAEN,uBACE,gBAAAX,EAAC,QAAA,EAAK,WAAWa,EAAO,aAAc,UAAApB,GAAY;AAAA,cAEtD;AAAA,cACA,cACE,gBAAAO;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,oBACF,YAAYhB,EAAWK,EAAM,KAAK,IAAI,YAAY;AAAA,kBAAA;AAAA,kBAEpD,SAAS,CAACK,MAAU;AAClB,oBAAAL,EAAM;AAAA,sBACJX,IAAU,CAAA,IAAKE,MAAe,KAAK,SAAYA;AAAA,oBAAA,GAEjDE,KAAA,QAAAA,EAAUY;AAAA,kBACZ;AAAA,kBAEA,4BAACO,GAAA,CAAA,CAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGX,IAAI;AAAA,gBACF,6BAA6B;AAAA,kBAC3B,SAASjB,EAAWK,EAAM,KAAK,IAAI,SAAS;AAAA,gBAAA;AAAA,gBAE9C,qCAAqC;AAAA,kBACnC,OAAO;AAAA,gBAAA;AAAA,gBAET,wBAAwB;AAAA,kBACtB,YAAY;AAAA,kBACZ,cAAc;AAAA,kBACd,UAAU;AAAA,oBACR,IAAI;AAAA,oBACJ,IAAI;AAAA,kBAAA;AAAA,kBAEN,aAAa;AAAA,gBAAA;AAAA,gBAEf,cAAc;AAAA,cAAA;AAAA,cAGf,UAAAb,EAAQ,IAAI,CAAC0B,wBACXC,GAAA,EAAS,OAAOD,EAAE,OAChB,UAAA;AAAA,gBAAA;AAAA,gBACAA,EAAE;AAAA,gBAAO;AAAA,cAAA,EAAA,GAFmBA,EAAE,KAGjC,CACD;AAAA,YAAA;AAAA,UAAA;AAAA,UAEH,gBAAAhB,EAACkB,GAAA,EAAgB,WAAAP,IAAAP,EAAW,UAAX,gBAAAO,EAAkB,QAAA,CAAQ;AAAA,QAAA,EAAA,CAC7C;AAAA;AAAA,IAAA;AAAA,EAAA,GAGN;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('../../assets/index4.css');const s=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('../../assets/index4.css');const s=require("react/jsx-runtime"),h=require("react"),y=require("next/image"),m=require("next/link"),I=require("@mui/material"),k=require("classnames"),M="_sideMenu_i4h48_1",S="_logo_i4h48_7",D="_logoImage_i4h48_12",N="_menus_i4h48_16",T="_menuTitle_i4h48_23",q="_menuItem_i4h48_31",w="_selected_i4h48_45",t={sideMenu:M,logo:S,logoImage:D,menus:N,menuTitle:T,menuItem:q,selected:w},_=235,g=f=>{const{isOpen:c,isMobile:n,onClose:a,menus:x,logoSrc:p,topPageUrl:b="/",isStorybook:j=!1,currentPath:o}=f,d=(o==null?void 0:o.split("/")[1])??null,l=d===""?"/":"/"+d,[u,v]=h.useState(l);h.useEffect(()=>{v(l)},[l,o]);const r=e=>{n&&a(),j&&e.preventDefault()};return s.jsx(I.Drawer,{variant:n?"temporary":"permanent",open:n?c:void 0,onClose:a,sx:{width:_,flexShrink:0,"& .MuiDrawer-paper":{width:_,boxSizing:"border-box"},display:c?"block":"none"},children:s.jsxs("div",{className:t.sideMenu,children:[s.jsx("div",{className:t.logo,children:s.jsx(m,{href:b,style:{textDecoration:"none"},onClick:e=>r(e),children:s.jsx(y,{src:p,alt:"logo",width:202,height:56,className:t.logoImage,priority:!0})})}),s.jsx("div",{className:t.menus,children:x.map(e=>e.isTitle?s.jsx("div",{className:t.menuTitle,children:e.label},e.label):s.jsx(m,{href:e.href??"",style:{textDecoration:"none"},role:"menuitem","aria-current":u===e.href?"page":void 0,children:s.jsxs("div",{onClick:i=>r(i),className:k(t.menuItem,{[t.selected]:u===e.href}),tabIndex:0,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&r(i)},children:[e.icon,s.jsx("div",{children:e.label})]})},e.label))})]})})};exports.SideMenu=g;exports.default=g;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { jsx as o, jsxs as
|
|
1
|
+
import { jsx as o, jsxs as h } from "react/jsx-runtime";
|
|
2
2
|
import { useState as v, useEffect as x } from "react";
|
|
3
3
|
import y from "next/image";
|
|
4
|
-
import
|
|
4
|
+
import f from "next/link";
|
|
5
5
|
import { Drawer as D } from "@mui/material";
|
|
6
|
-
import
|
|
7
|
-
import '../../assets/index4.css';const
|
|
8
|
-
sideMenu:
|
|
9
|
-
logo:
|
|
10
|
-
logoImage:
|
|
11
|
-
menus:
|
|
12
|
-
menuTitle:
|
|
13
|
-
menuItem:
|
|
14
|
-
selected:
|
|
15
|
-
}, _ = 235,
|
|
6
|
+
import M from "classnames";
|
|
7
|
+
import '../../assets/index4.css';const N = "_sideMenu_i4h48_1", S = "_logo_i4h48_7", w = "_logoImage_i4h48_12", T = "_menus_i4h48_16", C = "_menuTitle_i4h48_23", E = "_menuItem_i4h48_31", H = "_selected_i4h48_45", i = {
|
|
8
|
+
sideMenu: N,
|
|
9
|
+
logo: S,
|
|
10
|
+
logoImage: w,
|
|
11
|
+
menus: T,
|
|
12
|
+
menuTitle: C,
|
|
13
|
+
menuItem: E,
|
|
14
|
+
selected: H
|
|
15
|
+
}, _ = 235, K = (p) => {
|
|
16
16
|
const {
|
|
17
17
|
isOpen: c,
|
|
18
|
-
isMobile:
|
|
18
|
+
isMobile: s,
|
|
19
19
|
onClose: a,
|
|
20
20
|
menus: g,
|
|
21
21
|
logoSrc: u,
|
|
@@ -27,13 +27,13 @@ import '../../assets/index4.css';const M = "_sideMenu_1qefs_1", N = "_logo_1qefs
|
|
|
27
27
|
k(n);
|
|
28
28
|
}, [n, l]);
|
|
29
29
|
const r = (e) => {
|
|
30
|
-
|
|
30
|
+
s && a(), I && e.preventDefault();
|
|
31
31
|
};
|
|
32
32
|
return /* @__PURE__ */ o(
|
|
33
33
|
D,
|
|
34
34
|
{
|
|
35
|
-
variant:
|
|
36
|
-
open:
|
|
35
|
+
variant: s ? "temporary" : "permanent",
|
|
36
|
+
open: s ? c : void 0,
|
|
37
37
|
onClose: a,
|
|
38
38
|
sx: {
|
|
39
39
|
width: _,
|
|
@@ -44,9 +44,9 @@ import '../../assets/index4.css';const M = "_sideMenu_1qefs_1", N = "_logo_1qefs
|
|
|
44
44
|
},
|
|
45
45
|
display: c ? "block" : "none"
|
|
46
46
|
},
|
|
47
|
-
children: /* @__PURE__ */
|
|
48
|
-
/* @__PURE__ */ o("div", { className:
|
|
49
|
-
|
|
47
|
+
children: /* @__PURE__ */ h("div", { className: i.sideMenu, children: [
|
|
48
|
+
/* @__PURE__ */ o("div", { className: i.logo, children: /* @__PURE__ */ o(
|
|
49
|
+
f,
|
|
50
50
|
{
|
|
51
51
|
href: b,
|
|
52
52
|
style: { textDecoration: "none" },
|
|
@@ -58,26 +58,26 @@ import '../../assets/index4.css';const M = "_sideMenu_1qefs_1", N = "_logo_1qefs
|
|
|
58
58
|
alt: "logo",
|
|
59
59
|
width: 202,
|
|
60
60
|
height: 56,
|
|
61
|
-
className:
|
|
61
|
+
className: i.logoImage,
|
|
62
62
|
priority: !0
|
|
63
63
|
}
|
|
64
64
|
)
|
|
65
65
|
}
|
|
66
66
|
) }),
|
|
67
|
-
/* @__PURE__ */ o("div", { className:
|
|
68
|
-
(e) => e.isTitle ? /* @__PURE__ */ o("div", { className:
|
|
69
|
-
|
|
67
|
+
/* @__PURE__ */ o("div", { className: i.menus, children: g.map(
|
|
68
|
+
(e) => e.isTitle ? /* @__PURE__ */ o("div", { className: i.menuTitle, children: e.label }, e.label) : /* @__PURE__ */ o(
|
|
69
|
+
f,
|
|
70
70
|
{
|
|
71
71
|
href: e.href ?? "",
|
|
72
72
|
style: { textDecoration: "none" },
|
|
73
73
|
role: "menuitem",
|
|
74
74
|
"aria-current": d === e.href ? "page" : void 0,
|
|
75
|
-
children: /* @__PURE__ */
|
|
75
|
+
children: /* @__PURE__ */ h(
|
|
76
76
|
"div",
|
|
77
77
|
{
|
|
78
78
|
onClick: (t) => r(t),
|
|
79
|
-
className:
|
|
80
|
-
[
|
|
79
|
+
className: M(i.menuItem, {
|
|
80
|
+
[i.selected]: d === e.href
|
|
81
81
|
}),
|
|
82
82
|
tabIndex: 0,
|
|
83
83
|
onKeyDown: (t) => {
|
|
@@ -98,7 +98,7 @@ import '../../assets/index4.css';const M = "_sideMenu_1qefs_1", N = "_logo_1qefs
|
|
|
98
98
|
);
|
|
99
99
|
};
|
|
100
100
|
export {
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
K as SideMenu,
|
|
102
|
+
K as default
|
|
103
103
|
};
|
|
104
104
|
//# sourceMappingURL=index.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),x=require("./index.cjs.js");describe("SubMenu component",()=>{test("renders SubMenu component with given menu items and button element",()=>{const c=jest.fn(),o=jest.fn(),
|
|
1
|
+
"use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),x=require("./index.cjs.js");describe("SubMenu component",()=>{test("renders SubMenu component with given menu items and button element",()=>{const c=jest.fn(),o=jest.fn(),s=jest.fn(),u=[{icon:n.jsx("span",{children:"Icon 1"}),title:"Menu 1",onClick:c,closeWhenClick:!0},{icon:n.jsx("span",{children:"Icon 2"}),title:"Menu 2",onClick:o},{icon:n.jsx("span",{children:"Icon 3"}),title:"Menu 3",onClick:s,closeWhenClick:!1}],i=n.jsx("span",{children:"Menu Button"});e.render(n.jsx(x.SubMenu,{menuItems:u,buttonElement:i}));const t=e.screen.getByText("Menu Button");e.fireEvent.click(t);const l=e.screen.getByText("Menu 1");e.fireEvent.click(l),expect(c).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 1")).toBeNull()},0),e.fireEvent.click(t);const r=e.screen.getByText("Menu 2");e.fireEvent.click(r),expect(o).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 2")).toBeNull()},0),e.fireEvent.click(t);const m=e.screen.getByText("Menu 3");e.fireEvent.click(m),expect(s).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 3")).not.toBeNull()},0)})});
|
|
2
2
|
//# sourceMappingURL=index.test.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SubMenu/index.test.tsx"],"sourcesContent":["import { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { SubMenu } from \".\";\n\ndescribe(\"SubMenu component\", () => {\n test(\"renders SubMenu component with given menu items and button element\", () => {\n const mockOnClickMenu1 = jest.fn();\n const mockOnClickMenu2 = jest.fn();\n const mockOnClickMenu3 = jest.fn();\n\n const menuItems = [\n {\n icon: <span>Icon 1</span>,\n title: \"Menu 1\",\n onClick: mockOnClickMenu1,\n closeWhenClick: true,\n },\n {\n icon: <span>Icon 2</span>,\n title: \"Menu 2\",\n onClick: mockOnClickMenu2,\n },\n {\n icon: <span>Icon 3</span>,\n title: \"Menu 3\",\n onClick: mockOnClickMenu3,\n closeWhenClick: false,\n },\n ];\n\n const buttonElement = <
|
|
1
|
+
{"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SubMenu/index.test.tsx"],"sourcesContent":["import { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { SubMenu } from \".\";\n\ndescribe(\"SubMenu component\", () => {\n test(\"renders SubMenu component with given menu items and button element\", () => {\n const mockOnClickMenu1 = jest.fn();\n const mockOnClickMenu2 = jest.fn();\n const mockOnClickMenu3 = jest.fn();\n\n const menuItems = [\n {\n icon: <span>Icon 1</span>,\n title: \"Menu 1\",\n onClick: mockOnClickMenu1,\n closeWhenClick: true,\n },\n {\n icon: <span>Icon 2</span>,\n title: \"Menu 2\",\n onClick: mockOnClickMenu2,\n },\n {\n icon: <span>Icon 3</span>,\n title: \"Menu 3\",\n onClick: mockOnClickMenu3,\n closeWhenClick: false,\n },\n ];\n\n const buttonElement = <span>Menu Button</span>;\n\n render(<SubMenu menuItems={menuItems} buttonElement={buttonElement} />);\n\n // Menu 1のテスト menuクリック時消えていること\n const button = screen.getByText(\"Menu Button\");\n fireEvent.click(button);\n const menuItem1 = screen.getByText(\"Menu 1\");\n fireEvent.click(menuItem1);\n expect(mockOnClickMenu1).toHaveBeenCalled();\n setTimeout(() => {\n expect(screen.queryByText(\"Menu 1\")).toBeNull();\n }, 0);\n\n // Menu 2のテスト menuクリック時消えていること\n fireEvent.click(button);\n const menuItem2 = screen.getByText(\"Menu 2\");\n fireEvent.click(menuItem2);\n expect(mockOnClickMenu2).toHaveBeenCalled();\n setTimeout(() => {\n expect(screen.queryByText(\"Menu 2\")).toBeNull();\n }, 0);\n\n // Menu 3のテスト menuクリック時消えていないこと\n fireEvent.click(button);\n const menuItem3 = screen.getByText(\"Menu 3\");\n fireEvent.click(menuItem3);\n expect(mockOnClickMenu3).toHaveBeenCalled();\n setTimeout(() => {\n expect(screen.queryByText(\"Menu 3\")).not.toBeNull();\n }, 0);\n });\n});\n"],"names":["mockOnClickMenu1","mockOnClickMenu2","mockOnClickMenu3","menuItems","jsx","buttonElement","render","SubMenu","button","screen","fireEvent","menuItem1","menuItem2","menuItem3"],"mappings":"wHAIA,SAAS,oBAAqB,IAAM,CAClC,KAAK,qEAAsE,IAAM,CAC/E,MAAMA,EAAmB,KAAK,GAAA,EACxBC,EAAmB,KAAK,GAAA,EACxBC,EAAmB,KAAK,GAAA,EAExBC,EAAY,CAChB,CACE,KAAMC,EAAAA,IAAC,OAAA,CAAK,SAAA,QAAA,CAAM,EAClB,MAAO,SACP,QAASJ,EACT,eAAgB,EAAA,EAElB,CACE,KAAMI,EAAAA,IAAC,OAAA,CAAK,SAAA,QAAA,CAAM,EAClB,MAAO,SACP,QAASH,CAAA,EAEX,CACE,KAAMG,EAAAA,IAAC,OAAA,CAAK,SAAA,QAAA,CAAM,EAClB,MAAO,SACP,QAASF,EACT,eAAgB,EAAA,CAClB,EAGIG,EAAgBD,EAAAA,IAAC,OAAA,CAAK,SAAA,aAAA,CAAW,EAEvCE,EAAAA,OAAOF,EAAAA,IAACG,EAAAA,QAAA,CAAQ,UAAAJ,EAAsB,cAAAE,CAAA,CAA8B,CAAE,EAGtE,MAAMG,EAASC,EAAAA,OAAO,UAAU,aAAa,EAC7CC,EAAAA,UAAU,MAAMF,CAAM,EACtB,MAAMG,EAAYF,EAAAA,OAAO,UAAU,QAAQ,EAC3CC,EAAAA,UAAU,MAAMC,CAAS,EACzB,OAAOX,CAAgB,EAAE,iBAAA,EACzB,WAAW,IAAM,CACf,OAAOS,EAAAA,OAAO,YAAY,QAAQ,CAAC,EAAE,SAAA,CACvC,EAAG,CAAC,EAGJC,EAAAA,UAAU,MAAMF,CAAM,EACtB,MAAMI,EAAYH,EAAAA,OAAO,UAAU,QAAQ,EAC3CC,EAAAA,UAAU,MAAME,CAAS,EACzB,OAAOX,CAAgB,EAAE,iBAAA,EACzB,WAAW,IAAM,CACf,OAAOQ,EAAAA,OAAO,YAAY,QAAQ,CAAC,EAAE,SAAA,CACvC,EAAG,CAAC,EAGJC,EAAAA,UAAU,MAAMF,CAAM,EACtB,MAAMK,EAAYJ,EAAAA,OAAO,UAAU,QAAQ,EAC3CC,EAAAA,UAAU,MAAMG,CAAS,EACzB,OAAOX,CAAgB,EAAE,iBAAA,EACzB,WAAW,IAAM,CACf,OAAOO,EAAAA,OAAO,YAAY,QAAQ,CAAC,EAAE,IAAI,SAAA,CAC3C,EAAG,CAAC,CACN,CAAC,CACH,CAAC"}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { r, s as e, f as
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { r, s as e, f as n } from "../../react.esm-BBESb8eI.js";
|
|
3
3
|
import { SubMenu as k } from "./index.es.js";
|
|
4
4
|
describe("SubMenu component", () => {
|
|
5
5
|
test("renders SubMenu component with given menu items and button element", () => {
|
|
6
6
|
const o = jest.fn(), u = jest.fn(), l = jest.fn();
|
|
7
|
-
r(/* @__PURE__ */
|
|
7
|
+
r(/* @__PURE__ */ t(k, { menuItems: [
|
|
8
8
|
{
|
|
9
|
-
icon: /* @__PURE__ */
|
|
9
|
+
icon: /* @__PURE__ */ t("span", { children: "Icon 1" }),
|
|
10
10
|
title: "Menu 1",
|
|
11
11
|
onClick: o,
|
|
12
12
|
closeWhenClick: !0
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
icon: /* @__PURE__ */
|
|
15
|
+
icon: /* @__PURE__ */ t("span", { children: "Icon 2" }),
|
|
16
16
|
title: "Menu 2",
|
|
17
17
|
onClick: u
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
icon: /* @__PURE__ */
|
|
20
|
+
icon: /* @__PURE__ */ t("span", { children: "Icon 3" }),
|
|
21
21
|
title: "Menu 3",
|
|
22
22
|
onClick: l,
|
|
23
23
|
closeWhenClick: !1
|
|
24
24
|
}
|
|
25
|
-
], buttonElement: /* @__PURE__ */
|
|
25
|
+
], buttonElement: /* @__PURE__ */ t("span", { children: "Menu Button" }) }));
|
|
26
26
|
const c = e.getByText("Menu Button");
|
|
27
|
-
|
|
27
|
+
n.click(c);
|
|
28
28
|
const i = e.getByText("Menu 1");
|
|
29
|
-
|
|
29
|
+
n.click(i), expect(o).toHaveBeenCalled(), setTimeout(() => {
|
|
30
30
|
expect(e.queryByText("Menu 1")).toBeNull();
|
|
31
|
-
}, 0),
|
|
31
|
+
}, 0), n.click(c);
|
|
32
32
|
const s = e.getByText("Menu 2");
|
|
33
|
-
|
|
33
|
+
n.click(s), expect(u).toHaveBeenCalled(), setTimeout(() => {
|
|
34
34
|
expect(e.queryByText("Menu 2")).toBeNull();
|
|
35
|
-
}, 0),
|
|
35
|
+
}, 0), n.click(c);
|
|
36
36
|
const m = e.getByText("Menu 3");
|
|
37
|
-
|
|
37
|
+
n.click(m), expect(l).toHaveBeenCalled(), setTimeout(() => {
|
|
38
38
|
expect(e.queryByText("Menu 3")).not.toBeNull();
|
|
39
39
|
}, 0);
|
|
40
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.es.js","sources":["../../../src/components/SubMenu/index.test.tsx"],"sourcesContent":["import { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { SubMenu } from \".\";\n\ndescribe(\"SubMenu component\", () => {\n test(\"renders SubMenu component with given menu items and button element\", () => {\n const mockOnClickMenu1 = jest.fn();\n const mockOnClickMenu2 = jest.fn();\n const mockOnClickMenu3 = jest.fn();\n\n const menuItems = [\n {\n icon: <span>Icon 1</span>,\n title: \"Menu 1\",\n onClick: mockOnClickMenu1,\n closeWhenClick: true,\n },\n {\n icon: <span>Icon 2</span>,\n title: \"Menu 2\",\n onClick: mockOnClickMenu2,\n },\n {\n icon: <span>Icon 3</span>,\n title: \"Menu 3\",\n onClick: mockOnClickMenu3,\n closeWhenClick: false,\n },\n ];\n\n const buttonElement = <
|
|
1
|
+
{"version":3,"file":"index.test.es.js","sources":["../../../src/components/SubMenu/index.test.tsx"],"sourcesContent":["import { fireEvent, render, screen } from \"@testing-library/react\";\n\nimport { SubMenu } from \".\";\n\ndescribe(\"SubMenu component\", () => {\n test(\"renders SubMenu component with given menu items and button element\", () => {\n const mockOnClickMenu1 = jest.fn();\n const mockOnClickMenu2 = jest.fn();\n const mockOnClickMenu3 = jest.fn();\n\n const menuItems = [\n {\n icon: <span>Icon 1</span>,\n title: \"Menu 1\",\n onClick: mockOnClickMenu1,\n closeWhenClick: true,\n },\n {\n icon: <span>Icon 2</span>,\n title: \"Menu 2\",\n onClick: mockOnClickMenu2,\n },\n {\n icon: <span>Icon 3</span>,\n title: \"Menu 3\",\n onClick: mockOnClickMenu3,\n closeWhenClick: false,\n },\n ];\n\n const buttonElement = <span>Menu Button</span>;\n\n render(<SubMenu menuItems={menuItems} buttonElement={buttonElement} />);\n\n // Menu 1のテスト menuクリック時消えていること\n const button = screen.getByText(\"Menu Button\");\n fireEvent.click(button);\n const menuItem1 = screen.getByText(\"Menu 1\");\n fireEvent.click(menuItem1);\n expect(mockOnClickMenu1).toHaveBeenCalled();\n setTimeout(() => {\n expect(screen.queryByText(\"Menu 1\")).toBeNull();\n }, 0);\n\n // Menu 2のテスト menuクリック時消えていること\n fireEvent.click(button);\n const menuItem2 = screen.getByText(\"Menu 2\");\n fireEvent.click(menuItem2);\n expect(mockOnClickMenu2).toHaveBeenCalled();\n setTimeout(() => {\n expect(screen.queryByText(\"Menu 2\")).toBeNull();\n }, 0);\n\n // Menu 3のテスト menuクリック時消えていないこと\n fireEvent.click(button);\n const menuItem3 = screen.getByText(\"Menu 3\");\n fireEvent.click(menuItem3);\n expect(mockOnClickMenu3).toHaveBeenCalled();\n setTimeout(() => {\n expect(screen.queryByText(\"Menu 3\")).not.toBeNull();\n }, 0);\n });\n});\n"],"names":["mockOnClickMenu1","mockOnClickMenu2","mockOnClickMenu3","render","jsx","SubMenu","button","screen","fireEvent","menuItem1","menuItem2","menuItem3"],"mappings":";;;AAIA,SAAS,qBAAqB,MAAM;AAClC,OAAK,sEAAsE,MAAM;AAC/E,UAAMA,IAAmB,KAAK,GAAA,GACxBC,IAAmB,KAAK,GAAA,GACxBC,IAAmB,KAAK,GAAA;AAwB9B,IAAAC,EAAO,gBAAAC,EAACC,GAAA,EAAQ,WAtBE;AAAA,MAChB;AAAA,QACE,MAAM,gBAAAD,EAAC,QAAA,EAAK,UAAA,SAAA,CAAM;AAAA,QAClB,OAAO;AAAA,QACP,SAASJ;AAAA,QACT,gBAAgB;AAAA,MAAA;AAAA,MAElB;AAAA,QACE,MAAM,gBAAAI,EAAC,QAAA,EAAK,UAAA,SAAA,CAAM;AAAA,QAClB,OAAO;AAAA,QACP,SAASH;AAAA,MAAA;AAAA,MAEX;AAAA,QACE,MAAM,gBAAAG,EAAC,QAAA,EAAK,UAAA,SAAA,CAAM;AAAA,QAClB,OAAO;AAAA,QACP,SAASF;AAAA,QACT,gBAAgB;AAAA,MAAA;AAAA,IAClB,GAKoC,eAFhB,gBAAAE,EAAC,QAAA,EAAK,UAAA,cAAA,CAAW,EAED,CAA8B,CAAE;AAGtE,UAAME,IAASC,EAAO,UAAU,aAAa;AAC7C,IAAAC,EAAU,MAAMF,CAAM;AACtB,UAAMG,IAAYF,EAAO,UAAU,QAAQ;AAC3C,IAAAC,EAAU,MAAMC,CAAS,GACzB,OAAOT,CAAgB,EAAE,iBAAA,GACzB,WAAW,MAAM;AACf,aAAOO,EAAO,YAAY,QAAQ,CAAC,EAAE,SAAA;AAAA,IACvC,GAAG,CAAC,GAGJC,EAAU,MAAMF,CAAM;AACtB,UAAMI,IAAYH,EAAO,UAAU,QAAQ;AAC3C,IAAAC,EAAU,MAAME,CAAS,GACzB,OAAOT,CAAgB,EAAE,iBAAA,GACzB,WAAW,MAAM;AACf,aAAOM,EAAO,YAAY,QAAQ,CAAC,EAAE,SAAA;AAAA,IACvC,GAAG,CAAC,GAGJC,EAAU,MAAMF,CAAM;AACtB,UAAMK,IAAYJ,EAAO,UAAU,QAAQ;AAC3C,IAAAC,EAAU,MAAMG,CAAS,GACzB,OAAOT,CAAgB,EAAE,iBAAA,GACzB,WAAW,MAAM;AACf,aAAOK,EAAO,YAAY,QAAQ,CAAC,EAAE,IAAI,SAAA;AAAA,IAC3C,GAAG,CAAC;AAAA,EACN,CAAC;AACH,CAAC;"}
|