@tipp/ui 2.1.18 → 2.1.19
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/dist/app/index.cjs.map +1 -1
- package/dist/app/index.js +56 -56
- package/dist/app/platform/coach-question-list.js +27 -27
- package/dist/app/platform/contents-card.js +27 -27
- package/dist/app/platform/curriculum-card.js +2 -2
- package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
- package/dist/app/platform/edit-coaching-time.js +44 -44
- package/dist/app/platform/edit-service-type.cjs.map +1 -1
- package/dist/app/platform/edit-service-type.js +44 -44
- package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
- package/dist/app/platform/goal-manage-card-edit.js +45 -45
- package/dist/app/platform/goal-manage-card-read.js +27 -27
- package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
- package/dist/app/platform/on-offline-radio-card.js +44 -44
- package/dist/app/platform/report-card.js +27 -27
- package/dist/app/platform/reservation-card.cjs.map +1 -1
- package/dist/app/platform/reservation-card.js +45 -45
- package/dist/app/platform/session-card.cjs.map +1 -1
- package/dist/app/platform/session-card.js +45 -45
- package/dist/app/platform/session-review-simple-read.js +27 -27
- package/dist/app/platform/userInfos/coaching-customer-info/index.js +29 -29
- package/dist/app/platform/userInfos/coaching-customer-info/large.js +27 -27
- package/dist/app/platform/userInfos/coaching-customer-info/medium.js +27 -27
- package/dist/app/platform/userInfos/coaching-customer-info/small.js +26 -26
- package/dist/app/platform/userInfos/session-user-info-detail.js +26 -26
- package/dist/app/platform/userInfos/utils.js +26 -26
- package/dist/atoms/index.js +62 -62
- package/dist/chunk-257KZIAG.js +130 -0
- package/dist/chunk-257KZIAG.js.map +1 -0
- package/dist/chunk-2FIMZ4XV.js +64 -0
- package/dist/chunk-2FIMZ4XV.js.map +1 -0
- package/dist/chunk-2T2Q6FZW.js +64 -0
- package/dist/chunk-2T2Q6FZW.js.map +1 -0
- package/dist/chunk-2TWCMRST.js +64 -0
- package/dist/chunk-2TWCMRST.js.map +1 -0
- package/dist/chunk-35XLZQZL.js +64 -0
- package/dist/chunk-35XLZQZL.js.map +1 -0
- package/dist/chunk-3K6EZ35F.js +196 -0
- package/dist/chunk-3K6EZ35F.js.map +1 -0
- package/dist/chunk-3ZGRSDED.js +64 -0
- package/dist/chunk-3ZGRSDED.js.map +1 -0
- package/dist/chunk-42FJE3GS.js +196 -0
- package/dist/chunk-42FJE3GS.js.map +1 -0
- package/dist/chunk-474DAQO3.js +189 -0
- package/dist/chunk-474DAQO3.js.map +1 -0
- package/dist/chunk-4HKSFHPG.js +64 -0
- package/dist/chunk-4HKSFHPG.js.map +1 -0
- package/dist/chunk-4O7UKW7G.js +64 -0
- package/dist/chunk-4O7UKW7G.js.map +1 -0
- package/dist/chunk-54CQJLOJ.js +150 -0
- package/dist/chunk-54CQJLOJ.js.map +1 -0
- package/dist/chunk-5AI22DIH.js +183 -0
- package/dist/chunk-5AI22DIH.js.map +1 -0
- package/dist/chunk-5BSTLWTR.js +186 -0
- package/dist/chunk-5BSTLWTR.js.map +1 -0
- package/dist/chunk-5EASI3O3.js +64 -0
- package/dist/chunk-5EASI3O3.js.map +1 -0
- package/dist/chunk-5EU2Q4MM.js +130 -0
- package/dist/chunk-5EU2Q4MM.js.map +1 -0
- package/dist/chunk-5L4VY3RP.js +87 -0
- package/dist/chunk-5L4VY3RP.js.map +1 -0
- package/dist/chunk-5NMXR6II.js +139 -0
- package/dist/chunk-5NMXR6II.js.map +1 -0
- package/dist/chunk-5PKMOGDG.js +151 -0
- package/dist/chunk-5PKMOGDG.js.map +1 -0
- package/dist/chunk-5QMF6DSG.js +64 -0
- package/dist/chunk-5QMF6DSG.js.map +1 -0
- package/dist/chunk-5S6NSE2A.js +63 -0
- package/dist/chunk-5S6NSE2A.js.map +1 -0
- package/dist/chunk-5TH7DTNT.js +89 -0
- package/dist/chunk-5TH7DTNT.js.map +1 -0
- package/dist/chunk-5ZO2BOCH.js +100 -0
- package/dist/chunk-5ZO2BOCH.js.map +1 -0
- package/dist/chunk-62KJUZOU.js +130 -0
- package/dist/chunk-62KJUZOU.js.map +1 -0
- package/dist/chunk-6455M6S2.js +64 -0
- package/dist/chunk-6455M6S2.js.map +1 -0
- package/dist/chunk-67RTQMCR.js +64 -0
- package/dist/chunk-67RTQMCR.js.map +1 -0
- package/dist/chunk-6LLUTFX2.js +130 -0
- package/dist/chunk-6LLUTFX2.js.map +1 -0
- package/dist/chunk-6MNNWSAC.js +89 -0
- package/dist/chunk-6MNNWSAC.js.map +1 -0
- package/dist/chunk-6MRPFNBK.js +130 -0
- package/dist/chunk-6MRPFNBK.js.map +1 -0
- package/dist/chunk-6PLYQRDB.js +64 -0
- package/dist/chunk-6PLYQRDB.js.map +1 -0
- package/dist/chunk-6QWJBG7D.js +130 -0
- package/dist/chunk-6QWJBG7D.js.map +1 -0
- package/dist/chunk-6R4GXRAE.js +130 -0
- package/dist/chunk-6R4GXRAE.js.map +1 -0
- package/dist/chunk-6RDHONTX.js +63 -0
- package/dist/chunk-6RDHONTX.js.map +1 -0
- package/dist/chunk-6ZRFLCD6.js +151 -0
- package/dist/chunk-6ZRFLCD6.js.map +1 -0
- package/dist/chunk-74CP4VEU.js +144 -0
- package/dist/chunk-74CP4VEU.js.map +1 -0
- package/dist/chunk-74ZISGUW.js +89 -0
- package/dist/chunk-74ZISGUW.js.map +1 -0
- package/dist/chunk-75GML4NX.js +143 -0
- package/dist/chunk-75GML4NX.js.map +1 -0
- package/dist/chunk-7BDEOEZS.js +141 -0
- package/dist/chunk-7BDEOEZS.js.map +1 -0
- package/dist/chunk-7JELCO4M.js +112 -0
- package/dist/chunk-7JELCO4M.js.map +1 -0
- package/dist/chunk-7PDPMLJO.js +64 -0
- package/dist/chunk-7PDPMLJO.js.map +1 -0
- package/dist/chunk-7Q4CLPHG.js +196 -0
- package/dist/chunk-7Q4CLPHG.js.map +1 -0
- package/dist/chunk-7WYKVUMT.js +130 -0
- package/dist/chunk-7WYKVUMT.js.map +1 -0
- package/dist/chunk-A4WYHTIF.js +64 -0
- package/dist/chunk-A4WYHTIF.js.map +1 -0
- package/dist/chunk-A7MWL24M.js +57 -0
- package/dist/chunk-A7MWL24M.js.map +1 -0
- package/dist/chunk-ABRN5NMI.js +64 -0
- package/dist/chunk-ABRN5NMI.js.map +1 -0
- package/dist/chunk-AGMQ7L7E.js +183 -0
- package/dist/chunk-AGMQ7L7E.js.map +1 -0
- package/dist/chunk-AKHBJOBN.js +130 -0
- package/dist/chunk-AKHBJOBN.js.map +1 -0
- package/dist/chunk-AWBTE64J.js +151 -0
- package/dist/chunk-AWBTE64J.js.map +1 -0
- package/dist/chunk-B67Y4JOC.js +64 -0
- package/dist/chunk-B67Y4JOC.js.map +1 -0
- package/dist/chunk-BBS4VJ7Z.js +64 -0
- package/dist/chunk-BBS4VJ7Z.js.map +1 -0
- package/dist/chunk-BREYJXIU.js +64 -0
- package/dist/chunk-BREYJXIU.js.map +1 -0
- package/dist/chunk-BS522SHO.js +89 -0
- package/dist/chunk-BS522SHO.js.map +1 -0
- package/dist/chunk-C6LOW2LX.js +194 -0
- package/dist/chunk-C6LOW2LX.js.map +1 -0
- package/dist/chunk-CFOGPOK6.js +148 -0
- package/dist/chunk-CFOGPOK6.js.map +1 -0
- package/dist/chunk-CL4HJONY.js +194 -0
- package/dist/chunk-CL4HJONY.js.map +1 -0
- package/dist/chunk-CPCOCT5T.js +145 -0
- package/dist/chunk-CPCOCT5T.js.map +1 -0
- package/dist/chunk-CRRQRMYZ.js +130 -0
- package/dist/chunk-CRRQRMYZ.js.map +1 -0
- package/dist/chunk-CTCUWEWB.js +112 -0
- package/dist/chunk-CTCUWEWB.js.map +1 -0
- package/dist/chunk-CY5QDWA5.js +130 -0
- package/dist/chunk-CY5QDWA5.js.map +1 -0
- package/dist/chunk-CYNKJDWF.js +151 -0
- package/dist/chunk-CYNKJDWF.js.map +1 -0
- package/dist/chunk-DBVMM2TM.js +97 -0
- package/dist/chunk-DBVMM2TM.js.map +1 -0
- package/dist/chunk-DDNBWMWV.js +130 -0
- package/dist/chunk-DDNBWMWV.js.map +1 -0
- package/dist/chunk-DE3VJHXS.js +80 -0
- package/dist/chunk-DE3VJHXS.js.map +1 -0
- package/dist/chunk-DF5MZMUP.js +64 -0
- package/dist/chunk-DF5MZMUP.js.map +1 -0
- package/dist/chunk-DFAVJ5PQ.js +64 -0
- package/dist/chunk-DFAVJ5PQ.js.map +1 -0
- package/dist/chunk-DH3QDMS3.js +64 -0
- package/dist/chunk-DH3QDMS3.js.map +1 -0
- package/dist/chunk-DJORTDHY.js +89 -0
- package/dist/chunk-DJORTDHY.js.map +1 -0
- package/dist/chunk-DTSSPM73.js +130 -0
- package/dist/chunk-DTSSPM73.js.map +1 -0
- package/dist/chunk-DXWRPWHD.js +64 -0
- package/dist/chunk-DXWRPWHD.js.map +1 -0
- package/dist/chunk-DYAGZ5FJ.js +130 -0
- package/dist/chunk-DYAGZ5FJ.js.map +1 -0
- package/dist/chunk-DZAB42QX.js +130 -0
- package/dist/chunk-DZAB42QX.js.map +1 -0
- package/dist/chunk-DZMNAD5K.js +64 -0
- package/dist/chunk-DZMNAD5K.js.map +1 -0
- package/dist/chunk-EJWCPND5.js +196 -0
- package/dist/chunk-EJWCPND5.js.map +1 -0
- package/dist/chunk-EPOB6R46.js +64 -0
- package/dist/chunk-EPOB6R46.js.map +1 -0
- package/dist/chunk-ETTA6GWW.js +64 -0
- package/dist/chunk-ETTA6GWW.js.map +1 -0
- package/dist/chunk-F3Y6RIR4.js +196 -0
- package/dist/chunk-F3Y6RIR4.js.map +1 -0
- package/dist/chunk-FBL4N2YF.js +64 -0
- package/dist/chunk-FBL4N2YF.js.map +1 -0
- package/dist/chunk-FPJM72MJ.js +64 -0
- package/dist/chunk-FPJM72MJ.js.map +1 -0
- package/dist/chunk-FV7LTU2M.js +151 -0
- package/dist/chunk-FV7LTU2M.js.map +1 -0
- package/dist/chunk-G5S4DC7A.js +123 -0
- package/dist/chunk-G5S4DC7A.js.map +1 -0
- package/dist/chunk-G5TCIHHP.js +89 -0
- package/dist/chunk-G5TCIHHP.js.map +1 -0
- package/dist/chunk-GD75JHKI.js +123 -0
- package/dist/chunk-GD75JHKI.js.map +1 -0
- package/dist/chunk-GG5OC36I.js +193 -0
- package/dist/chunk-GG5OC36I.js.map +1 -0
- package/dist/chunk-GUB4IPAK.js +64 -0
- package/dist/chunk-GUB4IPAK.js.map +1 -0
- package/dist/chunk-GYCRL23P.js +64 -0
- package/dist/chunk-GYCRL23P.js.map +1 -0
- package/dist/chunk-GZSXV6OH.js +112 -0
- package/dist/chunk-GZSXV6OH.js.map +1 -0
- package/dist/chunk-GZWV5WZS.js +89 -0
- package/dist/chunk-GZWV5WZS.js.map +1 -0
- package/dist/chunk-H53ACFIS.js +64 -0
- package/dist/chunk-H53ACFIS.js.map +1 -0
- package/dist/chunk-HJ43CWCX.js +151 -0
- package/dist/chunk-HJ43CWCX.js.map +1 -0
- package/dist/chunk-HTA23W4F.js +130 -0
- package/dist/chunk-HTA23W4F.js.map +1 -0
- package/dist/chunk-I23KBSCL.js +196 -0
- package/dist/chunk-I23KBSCL.js.map +1 -0
- package/dist/chunk-IBKZ4WR5.js +64 -0
- package/dist/chunk-IBKZ4WR5.js.map +1 -0
- package/dist/chunk-IF3CMHRN.js +196 -0
- package/dist/chunk-IF3CMHRN.js.map +1 -0
- package/dist/chunk-IMSO4QQ7.js +123 -0
- package/dist/chunk-IMSO4QQ7.js.map +1 -0
- package/dist/chunk-ISUZJQ67.js +89 -0
- package/dist/chunk-ISUZJQ67.js.map +1 -0
- package/dist/chunk-IUEOS4EU.js +64 -0
- package/dist/chunk-IUEOS4EU.js.map +1 -0
- package/dist/chunk-IWLTD6NE.js +145 -0
- package/dist/chunk-IWLTD6NE.js.map +1 -0
- package/dist/chunk-J7MGXHLD.js +63 -0
- package/dist/chunk-J7MGXHLD.js.map +1 -0
- package/dist/chunk-JG5OAQCF.js +89 -0
- package/dist/chunk-JG5OAQCF.js.map +1 -0
- package/dist/chunk-JM5GSNZK.js +183 -0
- package/dist/chunk-JM5GSNZK.js.map +1 -0
- package/dist/chunk-JQCPVVQ2.js +64 -0
- package/dist/chunk-JQCPVVQ2.js.map +1 -0
- package/dist/chunk-JR22M2JY.js +119 -0
- package/dist/chunk-JR22M2JY.js.map +1 -0
- package/dist/chunk-JS2D3PAA.js +100 -0
- package/dist/chunk-JS2D3PAA.js.map +1 -0
- package/dist/chunk-L62LNJFW.js +89 -0
- package/dist/chunk-L62LNJFW.js.map +1 -0
- package/dist/chunk-LRCETPVN.js +89 -0
- package/dist/chunk-LRCETPVN.js.map +1 -0
- package/dist/chunk-M3FLNSQN.js +89 -0
- package/dist/chunk-M3FLNSQN.js.map +1 -0
- package/dist/chunk-MHTMYI2Y.js +196 -0
- package/dist/chunk-MHTMYI2Y.js.map +1 -0
- package/dist/chunk-MUKHJLDI.js +130 -0
- package/dist/chunk-MUKHJLDI.js.map +1 -0
- package/dist/chunk-NJFNR7UF.js +64 -0
- package/dist/chunk-NJFNR7UF.js.map +1 -0
- package/dist/chunk-NVJE2CZ4.js +64 -0
- package/dist/chunk-NVJE2CZ4.js.map +1 -0
- package/dist/chunk-NVKBFC7N.js +89 -0
- package/dist/chunk-NVKBFC7N.js.map +1 -0
- package/dist/chunk-O5PEXFFZ.js +89 -0
- package/dist/chunk-O5PEXFFZ.js.map +1 -0
- package/dist/chunk-OA5NWUNO.js +151 -0
- package/dist/chunk-OA5NWUNO.js.map +1 -0
- package/dist/chunk-ODW53NBW.js +151 -0
- package/dist/chunk-ODW53NBW.js.map +1 -0
- package/dist/chunk-OF7UAS5V.js +64 -0
- package/dist/chunk-OF7UAS5V.js.map +1 -0
- package/dist/chunk-OP6NLWYT.js +130 -0
- package/dist/chunk-OP6NLWYT.js.map +1 -0
- package/dist/chunk-OSVSHYT2.js +130 -0
- package/dist/chunk-OSVSHYT2.js.map +1 -0
- package/dist/chunk-OY33BE4U.js +151 -0
- package/dist/chunk-OY33BE4U.js.map +1 -0
- package/dist/chunk-P3YVEVE3.js +130 -0
- package/dist/chunk-P3YVEVE3.js.map +1 -0
- package/dist/chunk-P4TFMX4S.js +64 -0
- package/dist/chunk-P4TFMX4S.js.map +1 -0
- package/dist/chunk-PBUOCEKO.js +64 -0
- package/dist/chunk-PBUOCEKO.js.map +1 -0
- package/dist/chunk-PDVATPMB.js +64 -0
- package/dist/chunk-PDVATPMB.js.map +1 -0
- package/dist/chunk-PGJTIQQ3.js +64 -0
- package/dist/chunk-PGJTIQQ3.js.map +1 -0
- package/dist/chunk-PIEEMQ4U.js +64 -0
- package/dist/chunk-PIEEMQ4U.js.map +1 -0
- package/dist/chunk-PXBLLSTB.js +63 -0
- package/dist/chunk-PXBLLSTB.js.map +1 -0
- package/dist/chunk-Q63ACXCT.js +123 -0
- package/dist/chunk-Q63ACXCT.js.map +1 -0
- package/dist/chunk-Q6L5BTT3.js +64 -0
- package/dist/chunk-Q6L5BTT3.js.map +1 -0
- package/dist/chunk-QKJAJDGR.js +183 -0
- package/dist/chunk-QKJAJDGR.js.map +1 -0
- package/dist/chunk-QLM4YG27.js +130 -0
- package/dist/chunk-QLM4YG27.js.map +1 -0
- package/dist/chunk-QM6GPEZS.js +149 -0
- package/dist/chunk-QM6GPEZS.js.map +1 -0
- package/dist/chunk-QWEVMS6C.js +57 -0
- package/dist/chunk-QWEVMS6C.js.map +1 -0
- package/dist/chunk-QXNCMJVR.js +196 -0
- package/dist/chunk-QXNCMJVR.js.map +1 -0
- package/dist/chunk-R2E5S4A4.js +145 -0
- package/dist/chunk-R2E5S4A4.js.map +1 -0
- package/dist/chunk-RAL4CHT3.js +89 -0
- package/dist/chunk-RAL4CHT3.js.map +1 -0
- package/dist/chunk-RCABUU2J.js +112 -0
- package/dist/chunk-RCABUU2J.js.map +1 -0
- package/dist/chunk-RQCGU7TY.js +130 -0
- package/dist/chunk-RQCGU7TY.js.map +1 -0
- package/dist/chunk-RVYG7R76.js +64 -0
- package/dist/chunk-RVYG7R76.js.map +1 -0
- package/dist/chunk-SMCWS2DA.js +123 -0
- package/dist/chunk-SMCWS2DA.js.map +1 -0
- package/dist/chunk-SNS753VL.js +64 -0
- package/dist/chunk-SNS753VL.js.map +1 -0
- package/dist/chunk-SQZNWICC.js +64 -0
- package/dist/chunk-SQZNWICC.js.map +1 -0
- package/dist/chunk-SX6ZM7XN.js +64 -0
- package/dist/chunk-SX6ZM7XN.js.map +1 -0
- package/dist/chunk-TCVDGUVO.js +130 -0
- package/dist/chunk-TCVDGUVO.js.map +1 -0
- package/dist/chunk-TDEYWLBP.js +196 -0
- package/dist/chunk-TDEYWLBP.js.map +1 -0
- package/dist/chunk-TELLGTPV.js +119 -0
- package/dist/chunk-TELLGTPV.js.map +1 -0
- package/dist/chunk-TKD7AJ2T.js +65 -0
- package/dist/chunk-TKD7AJ2T.js.map +1 -0
- package/dist/chunk-TKIFOFDI.js +179 -0
- package/dist/chunk-TKIFOFDI.js.map +1 -0
- package/dist/chunk-TLGBUTDX.js +119 -0
- package/dist/chunk-TLGBUTDX.js.map +1 -0
- package/dist/chunk-TLMZM7OY.js +89 -0
- package/dist/chunk-TLMZM7OY.js.map +1 -0
- package/dist/chunk-TLSVVTN6.js +146 -0
- package/dist/chunk-TLSVVTN6.js.map +1 -0
- package/dist/chunk-TN2CT54F.js +100 -0
- package/dist/chunk-TN2CT54F.js.map +1 -0
- package/dist/chunk-TSNHOTPR.js +146 -0
- package/dist/chunk-TSNHOTPR.js.map +1 -0
- package/dist/chunk-TSQXNTPL.js +64 -0
- package/dist/chunk-TSQXNTPL.js.map +1 -0
- package/dist/chunk-U2LSNMUY.js +125 -0
- package/dist/chunk-U2LSNMUY.js.map +1 -0
- package/dist/chunk-UBZUZ7X7.js +64 -0
- package/dist/chunk-UBZUZ7X7.js.map +1 -0
- package/dist/chunk-UFEOEKXS.js +64 -0
- package/dist/chunk-UFEOEKXS.js.map +1 -0
- package/dist/chunk-UGGHGGYW.js +64 -0
- package/dist/chunk-UGGHGGYW.js.map +1 -0
- package/dist/chunk-UJGMXYXL.js +196 -0
- package/dist/chunk-UJGMXYXL.js.map +1 -0
- package/dist/chunk-UTKI2EKT.js +64 -0
- package/dist/chunk-UTKI2EKT.js.map +1 -0
- package/dist/chunk-UVSQQJDT.js +64 -0
- package/dist/chunk-UVSQQJDT.js.map +1 -0
- package/dist/chunk-UWSVYBBK.js +79 -0
- package/dist/chunk-UWSVYBBK.js.map +1 -0
- package/dist/chunk-UYPLALQH.js +64 -0
- package/dist/chunk-UYPLALQH.js.map +1 -0
- package/dist/chunk-V424TBIR.js +151 -0
- package/dist/chunk-V424TBIR.js.map +1 -0
- package/dist/chunk-VBPRAUBO.js +79 -0
- package/dist/chunk-VBPRAUBO.js.map +1 -0
- package/dist/chunk-VBUZBJ4T.js +64 -0
- package/dist/chunk-VBUZBJ4T.js.map +1 -0
- package/dist/chunk-VE4SGSGN.js +95 -0
- package/dist/chunk-VE4SGSGN.js.map +1 -0
- package/dist/chunk-VLLJYDGJ.js +183 -0
- package/dist/chunk-VLLJYDGJ.js.map +1 -0
- package/dist/chunk-VMAE4UWB.js +64 -0
- package/dist/chunk-VMAE4UWB.js.map +1 -0
- package/dist/chunk-VXLLTP5T.js +130 -0
- package/dist/chunk-VXLLTP5T.js.map +1 -0
- package/dist/chunk-VXNBVFGK.js +112 -0
- package/dist/chunk-VXNBVFGK.js.map +1 -0
- package/dist/chunk-VZRXXQT2.js +64 -0
- package/dist/chunk-VZRXXQT2.js.map +1 -0
- package/dist/chunk-W5V5JA5L.js +112 -0
- package/dist/chunk-W5V5JA5L.js.map +1 -0
- package/dist/chunk-WB5RL5LG.js +89 -0
- package/dist/chunk-WB5RL5LG.js.map +1 -0
- package/dist/chunk-WDPUUQY6.js +196 -0
- package/dist/chunk-WDPUUQY6.js.map +1 -0
- package/dist/chunk-WGOYMIVQ.js +69 -0
- package/dist/chunk-WGOYMIVQ.js.map +1 -0
- package/dist/chunk-WLDWMMQB.js +196 -0
- package/dist/chunk-WLDWMMQB.js.map +1 -0
- package/dist/chunk-WM2MALAK.js +130 -0
- package/dist/chunk-WM2MALAK.js.map +1 -0
- package/dist/chunk-WO3MSAUA.js +64 -0
- package/dist/chunk-WO3MSAUA.js.map +1 -0
- package/dist/chunk-WPF4IULC.js +64 -0
- package/dist/chunk-WPF4IULC.js.map +1 -0
- package/dist/chunk-WPRGE7A6.js +144 -0
- package/dist/chunk-WPRGE7A6.js.map +1 -0
- package/dist/chunk-WQDWCBOD.js +64 -0
- package/dist/chunk-WQDWCBOD.js.map +1 -0
- package/dist/chunk-WVQOZYRB.js +64 -0
- package/dist/chunk-WVQOZYRB.js.map +1 -0
- package/dist/chunk-WWCXAGWO.js +64 -0
- package/dist/chunk-WWCXAGWO.js.map +1 -0
- package/dist/chunk-WYCNRB4O.js +146 -0
- package/dist/chunk-WYCNRB4O.js.map +1 -0
- package/dist/chunk-WZVJYDVP.js +186 -0
- package/dist/chunk-WZVJYDVP.js.map +1 -0
- package/dist/chunk-X36YFT5G.js +196 -0
- package/dist/chunk-X36YFT5G.js.map +1 -0
- package/dist/chunk-X4ZI5LOT.js +64 -0
- package/dist/chunk-X4ZI5LOT.js.map +1 -0
- package/dist/chunk-X6RGRILI.js +64 -0
- package/dist/chunk-X6RGRILI.js.map +1 -0
- package/dist/chunk-X75AI6PK.js +64 -0
- package/dist/chunk-X75AI6PK.js.map +1 -0
- package/dist/chunk-XE3WEY7M.js +151 -0
- package/dist/chunk-XE3WEY7M.js.map +1 -0
- package/dist/chunk-XEFKHKL6.js +130 -0
- package/dist/chunk-XEFKHKL6.js.map +1 -0
- package/dist/chunk-XGAFEXTN.js +89 -0
- package/dist/chunk-XGAFEXTN.js.map +1 -0
- package/dist/chunk-XJTWGXJC.js +130 -0
- package/dist/chunk-XJTWGXJC.js.map +1 -0
- package/dist/chunk-XLKSLNJ7.js +64 -0
- package/dist/chunk-XLKSLNJ7.js.map +1 -0
- package/dist/chunk-XOCKALHC.js +196 -0
- package/dist/chunk-XOCKALHC.js.map +1 -0
- package/dist/chunk-XQ2PXXWN.js +130 -0
- package/dist/chunk-XQ2PXXWN.js.map +1 -0
- package/dist/chunk-XR4XUSGA.js +196 -0
- package/dist/chunk-XR4XUSGA.js.map +1 -0
- package/dist/chunk-Y2ZHGGFL.js +89 -0
- package/dist/chunk-Y2ZHGGFL.js.map +1 -0
- package/dist/chunk-YHGILVAF.js +64 -0
- package/dist/chunk-YHGILVAF.js.map +1 -0
- package/dist/chunk-YLJHR3EB.js +64 -0
- package/dist/chunk-YLJHR3EB.js.map +1 -0
- package/dist/chunk-YXS7GXLE.js +130 -0
- package/dist/chunk-YXS7GXLE.js.map +1 -0
- package/dist/chunk-Z2AN2E5A.js +130 -0
- package/dist/chunk-Z2AN2E5A.js.map +1 -0
- package/dist/chunk-ZF3FLYIZ.js +79 -0
- package/dist/chunk-ZF3FLYIZ.js.map +1 -0
- package/dist/chunk-ZJ5Z2PUS.js +89 -0
- package/dist/chunk-ZJ5Z2PUS.js.map +1 -0
- package/dist/chunk-ZQ5I5QYQ.js +183 -0
- package/dist/chunk-ZQ5I5QYQ.js.map +1 -0
- package/dist/chunk-ZVQ2BUAL.js +64 -0
- package/dist/chunk-ZVQ2BUAL.js.map +1 -0
- package/dist/index.cjs +84 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +111 -111
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +33 -33
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +30 -30
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +28 -28
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +27 -27
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +27 -27
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +27 -27
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs +2 -2
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +28 -28
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/curriculum-review-context.cjs +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/curriculum-review-context.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/curriculum-review-context.js +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs +7 -7
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +36 -36
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs +4 -4
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +28 -28
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs +83 -17
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +37 -37
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-video.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumContents/index.cjs +83 -17
- package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/index.js +38 -38
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-sidebar-item-wrapper.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +26 -26
- package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +26 -26
- package/dist/molecules/curriculumV2/curriculum-sub-nav.js +26 -26
- package/dist/molecules/curriculumV2/curriculum-v2-layout.cjs +1 -1
- package/dist/molecules/curriculumV2/curriculum-v2-layout.cjs.map +1 -1
- package/dist/molecules/curriculumV2/curriculum-v2-layout.js +27 -27
- package/dist/molecules/curriculumV2/index.cjs +84 -18
- package/dist/molecules/curriculumV2/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/index.js +39 -39
- package/dist/molecules/date-picker/date-picker-button.js +26 -26
- package/dist/molecules/expand-table/index.js +26 -26
- package/dist/molecules/expand-table/row.js +26 -26
- package/dist/molecules/index.cjs +84 -18
- package/dist/molecules/index.cjs.map +1 -1
- package/dist/molecules/index.js +48 -48
- package/dist/molecules/learning-post.js +2 -2
- package/dist/molecules/navigation.js +26 -26
- package/dist/molecules/radio-button-card.js +26 -26
- package/dist/molecules/stepper.js +2 -2
- package/dist/molecules/tag-selector.js +27 -27
- package/dist/molecules/time-select.js +26 -26
- package/package.json +1 -1
- package/src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.tsx +2 -2
- package/src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/curriculum-review-context.tsx +2 -2
- package/src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.tsx +12 -12
- package/src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.tsx +4 -4
- package/src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx +103 -24
- package/src/molecules/curriculumV2/curriculum-v2-layout.tsx +1 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CurriculumReviewSteps_default
|
|
3
|
+
} from "./chunk-GZWV5WZS.js";
|
|
4
|
+
import {
|
|
5
|
+
useCurriculumContext
|
|
6
|
+
} from "./chunk-IYQJIEVM.js";
|
|
7
|
+
import {
|
|
8
|
+
Dialog
|
|
9
|
+
} from "./chunk-45VFASWZ.js";
|
|
10
|
+
import {
|
|
11
|
+
IconButton
|
|
12
|
+
} from "./chunk-O3DNDMV3.js";
|
|
13
|
+
import {
|
|
14
|
+
Box
|
|
15
|
+
} from "./chunk-4Y5BEXVN.js";
|
|
16
|
+
import {
|
|
17
|
+
Typo
|
|
18
|
+
} from "./chunk-LH57PIY2.js";
|
|
19
|
+
import {
|
|
20
|
+
Flex
|
|
21
|
+
} from "./chunk-25HMMI7R.js";
|
|
22
|
+
import {
|
|
23
|
+
Button
|
|
24
|
+
} from "./chunk-AFPH32MF.js";
|
|
25
|
+
import {
|
|
26
|
+
__spreadValues
|
|
27
|
+
} from "./chunk-2NMEKWO5.js";
|
|
28
|
+
|
|
29
|
+
// src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx
|
|
30
|
+
import { useCallback, useMemo, useState } from "react";
|
|
31
|
+
import { Cross1Icon } from "@radix-ui/react-icons";
|
|
32
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
33
|
+
function CurriculumReview(props) {
|
|
34
|
+
const { item, sectionTitle } = props;
|
|
35
|
+
const { description, buttonTitle } = item;
|
|
36
|
+
const { curriculum, onReviewSubmit: _onReviewSubmit, onReviewValueChange, curriculumReviewAnswers, tempCurriculumReviewAnswers, curriculumCompleteMap } = useCurriculumContext();
|
|
37
|
+
const [open, setOpen] = useState(false);
|
|
38
|
+
const [isChanged, setIsChanged] = useState(false);
|
|
39
|
+
const onReviewSubmit = useCallback((values) => {
|
|
40
|
+
return _onReviewSubmit({ reviewId: item.uuid, answer: values }).then((result) => {
|
|
41
|
+
setIsChanged(false);
|
|
42
|
+
return result;
|
|
43
|
+
});
|
|
44
|
+
}, [item.uuid, _onReviewSubmit]);
|
|
45
|
+
const onClickEndReview = useCallback(() => {
|
|
46
|
+
setOpen(false);
|
|
47
|
+
}, []);
|
|
48
|
+
const mode = useMemo(() => {
|
|
49
|
+
return item.questions.every((question) => curriculumReviewAnswers[question.uuid] && curriculumReviewAnswers[question.uuid] !== "") ? "edit" : "create";
|
|
50
|
+
}, [curriculumReviewAnswers, item.questions]);
|
|
51
|
+
const defaultValues = useMemo(() => {
|
|
52
|
+
const allAnswers = __spreadValues(__spreadValues({}, tempCurriculumReviewAnswers), curriculumReviewAnswers);
|
|
53
|
+
return item.questions.reduce((acc, question) => {
|
|
54
|
+
acc[question.uuid] = allAnswers[question.uuid] || "";
|
|
55
|
+
return acc;
|
|
56
|
+
}, {});
|
|
57
|
+
}, [curriculumReviewAnswers, item.questions, tempCurriculumReviewAnswers]);
|
|
58
|
+
const done = useMemo(() => {
|
|
59
|
+
return Boolean(curriculumCompleteMap[item.uuid]);
|
|
60
|
+
}, [curriculumCompleteMap, item.uuid]);
|
|
61
|
+
const handleOpenChange = useCallback((open2) => {
|
|
62
|
+
if (open2) {
|
|
63
|
+
setIsChanged(true);
|
|
64
|
+
}
|
|
65
|
+
}, []);
|
|
66
|
+
const bgColor = done ? "var(--color-panel-solid)" : void 0;
|
|
67
|
+
return /* @__PURE__ */ jsxs(Dialog.Root, { onOpenChange: setOpen, open, children: [
|
|
68
|
+
/* @__PURE__ */ jsxs(
|
|
69
|
+
Flex,
|
|
70
|
+
{
|
|
71
|
+
align: "center",
|
|
72
|
+
direction: "column",
|
|
73
|
+
height: "100%",
|
|
74
|
+
justify: "center",
|
|
75
|
+
px: "3",
|
|
76
|
+
py: "3",
|
|
77
|
+
style: {
|
|
78
|
+
backgroundImage: `url(https://tipp-coaching-live.s3.ap-northeast-2.amazonaws.com/images/curriculum_review_bg.png)`,
|
|
79
|
+
backgroundPosition: "center",
|
|
80
|
+
backgroundSize: "cover",
|
|
81
|
+
backgroundRepeat: "no-repeat"
|
|
82
|
+
},
|
|
83
|
+
width: "100%",
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsx(Typo, { color: "gray", weight: "bold", children: curriculum.title }),
|
|
86
|
+
/* @__PURE__ */ jsx(Typo, { align: "center", as: "p", color: "gray", children: description }),
|
|
87
|
+
/* @__PURE__ */ jsx(Dialog.Trigger, { children: /* @__PURE__ */ jsx(Button, { mt: "3", style: { minWidth: 232, backgroundColor: bgColor }, variant: done ? "outline" : "solid", children: /* @__PURE__ */ jsx(Typo, { truncate: true, children: done ? "\uB098\uC758 \uC751\uB2F5 \uB2E4\uC2DC\uBCF4\uAE30" : buttonTitle }) }) })
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
),
|
|
91
|
+
/* @__PURE__ */ jsx(
|
|
92
|
+
Dialog.Content,
|
|
93
|
+
{
|
|
94
|
+
height: "100%",
|
|
95
|
+
hideCloseButton: true,
|
|
96
|
+
style: { borderRadius: 0, padding: 0 },
|
|
97
|
+
title: "",
|
|
98
|
+
width: "100%",
|
|
99
|
+
children: /* @__PURE__ */ jsxs(
|
|
100
|
+
Flex,
|
|
101
|
+
{
|
|
102
|
+
align: "center",
|
|
103
|
+
height: "100%",
|
|
104
|
+
justify: "center",
|
|
105
|
+
pb: "3",
|
|
106
|
+
position: "relative",
|
|
107
|
+
width: "100%",
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ jsx(
|
|
110
|
+
CurriculumReviewSteps_default,
|
|
111
|
+
{
|
|
112
|
+
contents: item,
|
|
113
|
+
curriculum,
|
|
114
|
+
defaultValues,
|
|
115
|
+
done,
|
|
116
|
+
mode,
|
|
117
|
+
onClickEndReview,
|
|
118
|
+
onReviewValueChange,
|
|
119
|
+
onSubmit: onReviewSubmit,
|
|
120
|
+
title: sectionTitle
|
|
121
|
+
}
|
|
122
|
+
),
|
|
123
|
+
/* @__PURE__ */ jsx(Box, { position: "absolute", right: "16px", top: "16px", children: /* @__PURE__ */ jsxs(IconButton, { color: "gray", onClick: onClickEndReview, variant: "ghost", children: [
|
|
124
|
+
/* @__PURE__ */ jsx(Box, { display: { initial: "none", md: "block" }, children: /* @__PURE__ */ jsx(Cross1Icon, { height: 20, width: 20 }) }),
|
|
125
|
+
/* @__PURE__ */ jsx(Box, { display: { initial: "block", md: "none" }, children: /* @__PURE__ */ jsx(Cross1Icon, { height: 16, width: 16 }) })
|
|
126
|
+
] }) }),
|
|
127
|
+
/* @__PURE__ */ jsx(Dialog.Root, { onOpenChange: handleOpenChange, open, children: /* @__PURE__ */ jsx(
|
|
128
|
+
Dialog.Content,
|
|
129
|
+
{
|
|
130
|
+
buttons: /* @__PURE__ */ jsxs(Flex, { gap: "3", justify: "end", children: [
|
|
131
|
+
/* @__PURE__ */ jsx(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { color: "gray", variant: "outline", children: "\uB3CC\uC544\uAC00\uAE30" }) }),
|
|
132
|
+
/* @__PURE__ */ jsx(Dialog.Close, { children: /* @__PURE__ */ jsx(Button, { color: "red", onClick: onClickEndReview, children: "\uB098\uAC00\uAE30" }) })
|
|
133
|
+
] }),
|
|
134
|
+
title: "\uC791\uC131\uC744 \uC911\uB2E8\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",
|
|
135
|
+
children: /* @__PURE__ */ jsx(Typo, { children: "\uD398\uC774\uC9C0\uC5D0\uC11C \uBC97\uC5B4\uB098\uBA74 \uC791\uC131\uD55C \uB0B4\uC6A9\uC774 \uC800\uC7A5\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4." })
|
|
136
|
+
}
|
|
137
|
+
) })
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
)
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
] });
|
|
144
|
+
}
|
|
145
|
+
var curriculum_review_default = CurriculumReview;
|
|
146
|
+
|
|
147
|
+
export {
|
|
148
|
+
curriculum_review_default
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=chunk-54CQJLOJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { Cross1Icon } from '@radix-ui/react-icons';\nimport { Box, Button, Dialog, Flex, IconButton, Typo } from '@/atoms';\nimport { type CurriculumReviewContents } from '@/types/curriculumContents.type';\nimport { useCurriculumContext } from '../curriculum-context';\nimport CurriculumReviewSteps from './CurriculumReviewSteps';\n\ninterface CurriculumReviewProps {\n item: CurriculumReviewContents;\n sectionTitle: string | undefined;\n}\n\nfunction CurriculumReview(props: CurriculumReviewProps): React.ReactNode {\n const { item, sectionTitle } = props;\n const { description, buttonTitle } = item;\n const { curriculum, onReviewSubmit: _onReviewSubmit, onReviewValueChange, curriculumReviewAnswers, tempCurriculumReviewAnswers, curriculumCompleteMap } = useCurriculumContext();\n const [open, setOpen] = useState(false);\n const [isChanged, setIsChanged] = useState(false);\n\n const onReviewSubmit = useCallback((values: Record<string, string>) => {\n return _onReviewSubmit({ reviewId: item.uuid, answer: values }).then((result)=>{\n setIsChanged(false);\n return result;\n });\n }, [item.uuid, _onReviewSubmit]); \n\n const onClickEndReview = useCallback(() => {\n setOpen(false); \n }, []);\n\n const mode = useMemo(() => {\n return item.questions.every(question => curriculumReviewAnswers[question.uuid] && curriculumReviewAnswers[question.uuid] !== '') ? 'edit' : 'create';\n }, [curriculumReviewAnswers, item.questions]);\n\n const defaultValues = useMemo(() => { \n const allAnswers = {\n ...tempCurriculumReviewAnswers,\n ...curriculumReviewAnswers\n };\n\n return item.questions.reduce<Record<string, string>>((acc, question) => {\n acc[question.uuid] = allAnswers[question.uuid] || '';\n return acc;\n }, {});\n }, [curriculumReviewAnswers, item.questions, tempCurriculumReviewAnswers]);\n\n const done = useMemo(() => {\n return Boolean(curriculumCompleteMap[item.uuid]);\n }, [curriculumCompleteMap, item.uuid]);\n\n const handleOpenChange = useCallback((open: boolean) => {\n if (open) {\n setIsChanged(true);\n }\n }, []);\n \n const bgColor= done ? 'var(--color-panel-solid)' : undefined;\n\n return (\n <Dialog.Root onOpenChange={setOpen} open={open}>\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n px=\"3\"\n py=\"3\"\n style={{\n backgroundImage: `url(https://tipp-coaching-live.s3.ap-northeast-2.amazonaws.com/images/curriculum_review_bg.png)`,\n backgroundPosition:'center',\n backgroundSize:'cover',\n backgroundRepeat:'no-repeat',\n }}\n width=\"100%\"\n >\n <Typo color=\"gray\" weight=\"bold\">\n {curriculum.title}\n </Typo>\n <Typo align=\"center\" as=\"p\" color=\"gray\">\n {description}\n </Typo>\n\n <Dialog.Trigger>\n <Button mt=\"3\" style={{ minWidth: 232, backgroundColor: bgColor }} variant={done ? 'outline' : 'solid'}>\n <Typo truncate>{done ? '나의 응답 다시보기' : buttonTitle}</Typo>\n </Button>\n </Dialog.Trigger>\n </Flex>\n <Dialog.Content\n height=\"100%\"\n hideCloseButton\n style={{ borderRadius: 0, padding: 0 }}\n title=\"\"\n width=\"100%\"\n >\n <Flex\n align=\"center\"\n height=\"100%\"\n justify=\"center\"\n pb=\"3\"\n position=\"relative\"\n width=\"100%\"\n >\n <CurriculumReviewSteps\n contents={item}\n curriculum={curriculum} \n defaultValues={defaultValues}\n done={done}\n mode={mode}\n onClickEndReview={onClickEndReview}\n onReviewValueChange={onReviewValueChange}\n onSubmit={onReviewSubmit} \n title={sectionTitle}\n />\n <Box position=\"absolute\" right=\"16px\" top=\"16px\">\n <IconButton color=\"gray\" onClick={onClickEndReview} variant=\"ghost\">\n <Box display={{ initial: 'none', md: 'block' }}>\n <Cross1Icon height={20} width={20} />\n </Box>\n <Box display={{ initial: 'block', md: 'none' }}>\n <Cross1Icon height={16} width={16} />\n </Box>\n </IconButton>\n </Box>\n\n <Dialog.Root onOpenChange={handleOpenChange} open={open}>\n <Dialog.Content\n buttons={\n <Flex gap=\"3\" justify=\"end\">\n <Dialog.Close asChild>\n <Button color=\"gray\" variant=\"outline\">\n 돌아가기\n </Button>\n </Dialog.Close>\n <Dialog.Close>\n <Button color=\"red\" onClick={onClickEndReview}>\n 나가기\n </Button>\n </Dialog.Close>\n </Flex>\n }\n title=\"작성을 중단하시겠습니까?\"\n >\n <Typo>페이지에서 벗어나면 작성한 내용이 저장되지 않습니다.</Typo>\n </Dialog.Content>\n </Dialog.Root>\n\n \n\n </Flex>\n </Dialog.Content>\n </Dialog.Root>\n );\n}\n\nexport default CurriculumReview;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAgB,aAAa,SAAS,gBAAgB;AACtD,SAAS,kBAAkB;AA2DrB,SAeE,KAfF;AAhDN,SAAS,iBAAiB,OAA+C;AACvE,QAAM,EAAE,MAAM,aAAa,IAAI;AAC/B,QAAM,EAAE,aAAa,YAAY,IAAI;AACrC,QAAM,EAAE,YAAY,gBAAgB,iBAAiB,qBAAqB,yBAAyB,6BAA6B,sBAAsB,IAAI,qBAAqB;AAC/K,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,iBAAiB,YAAY,CAAC,WAAmC;AACrE,WAAO,gBAAgB,EAAE,UAAU,KAAK,MAAM,QAAQ,OAAO,CAAC,EAAE,KAAK,CAAC,WAAS;AAC7E,mBAAa,KAAK;AAClB,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,KAAK,MAAM,eAAe,CAAC;AAE/B,QAAM,mBAAmB,YAAY,MAAM;AACzC,YAAQ,KAAK;AAAA,EACf,GAAG,CAAC,CAAC;AAEL,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO,KAAK,UAAU,MAAM,cAAY,wBAAwB,SAAS,IAAI,KAAK,wBAAwB,SAAS,IAAI,MAAM,EAAE,IAAI,SAAS;AAAA,EAC9I,GAAG,CAAC,yBAAyB,KAAK,SAAS,CAAC;AAE5C,QAAM,gBAAgB,QAAQ,MAAM;AAClC,UAAM,aAAa,kCACd,8BACA;AAGL,WAAO,KAAK,UAAU,OAA+B,CAAC,KAAK,aAAa;AACtE,UAAI,SAAS,IAAI,IAAI,WAAW,SAAS,IAAI,KAAK;AAClD,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AAAA,EACP,GAAG,CAAC,yBAAyB,KAAK,WAAW,2BAA2B,CAAC;AAEzE,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO,QAAQ,sBAAsB,KAAK,IAAI,CAAC;AAAA,EACjD,GAAG,CAAC,uBAAuB,KAAK,IAAI,CAAC;AAErC,QAAM,mBAAmB,YAAY,CAACA,UAAkB;AACtD,QAAIA,OAAM;AACR,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,OAAO,6BAA6B;AAEpD,SACE,qBAAC,OAAO,MAAP,EAAY,cAAc,SAAS,MAClC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,WAAU;AAAA,QACV,QAAO;AAAA,QACP,SAAQ;AAAA,QACR,IAAG;AAAA,QACH,IAAG;AAAA,QACH,OAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,oBAAmB;AAAA,UACnB,gBAAe;AAAA,UACf,kBAAiB;AAAA,QACnB;AAAA,QACA,OAAM;AAAA,QAEN;AAAA,8BAAC,QAAK,OAAM,QAAO,QAAO,QACvB,qBAAW,OACd;AAAA,UACA,oBAAC,QAAK,OAAM,UAAS,IAAG,KAAI,OAAM,QAC/B,uBACH;AAAA,UAEA,oBAAC,OAAO,SAAP,EACC,8BAAC,UAAO,IAAG,KAAI,OAAO,EAAE,UAAU,KAAK,iBAAiB,QAAQ,GAAG,SAAS,OAAO,YAAY,SAC7F,8BAAC,QAAK,UAAQ,MAAE,iBAAO,uDAAe,aAAY,GACpD,GACF;AAAA;AAAA;AAAA,IACF;AAAA,IACA;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC,QAAO;AAAA,QACP,iBAAe;AAAA,QACf,OAAO,EAAE,cAAc,GAAG,SAAS,EAAE;AAAA,QACrC,OAAM;AAAA,QACN,OAAM;AAAA,QAEN;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAO;AAAA,YACP,SAAQ;AAAA,YACR,IAAG;AAAA,YACH,UAAS;AAAA,YACT,OAAM;AAAA,YAEN;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,UAAU;AAAA,kBACV;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,UAAU;AAAA,kBACV,OAAO;AAAA;AAAA,cACT;AAAA,cACA,oBAAC,OAAI,UAAS,YAAW,OAAM,QAAO,KAAI,QACtC,+BAAC,cAAW,OAAM,QAAO,SAAS,kBAAkB,SAAQ,SAC1D;AAAA,oCAAC,OAAI,SAAS,EAAE,SAAS,QAAQ,IAAI,QAAQ,GAC3C,8BAAC,cAAW,QAAQ,IAAI,OAAO,IAAI,GACrC;AAAA,gBACA,oBAAC,OAAI,SAAS,EAAE,SAAS,SAAS,IAAI,OAAO,GAC3C,8BAAC,cAAW,QAAQ,IAAI,OAAO,IAAI,GACrC;AAAA,iBACF,GACJ;AAAA,cAEJ,oBAAC,OAAO,MAAP,EAAY,cAAc,kBAAkB,MAC3C;AAAA,gBAAC,OAAO;AAAA,gBAAP;AAAA,kBACC,SACE,qBAAC,QAAK,KAAI,KAAI,SAAQ,OACpB;AAAA,wCAAC,OAAO,OAAP,EAAa,SAAO,MACnB,8BAAC,UAAO,OAAM,QAAO,SAAQ,WAAU,sCAEvC,GACF;AAAA,oBACA,oBAAC,OAAO,OAAP,EACD,8BAAC,UAAO,OAAM,OAAM,SAAS,kBAAkB,gCAE/C,GACA;AAAA,qBACF;AAAA,kBAEF,OAAM;AAAA,kBAEN,8BAAC,QAAK,8JAA6B;AAAA;AAAA,cACrC,GACF;AAAA;AAAA;AAAA,QAIE;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,4BAAQ;","names":["open"]}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CurriculumReviewSteps_default
|
|
3
|
+
} from "./chunk-6MNNWSAC.js";
|
|
4
|
+
import {
|
|
5
|
+
useCurriculumContext
|
|
6
|
+
} from "./chunk-IYQJIEVM.js";
|
|
7
|
+
import {
|
|
8
|
+
Dialog
|
|
9
|
+
} from "./chunk-45VFASWZ.js";
|
|
10
|
+
import {
|
|
11
|
+
IconButton
|
|
12
|
+
} from "./chunk-O3DNDMV3.js";
|
|
13
|
+
import {
|
|
14
|
+
Box
|
|
15
|
+
} from "./chunk-4Y5BEXVN.js";
|
|
16
|
+
import {
|
|
17
|
+
Typo
|
|
18
|
+
} from "./chunk-LH57PIY2.js";
|
|
19
|
+
import {
|
|
20
|
+
Flex
|
|
21
|
+
} from "./chunk-25HMMI7R.js";
|
|
22
|
+
import {
|
|
23
|
+
Button
|
|
24
|
+
} from "./chunk-AFPH32MF.js";
|
|
25
|
+
import {
|
|
26
|
+
__spreadValues
|
|
27
|
+
} from "./chunk-2NMEKWO5.js";
|
|
28
|
+
|
|
29
|
+
// src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx
|
|
30
|
+
import { useCallback, useMemo, useState } from "react";
|
|
31
|
+
import { Cross1Icon } from "@radix-ui/react-icons";
|
|
32
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
33
|
+
function CurriculumReview(props) {
|
|
34
|
+
const { item, sectionTitle } = props;
|
|
35
|
+
const { description, buttonTitle } = item;
|
|
36
|
+
const {
|
|
37
|
+
curriculum,
|
|
38
|
+
onReviewSubmit: _onReviewSubmit,
|
|
39
|
+
onReviewValueChange: _onReviewValueChange,
|
|
40
|
+
curriculumReviewAnswers,
|
|
41
|
+
tempCurriculumReviewAnswers,
|
|
42
|
+
curriculumCompleteMap
|
|
43
|
+
} = useCurriculumContext();
|
|
44
|
+
const [open, setOpen] = useState(false);
|
|
45
|
+
const [isChanged, setIsChanged] = useState(false);
|
|
46
|
+
const [closeDialogOpen, setCloseDialogOpen] = useState(false);
|
|
47
|
+
const onReviewValueChange = useCallback(({ reviewId, answer }) => {
|
|
48
|
+
setIsChanged(true);
|
|
49
|
+
_onReviewValueChange({ reviewId, answer });
|
|
50
|
+
}, [_onReviewValueChange]);
|
|
51
|
+
const onReviewSubmit = useCallback(
|
|
52
|
+
(values) => {
|
|
53
|
+
return _onReviewSubmit({ reviewId: item.uuid, answer: values }).then(
|
|
54
|
+
(result) => {
|
|
55
|
+
setIsChanged(false);
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
},
|
|
60
|
+
[item.uuid, _onReviewSubmit]
|
|
61
|
+
);
|
|
62
|
+
const onClickEndReview = useCallback(() => {
|
|
63
|
+
setOpen(false);
|
|
64
|
+
}, []);
|
|
65
|
+
const onClickCloseDrawer = useCallback(() => {
|
|
66
|
+
setCloseDialogOpen(true);
|
|
67
|
+
}, []);
|
|
68
|
+
const mode = useMemo(() => {
|
|
69
|
+
return item.questions.every(
|
|
70
|
+
(question) => curriculumReviewAnswers[question.uuid] && curriculumReviewAnswers[question.uuid] !== ""
|
|
71
|
+
) ? "edit" : "create";
|
|
72
|
+
}, [curriculumReviewAnswers, item.questions]);
|
|
73
|
+
const defaultValues = useMemo(() => {
|
|
74
|
+
const allAnswers = __spreadValues(__spreadValues({}, tempCurriculumReviewAnswers), curriculumReviewAnswers);
|
|
75
|
+
return item.questions.reduce((acc, question) => {
|
|
76
|
+
acc[question.uuid] = allAnswers[question.uuid] || "";
|
|
77
|
+
return acc;
|
|
78
|
+
}, {});
|
|
79
|
+
}, [curriculumReviewAnswers, item.questions, tempCurriculumReviewAnswers]);
|
|
80
|
+
const done = useMemo(() => {
|
|
81
|
+
return Boolean(curriculumCompleteMap[item.uuid]);
|
|
82
|
+
}, [curriculumCompleteMap, item.uuid]);
|
|
83
|
+
const bgColor = done ? "var(--color-panel-solid)" : void 0;
|
|
84
|
+
return /* @__PURE__ */ jsxs(Dialog.Root, { onOpenChange: setOpen, open, children: [
|
|
85
|
+
/* @__PURE__ */ jsxs(
|
|
86
|
+
Flex,
|
|
87
|
+
{
|
|
88
|
+
align: "center",
|
|
89
|
+
direction: "column",
|
|
90
|
+
height: "100%",
|
|
91
|
+
justify: "center",
|
|
92
|
+
px: "3",
|
|
93
|
+
py: "3",
|
|
94
|
+
style: {
|
|
95
|
+
backgroundImage: `url(https://tipp-coaching-live.s3.ap-northeast-2.amazonaws.com/images/curriculum_review_bg.png)`,
|
|
96
|
+
backgroundPosition: "center",
|
|
97
|
+
backgroundSize: "cover",
|
|
98
|
+
backgroundRepeat: "no-repeat"
|
|
99
|
+
},
|
|
100
|
+
width: "100%",
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ jsx(Typo, { color: "gray", weight: "bold", children: curriculum.title }),
|
|
103
|
+
/* @__PURE__ */ jsx(Typo, { align: "center", as: "p", color: "gray", children: description }),
|
|
104
|
+
/* @__PURE__ */ jsx(Dialog.Trigger, { children: /* @__PURE__ */ jsx(
|
|
105
|
+
Button,
|
|
106
|
+
{
|
|
107
|
+
mt: "3",
|
|
108
|
+
style: { minWidth: 232, backgroundColor: bgColor },
|
|
109
|
+
variant: done ? "outline" : "solid",
|
|
110
|
+
children: /* @__PURE__ */ jsx(Typo, { truncate: true, children: done ? "\uB098\uC758 \uC751\uB2F5 \uB2E4\uC2DC\uBCF4\uAE30" : buttonTitle })
|
|
111
|
+
}
|
|
112
|
+
) })
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
/* @__PURE__ */ jsx(
|
|
117
|
+
Dialog.Content,
|
|
118
|
+
{
|
|
119
|
+
height: "100%",
|
|
120
|
+
hideCloseButton: true,
|
|
121
|
+
style: { borderRadius: 0, padding: 0 },
|
|
122
|
+
title: "",
|
|
123
|
+
width: "100%",
|
|
124
|
+
children: /* @__PURE__ */ jsxs(
|
|
125
|
+
Flex,
|
|
126
|
+
{
|
|
127
|
+
align: "center",
|
|
128
|
+
height: "100%",
|
|
129
|
+
justify: "center",
|
|
130
|
+
pb: "3",
|
|
131
|
+
position: "relative",
|
|
132
|
+
width: "100%",
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ jsx(
|
|
135
|
+
CurriculumReviewSteps_default,
|
|
136
|
+
{
|
|
137
|
+
contents: item,
|
|
138
|
+
curriculum,
|
|
139
|
+
defaultValues,
|
|
140
|
+
done,
|
|
141
|
+
mode,
|
|
142
|
+
onClickEndReview,
|
|
143
|
+
onReviewValueChange,
|
|
144
|
+
onSubmit: onReviewSubmit,
|
|
145
|
+
title: sectionTitle
|
|
146
|
+
}
|
|
147
|
+
),
|
|
148
|
+
/* @__PURE__ */ jsx(Box, { position: "absolute", right: "16px", top: "16px", children: /* @__PURE__ */ jsxs(
|
|
149
|
+
IconButton,
|
|
150
|
+
{
|
|
151
|
+
color: "gray",
|
|
152
|
+
onClick: onClickCloseDrawer,
|
|
153
|
+
variant: "ghost",
|
|
154
|
+
children: [
|
|
155
|
+
/* @__PURE__ */ jsx(Box, { display: { initial: "none", md: "block" }, children: /* @__PURE__ */ jsx(Cross1Icon, { height: 20, width: 20 }) }),
|
|
156
|
+
/* @__PURE__ */ jsx(Box, { display: { initial: "block", md: "none" }, children: /* @__PURE__ */ jsx(Cross1Icon, { height: 16, width: 16 }) })
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
) }),
|
|
160
|
+
/* @__PURE__ */ jsx(Dialog.Root, { onOpenChange: setCloseDialogOpen, open: closeDialogOpen, children: /* @__PURE__ */ jsx(
|
|
161
|
+
Dialog.Content,
|
|
162
|
+
{
|
|
163
|
+
buttons: /* @__PURE__ */ jsxs(Flex, { gap: "3", justify: "end", children: [
|
|
164
|
+
/* @__PURE__ */ jsx(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { color: "gray", variant: "outline", children: "\uB3CC\uC544\uAC00\uAE30" }) }),
|
|
165
|
+
/* @__PURE__ */ jsx(Dialog.Close, { children: /* @__PURE__ */ jsx(Button, { color: "red", onClick: onClickEndReview, children: "\uB098\uAC00\uAE30" }) })
|
|
166
|
+
] }),
|
|
167
|
+
title: "\uC791\uC131\uC744 \uC911\uB2E8\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",
|
|
168
|
+
children: /* @__PURE__ */ jsx(Typo, { children: "\uD398\uC774\uC9C0\uC5D0\uC11C \uBC97\uC5B4\uB098\uBA74 \uC791\uC131\uD55C \uB0B4\uC6A9\uC774 \uC800\uC7A5\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4." })
|
|
169
|
+
}
|
|
170
|
+
) })
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
)
|
|
176
|
+
] });
|
|
177
|
+
}
|
|
178
|
+
var curriculum_review_default = CurriculumReview;
|
|
179
|
+
|
|
180
|
+
export {
|
|
181
|
+
curriculum_review_default
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=chunk-5AI22DIH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { Cross1Icon } from '@radix-ui/react-icons';\nimport { Box, Button, Dialog, Flex, IconButton, Typo } from '@/atoms';\nimport { type CurriculumReviewContents } from '@/types/curriculumContents.type';\nimport { useCurriculumContext } from '../curriculum-context';\nimport CurriculumReviewSteps from './CurriculumReviewSteps';\n\ninterface CurriculumReviewProps {\n item: CurriculumReviewContents;\n sectionTitle: string | undefined;\n}\n\nfunction CurriculumReview(props: CurriculumReviewProps): React.ReactNode {\n const { item, sectionTitle } = props;\n const { description, buttonTitle } = item;\n const {\n curriculum,\n onReviewSubmit: _onReviewSubmit,\n onReviewValueChange: _onReviewValueChange,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n } = useCurriculumContext();\n const [open, setOpen] = useState(false);\n const [isChanged, setIsChanged] = useState(false);\n const [closeDialogOpen, setCloseDialogOpen] = useState(false);\n\n const onReviewValueChange = useCallback(({ reviewId, answer, }: {\n reviewId: string;\n answer: Record<string, string>;\n}) => {\n setIsChanged(true);\n _onReviewValueChange({ reviewId, answer });\n }, [_onReviewValueChange]);\n\n\n const onReviewSubmit = useCallback(\n (values: Record<string, string>) => {\n return _onReviewSubmit({ reviewId: item.uuid, answer: values }).then(\n (result) => {\n setIsChanged(false);\n return result;\n }\n );\n },\n [item.uuid, _onReviewSubmit]\n );\n\n const onClickEndReview = useCallback(() => {\n setOpen(false);\n }, []);\n\n const onClickCloseDrawer = useCallback(() => {\n setCloseDialogOpen(true);\n }, []);\n\n const mode = useMemo(() => {\n return item.questions.every(\n (question) =>\n curriculumReviewAnswers[question.uuid] &&\n curriculumReviewAnswers[question.uuid] !== ''\n )\n ? 'edit'\n : 'create';\n }, [curriculumReviewAnswers, item.questions]);\n\n const defaultValues = useMemo(() => {\n const allAnswers = {\n ...tempCurriculumReviewAnswers,\n ...curriculumReviewAnswers,\n };\n\n return item.questions.reduce<Record<string, string>>((acc, question) => {\n acc[question.uuid] = allAnswers[question.uuid] || '';\n return acc;\n }, {});\n }, [curriculumReviewAnswers, item.questions, tempCurriculumReviewAnswers]);\n\n const done = useMemo(() => {\n return Boolean(curriculumCompleteMap[item.uuid]);\n }, [curriculumCompleteMap, item.uuid]);\n\n const bgColor = done ? 'var(--color-panel-solid)' : undefined;\n\n return (\n <Dialog.Root onOpenChange={setOpen} open={open}>\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n px=\"3\"\n py=\"3\"\n style={{\n backgroundImage: `url(https://tipp-coaching-live.s3.ap-northeast-2.amazonaws.com/images/curriculum_review_bg.png)`,\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n }}\n width=\"100%\"\n >\n <Typo color=\"gray\" weight=\"bold\">\n {curriculum.title}\n </Typo>\n <Typo align=\"center\" as=\"p\" color=\"gray\">\n {description}\n </Typo>\n\n <Dialog.Trigger>\n <Button\n mt=\"3\"\n style={{ minWidth: 232, backgroundColor: bgColor }}\n variant={done ? 'outline' : 'solid'}\n >\n <Typo truncate>{done ? '나의 응답 다시보기' : buttonTitle}</Typo>\n </Button>\n </Dialog.Trigger>\n </Flex>\n <Dialog.Content\n height=\"100%\"\n hideCloseButton\n style={{ borderRadius: 0, padding: 0 }}\n title=\"\"\n width=\"100%\"\n >\n <Flex\n align=\"center\"\n height=\"100%\"\n justify=\"center\"\n pb=\"3\"\n position=\"relative\"\n width=\"100%\"\n >\n <CurriculumReviewSteps\n contents={item}\n curriculum={curriculum}\n defaultValues={defaultValues}\n done={done}\n mode={mode}\n onClickEndReview={onClickEndReview}\n onReviewValueChange={onReviewValueChange}\n onSubmit={onReviewSubmit}\n title={sectionTitle}\n />\n <Box position=\"absolute\" right=\"16px\" top=\"16px\">\n <IconButton\n color=\"gray\"\n onClick={onClickCloseDrawer}\n variant=\"ghost\"\n >\n <Box display={{ initial: 'none', md: 'block' }}>\n <Cross1Icon height={20} width={20} />\n </Box>\n <Box display={{ initial: 'block', md: 'none' }}>\n <Cross1Icon height={16} width={16} />\n </Box>\n </IconButton>\n </Box>\n\n <Dialog.Root onOpenChange={setCloseDialogOpen} open={closeDialogOpen}>\n <Dialog.Content\n buttons={\n <Flex gap=\"3\" justify=\"end\">\n <Dialog.Close asChild>\n <Button color=\"gray\" variant=\"outline\">\n 돌아가기\n </Button>\n </Dialog.Close>\n <Dialog.Close>\n <Button color=\"red\" onClick={onClickEndReview}>\n 나가기\n </Button>\n </Dialog.Close>\n </Flex>\n }\n title=\"작성을 중단하시겠습니까?\"\n >\n <Typo>페이지에서 벗어나면 작성한 내용이 저장되지 않습니다.</Typo>\n </Dialog.Content>\n </Dialog.Root>\n </Flex>\n </Dialog.Content>\n </Dialog.Root>\n );\n}\n\nexport default CurriculumReview;\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__spreadValues
|
|
3
|
+
} from "./chunk-2NMEKWO5.js";
|
|
4
|
+
|
|
5
|
+
// src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/curriculum-review-context.tsx
|
|
6
|
+
import {
|
|
7
|
+
createContext,
|
|
8
|
+
useContext,
|
|
9
|
+
useMemo,
|
|
10
|
+
useState,
|
|
11
|
+
useCallback,
|
|
12
|
+
useEffect
|
|
13
|
+
} from "react";
|
|
14
|
+
import { useFormik } from "formik";
|
|
15
|
+
import { cloneDeep } from "lodash-es";
|
|
16
|
+
import * as Yup from "yup";
|
|
17
|
+
import { jsx } from "react/jsx-runtime";
|
|
18
|
+
var CurriculumReviewContext = createContext(void 0);
|
|
19
|
+
function getInitialAnswers(defaultValues, questions) {
|
|
20
|
+
return questions.reduce((acc, q) => {
|
|
21
|
+
var _a;
|
|
22
|
+
acc[q.uuid] = (_a = defaultValues[q.uuid]) != null ? _a : "";
|
|
23
|
+
return acc;
|
|
24
|
+
}, {});
|
|
25
|
+
}
|
|
26
|
+
function createAnswersYupSchema(questions) {
|
|
27
|
+
const shape = {};
|
|
28
|
+
questions.forEach((q) => {
|
|
29
|
+
let schema = Yup.string();
|
|
30
|
+
if (q.required) {
|
|
31
|
+
schema = schema.required(`${q.title}\uC740(\uB294) \uD544\uC218 \uC785\uB825 \uD56D\uBAA9\uC785\uB2C8\uB2E4.`).trim();
|
|
32
|
+
if (q.minLength && typeof q.minLength === "number") {
|
|
33
|
+
schema = schema.min(
|
|
34
|
+
q.minLength,
|
|
35
|
+
`${q.title}\uC740(\uB294) \uCD5C\uC18C ${q.minLength}\uC790 \uC774\uC0C1 \uC785\uB825\uD574\uC57C \uD569\uB2C8\uB2E4.`
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
schema = schema.min(0);
|
|
40
|
+
}
|
|
41
|
+
shape[q.uuid] = schema;
|
|
42
|
+
});
|
|
43
|
+
return Yup.object().shape(shape);
|
|
44
|
+
}
|
|
45
|
+
function CurriculumReviewProvider({
|
|
46
|
+
reviewContents: _reviewContents,
|
|
47
|
+
sectionTitle,
|
|
48
|
+
children,
|
|
49
|
+
onClickEndReview,
|
|
50
|
+
onSubmit,
|
|
51
|
+
defaultValues,
|
|
52
|
+
curriculum,
|
|
53
|
+
onReviewValueChange,
|
|
54
|
+
done
|
|
55
|
+
}) {
|
|
56
|
+
const fixedReviewContents = useMemo(() => {
|
|
57
|
+
const result = cloneDeep(_reviewContents);
|
|
58
|
+
result.questions = result.questions.map((question) => {
|
|
59
|
+
if (question.type === "question_satisfaction_option") {
|
|
60
|
+
return __spreadValues(__spreadValues({}, curriculum.contents.satisfactionOptionMeta), question);
|
|
61
|
+
}
|
|
62
|
+
if (question.type === "question_satisfaction_text") {
|
|
63
|
+
return __spreadValues(__spreadValues({}, curriculum.contents.satisfactionTextMeta), question);
|
|
64
|
+
}
|
|
65
|
+
return question;
|
|
66
|
+
});
|
|
67
|
+
return result;
|
|
68
|
+
}, [
|
|
69
|
+
curriculum.contents.satisfactionOptionMeta,
|
|
70
|
+
curriculum.contents.satisfactionTextMeta,
|
|
71
|
+
_reviewContents
|
|
72
|
+
]);
|
|
73
|
+
const [step, setStep] = useState(0);
|
|
74
|
+
const answersYupSchema = useMemo(
|
|
75
|
+
() => createAnswersYupSchema(fixedReviewContents.questions),
|
|
76
|
+
[fixedReviewContents.questions]
|
|
77
|
+
);
|
|
78
|
+
const formik = useFormik({
|
|
79
|
+
initialValues: {
|
|
80
|
+
answers: getInitialAnswers(defaultValues != null ? defaultValues : {}, fixedReviewContents.questions)
|
|
81
|
+
},
|
|
82
|
+
validationSchema: Yup.object({
|
|
83
|
+
answers: answersYupSchema
|
|
84
|
+
}),
|
|
85
|
+
onSubmit: (values) => {
|
|
86
|
+
const result = onSubmit(values.answers);
|
|
87
|
+
return result.then((isSuccess) => {
|
|
88
|
+
if (isSuccess) {
|
|
89
|
+
setStep((prev) => prev + 1);
|
|
90
|
+
}
|
|
91
|
+
return isSuccess;
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
enableReinitialize: true,
|
|
95
|
+
validateOnMount: true,
|
|
96
|
+
validateOnChange: true
|
|
97
|
+
});
|
|
98
|
+
const questions = fixedReviewContents.questions;
|
|
99
|
+
const handleStart = useCallback(() => {
|
|
100
|
+
setStep(1);
|
|
101
|
+
}, []);
|
|
102
|
+
const handleNext = useCallback(() => {
|
|
103
|
+
if (step < questions.length) {
|
|
104
|
+
setStep(step + 1);
|
|
105
|
+
} else {
|
|
106
|
+
formik.handleSubmit();
|
|
107
|
+
setStep(questions.length + 1);
|
|
108
|
+
}
|
|
109
|
+
}, [step, questions.length, formik]);
|
|
110
|
+
const handlePrev = useCallback(() => {
|
|
111
|
+
if (step > 1) {
|
|
112
|
+
setStep(step - 1);
|
|
113
|
+
}
|
|
114
|
+
}, [step]);
|
|
115
|
+
const onClickReviewMyAnswer = useCallback(() => {
|
|
116
|
+
setStep(0);
|
|
117
|
+
}, []);
|
|
118
|
+
const handleSubmit = useCallback(() => {
|
|
119
|
+
formik.handleSubmit();
|
|
120
|
+
}, [formik]);
|
|
121
|
+
const currentQuestion = useMemo(() => {
|
|
122
|
+
return step > 0 && step <= questions.length ? questions[step - 1] : void 0;
|
|
123
|
+
}, [step, questions]);
|
|
124
|
+
const currentAnswer = useMemo(() => {
|
|
125
|
+
return currentQuestion ? formik.values.answers[currentQuestion.uuid] : "";
|
|
126
|
+
}, [currentQuestion, formik.values.answers]);
|
|
127
|
+
const currentError = useMemo(() => {
|
|
128
|
+
return currentQuestion && formik.errors.answers && formik.errors.answers[currentQuestion.uuid];
|
|
129
|
+
}, [currentQuestion, formik.errors.answers]);
|
|
130
|
+
const handleAnswerChange = useCallback(
|
|
131
|
+
(value) => {
|
|
132
|
+
if (currentQuestion) {
|
|
133
|
+
void formik.setFieldValue(`answers.${currentQuestion.uuid}`, value);
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
[currentQuestion, formik]
|
|
137
|
+
);
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
if (currentQuestion) {
|
|
140
|
+
onReviewValueChange({
|
|
141
|
+
reviewId: currentQuestion.uuid,
|
|
142
|
+
answer: formik.values.answers
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}, [currentQuestion == null ? void 0 : currentQuestion.uuid, currentAnswer, onReviewValueChange]);
|
|
146
|
+
return /* @__PURE__ */ jsx(
|
|
147
|
+
CurriculumReviewContext.Provider,
|
|
148
|
+
{
|
|
149
|
+
value: {
|
|
150
|
+
reviewContents: fixedReviewContents,
|
|
151
|
+
formik,
|
|
152
|
+
curriculum,
|
|
153
|
+
sectionTitle,
|
|
154
|
+
onClickEndReview,
|
|
155
|
+
step,
|
|
156
|
+
setStep,
|
|
157
|
+
handleStart,
|
|
158
|
+
handleNext,
|
|
159
|
+
handlePrev,
|
|
160
|
+
onClickReviewMyAnswer,
|
|
161
|
+
handleSubmit,
|
|
162
|
+
currentQuestion,
|
|
163
|
+
currentAnswer,
|
|
164
|
+
currentError,
|
|
165
|
+
handleAnswerChange,
|
|
166
|
+
done
|
|
167
|
+
},
|
|
168
|
+
children
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
function useCurriculumReviewContext() {
|
|
173
|
+
const context = useContext(CurriculumReviewContext);
|
|
174
|
+
if (!context) {
|
|
175
|
+
throw new Error(
|
|
176
|
+
"useCurriculumReviewContext must be used within a CurriculumReviewProvider"
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
return context;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export {
|
|
183
|
+
CurriculumReviewProvider,
|
|
184
|
+
useCurriculumReviewContext
|
|
185
|
+
};
|
|
186
|
+
//# sourceMappingURL=chunk-5BSTLWTR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/curriculum-review-context.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext, \n useMemo,\n useState,\n useCallback,\n type ReactNode,\n useEffect,\n} from 'react';\nimport { useFormik, type FormikProps } from 'formik';\nimport { cloneDeep } from 'lodash-es';\nimport * as Yup from 'yup';\nimport {\n type CurriculumReviewContents, \n} from '@/types/curriculumContents.type'; \nimport type { Curriculum, ReviewQuestionElement } from '@/types/curriculum.type';\n\ninterface CurriculumReviewFormValues {\n answers: Record<string, string>;\n}\n\ninterface CurriculumReviewContextValue {\n reviewContents: CurriculumReviewContents;\n formik: FormikProps<CurriculumReviewFormValues>;\n curriculum: Curriculum;\n sectionTitle: string | undefined;\n onClickEndReview: () => void;\n // step 관련 추가\n step: number;\n setStep: (step: number) => void;\n handleStart: () => void;\n handleNext: () => void;\n handlePrev: () => void;\n onClickReviewMyAnswer: () => void;\n handleSubmit: () => void;\n currentQuestion: ReviewQuestionElement | undefined;\n currentAnswer: string;\n currentError: string | undefined; \n handleAnswerChange: (value: string) => void;\n done: boolean;\n}\n\nconst CurriculumReviewContext = createContext<\n CurriculumReviewContextValue | undefined\n>(undefined);\n\ninterface CurriculumReviewProviderProps extends Pick<CurriculumReviewContextValue, 'reviewContents' | 'sectionTitle' | 'onClickEndReview' | 'curriculum' | 'done' > {\n children: ReactNode;\n /** 제출 후, 다음 학습으로 넘어가기 버튼 */\n onClickEndReview: () => void;\n /** key: 질문의 uuid, value: 응답 값 */\n onSubmit: (values: Record<string, string>) => Promise<boolean>; \n /** key: 질문의 uuid, value: 응답 값 */\n defaultValues?: Record<string, string>; \n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n mode: 'edit' | 'create';\n}\n\nfunction getInitialAnswers(\n defaultValues: Record<string, string>,\n questions: ReviewQuestionElement[]\n): Record<string, string> {\n return questions.reduce<Record<string, string>>((acc, q) => {\n acc[q.uuid] = defaultValues[q.uuid] ?? '';\n return acc;\n }, {});\n}\n \nfunction createAnswersYupSchema(\n questions: ReviewQuestionElement[]\n): Yup.ObjectSchema<Record<string, string | undefined>> {\n const shape: Record<string, Yup.StringSchema<string | undefined>> = {};\n questions.forEach((q) => {\n let schema = Yup.string();\n if (q.required) {\n schema = schema\n .required(`${q.title}은(는) 필수 입력 항목입니다.`)\n .trim();\n if (q.minLength && typeof q.minLength === 'number') {\n schema = schema.min(\n q.minLength,\n `${q.title}은(는) 최소 ${q.minLength}자 이상 입력해야 합니다.`\n );\n }\n } else {\n schema = schema.min(0);\n }\n shape[q.uuid] = schema;\n });\n return Yup.object().shape(shape);\n} \n\nexport function CurriculumReviewProvider({\n reviewContents: _reviewContents,\n sectionTitle,\n children,\n onClickEndReview, \n onSubmit,\n defaultValues, \n curriculum,\n onReviewValueChange,\n done,\n}: CurriculumReviewProviderProps): React.ReactElement {\n \n const fixedReviewContents = useMemo<CurriculumReviewContents>(() => {\n const result = cloneDeep(_reviewContents);\n result.questions = result.questions.map((question) => {\n if (question.type === 'question_satisfaction_option') {\n return {\n ...curriculum.contents.satisfactionOptionMeta,\n ...question,\n };\n }\n if (question.type === 'question_satisfaction_text') {\n return {\n ...curriculum.contents.satisfactionTextMeta,\n ...question,\n };\n }\n return question;\n });\n return result;\n }, [\n curriculum.contents.satisfactionOptionMeta,\n curriculum.contents.satisfactionTextMeta,\n _reviewContents,\n ]);\n\n\n // step 상태 및 관련 로직 추가\n const [step, setStep] = useState<number>(0); // 0: 소개, 1~N: 질문, N+1: 완료\n\n // Yup 스키마 생성\n const answersYupSchema = useMemo(\n () => createAnswersYupSchema(fixedReviewContents.questions),\n [fixedReviewContents.questions]\n );\n\n const formik = useFormik<CurriculumReviewFormValues>({\n initialValues: {\n answers: getInitialAnswers(defaultValues ?? {}, fixedReviewContents.questions),\n },\n validationSchema: Yup.object({\n answers: answersYupSchema,\n }),\n onSubmit: (values) => {\n \n const result = onSubmit(values.answers);\n return result.then((isSuccess: boolean) => {\n if (isSuccess) {\n setStep(prev => prev + 1);\n }\n return isSuccess;\n });\n },\n enableReinitialize: true,\n validateOnMount: true,\n validateOnChange: true,\n });\n\n // step 관련 핸들러 및 메모\n const questions = fixedReviewContents.questions;\n\n const handleStart = useCallback((): void => {\n setStep(1);\n }, []);\n\n const handleNext = useCallback((): void => {\n if (step < questions.length) {\n setStep(step + 1);\n } else {\n // 마지막 질문: 제출\n formik.handleSubmit();\n setStep(questions.length + 1);\n }\n }, [step, questions.length, formik]);\n\n const handlePrev = useCallback((): void => {\n if (step > 1) {\n setStep(step - 1);\n }\n }, [step]);\n\n const onClickReviewMyAnswer = useCallback((): void => {\n setStep(0);\n }, []);\n\n const handleSubmit = useCallback((): void => {\n formik.handleSubmit();\n }, [formik]);\n\n // 현재 질문 정보\n const currentQuestion = useMemo(() => {\n return step > 0 && step <= questions.length\n ? questions[step - 1]\n : undefined;\n }, [step, questions]);\n\n const currentAnswer = useMemo(() => {\n return currentQuestion ? formik.values.answers[currentQuestion.uuid] : '';\n }, [currentQuestion, formik.values.answers]);\n\n const currentError = useMemo(() => { \n return (\n currentQuestion &&\n formik.errors.answers &&\n (formik.errors.answers as Record<string, string>)[currentQuestion.uuid]\n );\n }, [currentQuestion, formik.errors.answers]);\n \n const handleAnswerChange = useCallback(\n (value: string): void => {\n if (currentQuestion) {\n void formik.setFieldValue(`answers.${currentQuestion.uuid}`, value);\n }\n },\n [currentQuestion, formik]\n );\n\n useEffect(() => {\n if (currentQuestion) {\n onReviewValueChange({\n reviewId: currentQuestion.uuid,\n answer: formik.values.answers,\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- 트리거 최적화\n }, [currentQuestion?.uuid, currentAnswer, onReviewValueChange]);\n \n return (\n <CurriculumReviewContext.Provider\n value={{\n reviewContents: fixedReviewContents,\n formik,\n curriculum,\n sectionTitle,\n onClickEndReview, \n step,\n setStep,\n handleStart,\n handleNext,\n handlePrev,\n onClickReviewMyAnswer,\n handleSubmit,\n currentQuestion,\n currentAnswer,\n currentError, \n handleAnswerChange,\n done,\n }}\n >\n {children}\n </CurriculumReviewContext.Provider>\n );\n}\n\nexport function useCurriculumReviewContext(): CurriculumReviewContextValue {\n const context = useContext(CurriculumReviewContext);\n if (!context) {\n throw new Error(\n 'useCurriculumReviewContext must be used within a CurriculumReviewProvider'\n );\n }\n return context;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import {
|
|
2
|
+
curriculum_ai_traning_default
|
|
3
|
+
} from "./chunk-N2Q6ESHU.js";
|
|
4
|
+
import {
|
|
5
|
+
curriculum_review_default
|
|
6
|
+
} from "./chunk-OSVSHYT2.js";
|
|
7
|
+
import {
|
|
8
|
+
curriculum_video_default
|
|
9
|
+
} from "./chunk-HYMGXDPL.js";
|
|
10
|
+
import {
|
|
11
|
+
useCurriculumContext
|
|
12
|
+
} from "./chunk-IYQJIEVM.js";
|
|
13
|
+
import {
|
|
14
|
+
Typo
|
|
15
|
+
} from "./chunk-LH57PIY2.js";
|
|
16
|
+
import {
|
|
17
|
+
Flex
|
|
18
|
+
} from "./chunk-25HMMI7R.js";
|
|
19
|
+
import {
|
|
20
|
+
InfoCircledIcon
|
|
21
|
+
} from "./chunk-CEK4NKTO.js";
|
|
22
|
+
|
|
23
|
+
// src/molecules/curriculumV2/CurriculumContents/index.tsx
|
|
24
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
25
|
+
function CurriculumBody() {
|
|
26
|
+
const { selectedItem, selectedSectionTitle } = useCurriculumContext();
|
|
27
|
+
switch (selectedItem.type) {
|
|
28
|
+
case "video":
|
|
29
|
+
return /* @__PURE__ */ jsx(curriculum_video_default, { item: selectedItem });
|
|
30
|
+
case "review":
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
curriculum_review_default,
|
|
33
|
+
{
|
|
34
|
+
item: selectedItem,
|
|
35
|
+
sectionTitle: selectedSectionTitle == null ? void 0 : selectedSectionTitle.title
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
case "aiTraining":
|
|
39
|
+
return /* @__PURE__ */ jsx(curriculum_ai_traning_default, { item: selectedItem });
|
|
40
|
+
default:
|
|
41
|
+
return /* @__PURE__ */ jsxs(
|
|
42
|
+
Flex,
|
|
43
|
+
{
|
|
44
|
+
align: "center",
|
|
45
|
+
direction: "column",
|
|
46
|
+
gap: "2",
|
|
47
|
+
height: "100%",
|
|
48
|
+
justify: "center",
|
|
49
|
+
width: "100%",
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsx(InfoCircledIcon, { height: 24, width: 24 }),
|
|
52
|
+
/* @__PURE__ */ jsx(Typo, { children: "\uCEE8\uD150\uCE20\uB97C \uB85C\uB529 \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4" }),
|
|
53
|
+
/* @__PURE__ */ jsx(Typo, { align: "center", color: "gray", variant: "caption", children: `[debug info]
|
|
54
|
+
${JSON.stringify(selectedItem)}` })
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export {
|
|
62
|
+
CurriculumBody
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=chunk-5EASI3O3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Flex, Typo } from '@/atoms';\nimport { InfoCircledIcon } from '@/icon';\nimport { useCurriculumContext } from '../curriculum-context';\nimport CurriculumVideo from './curriculum-video';\nimport CurriculumReview from './curriculum-review';\nimport CurriculumAiTraning from './curriculum-ai-traning';\n\nexport function CurriculumBody(): React.ReactNode {\n const { selectedItem, selectedSectionTitle } = useCurriculumContext();\n\n switch (selectedItem.type) {\n case 'video':\n return <CurriculumVideo item={selectedItem} />;\n case 'review':\n return (\n <CurriculumReview\n item={selectedItem}\n sectionTitle={selectedSectionTitle?.title}\n />\n );\n case 'aiTraining':\n return <CurriculumAiTraning item={selectedItem}/>\n default:\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n gap=\"2\"\n height=\"100%\"\n justify=\"center\"\n width=\"100%\"\n >\n <InfoCircledIcon height={24} width={24} />\n <Typo>컨텐츠를 로딩 할 수 없습니다</Typo>\n <Typo align=\"center\" color=\"gray\" variant=\"caption\">\n {`[debug info]\n ${JSON.stringify(selectedItem)}`}\n </Typo>\n </Flex>\n );\n }\n} "],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAaa,cAYL,YAZK;AALN,SAAS,iBAAkC;AAChD,QAAM,EAAE,cAAc,qBAAqB,IAAI,qBAAqB;AAEpE,UAAQ,aAAa,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,oBAAC,4BAAgB,MAAM,cAAc;AAAA,IAC9C,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,MAAM;AAAA,UACN,cAAc,6DAAsB;AAAA;AAAA,MACtC;AAAA,IAEF,KAAK;AACH,aAAO,oBAAC,iCAAoB,MAAM,cAAa;AAAA,IACnD;AACE,aACE;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,WAAU;AAAA,UACV,KAAI;AAAA,UACJ,QAAO;AAAA,UACP,SAAQ;AAAA,UACR,OAAM;AAAA,UAEN;AAAA,gCAAC,mBAAgB,QAAQ,IAAI,OAAO,IAAI;AAAA,YACxC,oBAAC,QAAK,0FAAgB;AAAA,YACtB,oBAAC,QAAK,OAAM,UAAS,OAAM,QAAO,SAAQ,WACvC;AAAA,cACC,KAAK,UAAU,YAAY,CAAC,IAChC;AAAA;AAAA;AAAA,MACF;AAAA,EAEN;AACF;","names":[]}
|