@tipp/ui 2.3.22 → 2.3.23
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 +217 -195
- package/dist/app/index.cjs.map +1 -1
- package/dist/app/index.js +105 -99
- package/dist/app/platform/coach-question-list.js +31 -31
- package/dist/app/platform/contents-card.js +31 -31
- package/dist/app/platform/curriculum-card.js +5 -5
- package/dist/app/platform/edit-coaching-time.cjs +47 -25
- package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
- package/dist/app/platform/edit-coaching-time.js +83 -77
- package/dist/app/platform/edit-service-type.cjs +42 -20
- package/dist/app/platform/edit-service-type.cjs.map +1 -1
- package/dist/app/platform/edit-service-type.js +84 -78
- package/dist/app/platform/goal-manage-card-edit.cjs +50 -28
- package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
- package/dist/app/platform/goal-manage-card-edit.js +83 -77
- package/dist/app/platform/goal-manage-card-read.js +31 -31
- package/dist/app/platform/on-offline-radio-card.cjs +77 -55
- package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
- package/dist/app/platform/on-offline-radio-card.js +83 -77
- package/dist/app/platform/report-card.js +31 -31
- package/dist/app/platform/reservation-card.cjs +66 -44
- package/dist/app/platform/reservation-card.cjs.map +1 -1
- package/dist/app/platform/reservation-card.js +84 -78
- package/dist/app/platform/session-card.cjs +92 -70
- package/dist/app/platform/session-card.cjs.map +1 -1
- package/dist/app/platform/session-card.js +86 -80
- package/dist/app/platform/session-review-simple-read.js +31 -31
- package/dist/app/platform/userInfos/coaching-customer-info/index.js +34 -34
- package/dist/app/platform/userInfos/coaching-customer-info/large.js +31 -31
- package/dist/app/platform/userInfos/coaching-customer-info/medium.js +31 -31
- package/dist/app/platform/userInfos/coaching-customer-info/small.js +31 -31
- package/dist/app/platform/userInfos/session-user-info-detail.js +31 -31
- package/dist/app/platform/userInfos/utils.js +30 -30
- package/dist/atoms/bullet-text.js +2 -2
- package/dist/atoms/dialog.js +2 -2
- package/dist/atoms/field-error-wrapper.js +2 -2
- package/dist/atoms/index.js +62 -62
- package/dist/atoms/list.js +2 -2
- package/dist/atoms/pagination.js +3 -3
- package/dist/chunk-2KOE33U7.js +245 -0
- package/dist/chunk-2KOE33U7.js.map +1 -0
- package/dist/chunk-2U5YD3BH.js +49 -0
- package/dist/chunk-2U5YD3BH.js.map +1 -0
- package/dist/chunk-2X3I7KDG.js +144 -0
- package/dist/chunk-2X3I7KDG.js.map +1 -0
- package/dist/chunk-2YSYS4AG.js +233 -0
- package/dist/chunk-2YSYS4AG.js.map +1 -0
- package/dist/chunk-35HQHUDU.js +228 -0
- package/dist/chunk-35HQHUDU.js.map +1 -0
- package/dist/chunk-3I55S6EP.js +89 -0
- package/dist/chunk-3I55S6EP.js.map +1 -0
- package/dist/chunk-3JDLAN5T.js +99 -0
- package/dist/chunk-3JDLAN5T.js.map +1 -0
- package/dist/chunk-3O2ARPTO.js +161 -0
- package/dist/chunk-3O2ARPTO.js.map +1 -0
- package/dist/chunk-3OO6ENQ4.js +228 -0
- package/dist/chunk-3OO6ENQ4.js.map +1 -0
- package/dist/chunk-45F3UCHR.js +222 -0
- package/dist/chunk-45F3UCHR.js.map +1 -0
- package/dist/chunk-4LUFF5LX.js +98 -0
- package/dist/chunk-4LUFF5LX.js.map +1 -0
- package/dist/chunk-4VV7VH5L.js +79 -0
- package/dist/chunk-4VV7VH5L.js.map +1 -0
- package/dist/chunk-5JCJ4QJO.js +245 -0
- package/dist/chunk-5JCJ4QJO.js.map +1 -0
- package/dist/chunk-5KZJMQCG.js +89 -0
- package/dist/chunk-5KZJMQCG.js.map +1 -0
- package/dist/chunk-5RAR3DG7.js +117 -0
- package/dist/chunk-5RAR3DG7.js.map +1 -0
- package/dist/chunk-5XOR7OPD.js +196 -0
- package/dist/chunk-5XOR7OPD.js.map +1 -0
- package/dist/chunk-5YESTYFF.js +79 -0
- package/dist/chunk-5YESTYFF.js.map +1 -0
- package/dist/chunk-64A2KJHN.js +276 -0
- package/dist/chunk-64A2KJHN.js.map +1 -0
- package/dist/chunk-6CSUU4L7.js +230 -0
- package/dist/chunk-6CSUU4L7.js.map +1 -0
- package/dist/chunk-6FKXUCHD.js +99 -0
- package/dist/chunk-6FKXUCHD.js.map +1 -0
- package/dist/chunk-6TQGX5ZU.js +98 -0
- package/dist/chunk-6TQGX5ZU.js.map +1 -0
- package/dist/chunk-6YZBHOXQ.js +226 -0
- package/dist/chunk-6YZBHOXQ.js.map +1 -0
- package/dist/chunk-7344ZPUM.js +117 -0
- package/dist/chunk-7344ZPUM.js.map +1 -0
- package/dist/chunk-7ABAJEJA.js +63 -0
- package/dist/chunk-7ABAJEJA.js.map +1 -0
- package/dist/chunk-7B5XAENQ.js +363 -0
- package/dist/chunk-7B5XAENQ.js.map +1 -0
- package/dist/chunk-7CQX7ELH.js +69 -0
- package/dist/chunk-7CQX7ELH.js.map +1 -0
- package/dist/chunk-7CRTGYJE.js +80 -0
- package/dist/chunk-7CRTGYJE.js.map +1 -0
- package/dist/chunk-7ITDAUWI.js +287 -0
- package/dist/chunk-7ITDAUWI.js.map +1 -0
- package/dist/chunk-7PQGETJT.js +69 -0
- package/dist/chunk-7PQGETJT.js.map +1 -0
- package/dist/chunk-7R65MUL6.js +106 -0
- package/dist/chunk-7R65MUL6.js.map +1 -0
- package/dist/chunk-7U5EZJOD.js +89 -0
- package/dist/chunk-7U5EZJOD.js.map +1 -0
- package/dist/chunk-7ZBZBOPI.js +63 -0
- package/dist/chunk-7ZBZBOPI.js.map +1 -0
- package/dist/chunk-A2FXUYSB.js +230 -0
- package/dist/chunk-A2FXUYSB.js.map +1 -0
- package/dist/chunk-A7CT5M2S.js +75 -0
- package/dist/chunk-A7CT5M2S.js.map +1 -0
- package/dist/chunk-A7JBBBBB.js +100 -0
- package/dist/chunk-A7JBBBBB.js.map +1 -0
- package/dist/chunk-AA6OYHCE.js +39 -0
- package/dist/chunk-AA6OYHCE.js.map +1 -0
- package/dist/chunk-ALETVN5F.js +245 -0
- package/dist/chunk-ALETVN5F.js.map +1 -0
- package/dist/chunk-ARJOCJVD.js +174 -0
- package/dist/chunk-ARJOCJVD.js.map +1 -0
- package/dist/chunk-ARVLB4CH.js +29 -0
- package/dist/chunk-ARVLB4CH.js.map +1 -0
- package/dist/chunk-B327EINU.js +43 -0
- package/dist/chunk-B327EINU.js.map +1 -0
- package/dist/chunk-B4TDMB52.js +226 -0
- package/dist/chunk-B4TDMB52.js.map +1 -0
- package/dist/chunk-BJZSGZ7H.js +63 -0
- package/dist/chunk-BJZSGZ7H.js.map +1 -0
- package/dist/chunk-BPMY3CDH.js +106 -0
- package/dist/chunk-BPMY3CDH.js.map +1 -0
- package/dist/chunk-C2ANXVMQ.js +221 -0
- package/dist/chunk-C2ANXVMQ.js.map +1 -0
- package/dist/chunk-C6BHVWJI.js +165 -0
- package/dist/chunk-C6BHVWJI.js.map +1 -0
- package/dist/chunk-CF3NAPUZ.js +196 -0
- package/dist/chunk-CF3NAPUZ.js.map +1 -0
- package/dist/chunk-CWRJOY56.js +245 -0
- package/dist/chunk-CWRJOY56.js.map +1 -0
- package/dist/chunk-D3H7YFTO.js +69 -0
- package/dist/chunk-D3H7YFTO.js.map +1 -0
- package/dist/chunk-DDAZ4IAG.js +689 -0
- package/dist/chunk-DDAZ4IAG.js.map +1 -0
- package/dist/chunk-DDVJMAYN.js +230 -0
- package/dist/chunk-DDVJMAYN.js.map +1 -0
- package/dist/chunk-DJ24574O.js +28 -0
- package/dist/chunk-DJ24574O.js.map +1 -0
- package/dist/chunk-DJCBLRLH.js +69 -0
- package/dist/chunk-DJCBLRLH.js.map +1 -0
- package/dist/chunk-DTHR4ABO.js +69 -0
- package/dist/chunk-DTHR4ABO.js.map +1 -0
- package/dist/chunk-DTK646M6.js +87 -0
- package/dist/chunk-DTK646M6.js.map +1 -0
- package/dist/chunk-DVZKRKWH.js +174 -0
- package/dist/chunk-DVZKRKWH.js.map +1 -0
- package/dist/chunk-E232GTT6.js +69 -0
- package/dist/chunk-E232GTT6.js.map +1 -0
- package/dist/chunk-EGTOU5MK.js +689 -0
- package/dist/chunk-EGTOU5MK.js.map +1 -0
- package/dist/chunk-EJAC46WB.js +39 -0
- package/dist/chunk-EJAC46WB.js.map +1 -0
- package/dist/chunk-F2I4LA63.js +51 -0
- package/dist/chunk-F2I4LA63.js.map +1 -0
- package/dist/chunk-F65P7KZI.js +98 -0
- package/dist/chunk-F65P7KZI.js.map +1 -0
- package/dist/chunk-F76YKHGP.js +245 -0
- package/dist/chunk-F76YKHGP.js.map +1 -0
- package/dist/chunk-FGX6IR4Q.js +68 -0
- package/dist/chunk-FGX6IR4Q.js.map +1 -0
- package/dist/chunk-FN2CUDUP.js +43 -0
- package/dist/chunk-FN2CUDUP.js.map +1 -0
- package/dist/chunk-FQUAFIUO.js +228 -0
- package/dist/chunk-FQUAFIUO.js.map +1 -0
- package/dist/chunk-FYHAKQGB.js +220 -0
- package/dist/chunk-FYHAKQGB.js.map +1 -0
- package/dist/chunk-G6UKOZPL.js +217 -0
- package/dist/chunk-G6UKOZPL.js.map +1 -0
- package/dist/chunk-GAFIOPGJ.js +54 -0
- package/dist/chunk-GAFIOPGJ.js.map +1 -0
- package/dist/chunk-GEMXFVWI.js +37 -0
- package/dist/chunk-GEMXFVWI.js.map +1 -0
- package/dist/chunk-GFBOT2PV.js +101 -0
- package/dist/chunk-GFBOT2PV.js.map +1 -0
- package/dist/chunk-GFURX6GB.js +76 -0
- package/dist/chunk-GFURX6GB.js.map +1 -0
- package/dist/chunk-GMHVMQTV.js +245 -0
- package/dist/chunk-GMHVMQTV.js.map +1 -0
- package/dist/chunk-GTO7GG2K.js +245 -0
- package/dist/chunk-GTO7GG2K.js.map +1 -0
- package/dist/chunk-GWNS3C3A.js +144 -0
- package/dist/chunk-GWNS3C3A.js.map +1 -0
- package/dist/chunk-HNS76MH2.js +69 -0
- package/dist/chunk-HNS76MH2.js.map +1 -0
- package/dist/chunk-HO462CJM.js +29 -0
- package/dist/chunk-HO462CJM.js.map +1 -0
- package/dist/chunk-HPW5EHJX.js +233 -0
- package/dist/chunk-HPW5EHJX.js.map +1 -0
- package/dist/chunk-HQ23GSZM.js +145 -0
- package/dist/chunk-HQ23GSZM.js.map +1 -0
- package/dist/chunk-HTNDVNLQ.js +287 -0
- package/dist/chunk-HTNDVNLQ.js.map +1 -0
- package/dist/chunk-HXOMTUED.js +222 -0
- package/dist/chunk-HXOMTUED.js.map +1 -0
- package/dist/chunk-INE4EFFO.js +70 -0
- package/dist/chunk-INE4EFFO.js.map +1 -0
- package/dist/chunk-IQUJPIZD.js +689 -0
- package/dist/chunk-IQUJPIZD.js.map +1 -0
- package/dist/chunk-ITKUKDDV.js +196 -0
- package/dist/chunk-ITKUKDDV.js.map +1 -0
- package/dist/chunk-J333WVWG.js +145 -0
- package/dist/chunk-J333WVWG.js.map +1 -0
- package/dist/chunk-JADEGHJI.js +101 -0
- package/dist/chunk-JADEGHJI.js.map +1 -0
- package/dist/chunk-JAS77BXB.js +245 -0
- package/dist/chunk-JAS77BXB.js.map +1 -0
- package/dist/chunk-JDBHOE34.js +51 -0
- package/dist/chunk-JDBHOE34.js.map +1 -0
- package/dist/chunk-JG4JIBBV.js +245 -0
- package/dist/chunk-JG4JIBBV.js.map +1 -0
- package/dist/chunk-JHJSR2UT.js +101 -0
- package/dist/chunk-JHJSR2UT.js.map +1 -0
- package/dist/chunk-JJDLCVZV.js +37 -0
- package/dist/chunk-JJDLCVZV.js.map +1 -0
- package/dist/chunk-JKAMW7OV.js +228 -0
- package/dist/chunk-JKAMW7OV.js.map +1 -0
- package/dist/chunk-JRSZNGFD.js +28 -0
- package/dist/chunk-JRSZNGFD.js.map +1 -0
- package/dist/chunk-JZVK4NDF.js +28 -0
- package/dist/chunk-JZVK4NDF.js.map +1 -0
- package/dist/chunk-K255663P.js +144 -0
- package/dist/chunk-K255663P.js.map +1 -0
- package/dist/chunk-K5TTAI44.js +89 -0
- package/dist/chunk-K5TTAI44.js.map +1 -0
- package/dist/chunk-KCAOUZCT.js +245 -0
- package/dist/chunk-KCAOUZCT.js.map +1 -0
- package/dist/chunk-KCCYHT23.js +39 -0
- package/dist/chunk-KCCYHT23.js.map +1 -0
- package/dist/chunk-KFUBWOCN.js +69 -0
- package/dist/chunk-KFUBWOCN.js.map +1 -0
- package/dist/chunk-KOKKR2GO.js +37 -0
- package/dist/chunk-KOKKR2GO.js.map +1 -0
- package/dist/chunk-KV432YFG.js +223 -0
- package/dist/chunk-KV432YFG.js.map +1 -0
- package/dist/chunk-L5SQIVFO.js +68 -0
- package/dist/chunk-L5SQIVFO.js.map +1 -0
- package/dist/chunk-LJDGAKG3.js +196 -0
- package/dist/chunk-LJDGAKG3.js.map +1 -0
- package/dist/chunk-LSUCPRXN.js +89 -0
- package/dist/chunk-LSUCPRXN.js.map +1 -0
- package/dist/chunk-MDSCN4PH.js +144 -0
- package/dist/chunk-MDSCN4PH.js.map +1 -0
- package/dist/chunk-MG2KX3KF.js +69 -0
- package/dist/chunk-MG2KX3KF.js.map +1 -0
- package/dist/chunk-MIATMZDP.js +39 -0
- package/dist/chunk-MIATMZDP.js.map +1 -0
- package/dist/chunk-MIVH7X2Q.js +245 -0
- package/dist/chunk-MIVH7X2Q.js.map +1 -0
- package/dist/chunk-MPZJH3PI.js +287 -0
- package/dist/chunk-MPZJH3PI.js.map +1 -0
- package/dist/chunk-MQ4ZZJXV.js +51 -0
- package/dist/chunk-MQ4ZZJXV.js.map +1 -0
- package/dist/chunk-MRTKFR7V.js +144 -0
- package/dist/chunk-MRTKFR7V.js.map +1 -0
- package/dist/chunk-MTSZUPDJ.js +151 -0
- package/dist/chunk-MTSZUPDJ.js.map +1 -0
- package/dist/chunk-MTU2IQUS.js +689 -0
- package/dist/chunk-MTU2IQUS.js.map +1 -0
- package/dist/chunk-MVA6X35R.js +165 -0
- package/dist/chunk-MVA6X35R.js.map +1 -0
- package/dist/chunk-ND5BRCYV.js +75 -0
- package/dist/chunk-ND5BRCYV.js.map +1 -0
- package/dist/chunk-NE5S2QWA.js +51 -0
- package/dist/chunk-NE5S2QWA.js.map +1 -0
- package/dist/chunk-NHK64BOP.js +69 -0
- package/dist/chunk-NHK64BOP.js.map +1 -0
- package/dist/chunk-NHMDJCXR.js +276 -0
- package/dist/chunk-NHMDJCXR.js.map +1 -0
- package/dist/chunk-NIBZSFZ6.js +196 -0
- package/dist/chunk-NIBZSFZ6.js.map +1 -0
- package/dist/chunk-NJ3LHGC6.js +169 -0
- package/dist/chunk-NJ3LHGC6.js.map +1 -0
- package/dist/chunk-NJKRLSH3.js +287 -0
- package/dist/chunk-NJKRLSH3.js.map +1 -0
- package/dist/chunk-NLTKDXLB.js +113 -0
- package/dist/chunk-NLTKDXLB.js.map +1 -0
- package/dist/chunk-NRWZ6JNA.js +69 -0
- package/dist/chunk-NRWZ6JNA.js.map +1 -0
- package/dist/chunk-NSBBMIXS.js +151 -0
- package/dist/chunk-NSBBMIXS.js.map +1 -0
- package/dist/chunk-O665PURC.js +63 -0
- package/dist/chunk-O665PURC.js.map +1 -0
- package/dist/chunk-O6LH7P6V.js +87 -0
- package/dist/chunk-O6LH7P6V.js.map +1 -0
- package/dist/chunk-OF4RHJCY.js +69 -0
- package/dist/chunk-OF4RHJCY.js.map +1 -0
- package/dist/chunk-ORBEMNBA.js +49 -0
- package/dist/chunk-ORBEMNBA.js.map +1 -0
- package/dist/chunk-OYCRE67S.js +87 -0
- package/dist/chunk-OYCRE67S.js.map +1 -0
- package/dist/chunk-P4KO43AP.js +245 -0
- package/dist/chunk-P4KO43AP.js.map +1 -0
- package/dist/chunk-PJHCOBSQ.js +163 -0
- package/dist/chunk-PJHCOBSQ.js.map +1 -0
- package/dist/chunk-PXPGCDNA.js +106 -0
- package/dist/chunk-PXPGCDNA.js.map +1 -0
- package/dist/chunk-QBVF4BCB.js +245 -0
- package/dist/chunk-QBVF4BCB.js.map +1 -0
- package/dist/chunk-QKP2KBZ5.js +219 -0
- package/dist/chunk-QKP2KBZ5.js.map +1 -0
- package/dist/chunk-QXBRA2T6.js +169 -0
- package/dist/chunk-QXBRA2T6.js.map +1 -0
- package/dist/chunk-RAMPMKQD.js +245 -0
- package/dist/chunk-RAMPMKQD.js.map +1 -0
- package/dist/chunk-REPTW53S.js +98 -0
- package/dist/chunk-REPTW53S.js.map +1 -0
- package/dist/chunk-RMFSOYRW.js +99 -0
- package/dist/chunk-RMFSOYRW.js.map +1 -0
- package/dist/chunk-RXQHKSIV.js +37 -0
- package/dist/chunk-RXQHKSIV.js.map +1 -0
- package/dist/chunk-RZGCNQWE.js +89 -0
- package/dist/chunk-RZGCNQWE.js.map +1 -0
- package/dist/chunk-S3W44IB3.js +151 -0
- package/dist/chunk-S3W44IB3.js.map +1 -0
- package/dist/chunk-SEKCH5XW.js +100 -0
- package/dist/chunk-SEKCH5XW.js.map +1 -0
- package/dist/chunk-SGS3LUQ3.js +196 -0
- package/dist/chunk-SGS3LUQ3.js.map +1 -0
- package/dist/chunk-SLHUNZIR.js +245 -0
- package/dist/chunk-SLHUNZIR.js.map +1 -0
- package/dist/chunk-STCVW5HT.js +49 -0
- package/dist/chunk-STCVW5HT.js.map +1 -0
- package/dist/chunk-SVGGVYY7.js +69 -0
- package/dist/chunk-SVGGVYY7.js.map +1 -0
- package/dist/chunk-T5I3DNHD.js +145 -0
- package/dist/chunk-T5I3DNHD.js.map +1 -0
- package/dist/chunk-TJDCSV5R.js +230 -0
- package/dist/chunk-TJDCSV5R.js.map +1 -0
- package/dist/chunk-TJWFURWT.js +43 -0
- package/dist/chunk-TJWFURWT.js.map +1 -0
- package/dist/chunk-TMO724ZN.js +63 -0
- package/dist/chunk-TMO724ZN.js.map +1 -0
- package/dist/chunk-TP7DOXLP.js +98 -0
- package/dist/chunk-TP7DOXLP.js.map +1 -0
- package/dist/chunk-TQJ3HQ7R.js +87 -0
- package/dist/chunk-TQJ3HQ7R.js.map +1 -0
- package/dist/chunk-TRNLQ7F3.js +245 -0
- package/dist/chunk-TRNLQ7F3.js.map +1 -0
- package/dist/chunk-U6UGFQIT.js +117 -0
- package/dist/chunk-U6UGFQIT.js.map +1 -0
- package/dist/chunk-U7OEYXJQ.js +165 -0
- package/dist/chunk-U7OEYXJQ.js.map +1 -0
- package/dist/chunk-UF6LFXBG.js +230 -0
- package/dist/chunk-UF6LFXBG.js.map +1 -0
- package/dist/chunk-ULZHPTB5.js +70 -0
- package/dist/chunk-ULZHPTB5.js.map +1 -0
- package/dist/chunk-UOCLNOC2.js +145 -0
- package/dist/chunk-UOCLNOC2.js.map +1 -0
- package/dist/chunk-V2RMMVGT.js +51 -0
- package/dist/chunk-V2RMMVGT.js.map +1 -0
- package/dist/chunk-V2UREEFT.js +89 -0
- package/dist/chunk-V2UREEFT.js.map +1 -0
- package/dist/chunk-V4WWIPTK.js +363 -0
- package/dist/chunk-V4WWIPTK.js.map +1 -0
- package/dist/chunk-VEHTXVLY.js +169 -0
- package/dist/chunk-VEHTXVLY.js.map +1 -0
- package/dist/chunk-VIVVHI7F.js +63 -0
- package/dist/chunk-VIVVHI7F.js.map +1 -0
- package/dist/chunk-VQMIOVFO.js +69 -0
- package/dist/chunk-VQMIOVFO.js.map +1 -0
- package/dist/chunk-VU3C3W4S.js +106 -0
- package/dist/chunk-VU3C3W4S.js.map +1 -0
- package/dist/chunk-VYPPQUB5.js +196 -0
- package/dist/chunk-VYPPQUB5.js.map +1 -0
- package/dist/chunk-W2TX267T.js +100 -0
- package/dist/chunk-W2TX267T.js.map +1 -0
- package/dist/chunk-W3EW7K6L.js +51 -0
- package/dist/chunk-W3EW7K6L.js.map +1 -0
- package/dist/chunk-WA5A2GB4.js +192 -0
- package/dist/chunk-WA5A2GB4.js.map +1 -0
- package/dist/chunk-WPAC4HEX.js +87 -0
- package/dist/chunk-WPAC4HEX.js.map +1 -0
- package/dist/chunk-X2OV53JW.js +196 -0
- package/dist/chunk-X2OV53JW.js.map +1 -0
- package/dist/chunk-X6K6AM4D.js +196 -0
- package/dist/chunk-X6K6AM4D.js.map +1 -0
- package/dist/chunk-XIKKYBHO.js +69 -0
- package/dist/chunk-XIKKYBHO.js.map +1 -0
- package/dist/chunk-Y2H4FXGU.js +68 -0
- package/dist/chunk-Y2H4FXGU.js.map +1 -0
- package/dist/chunk-YCRTFH4C.js +79 -0
- package/dist/chunk-YCRTFH4C.js.map +1 -0
- package/dist/chunk-YHGFJ7N6.js +63 -0
- package/dist/chunk-YHGFJ7N6.js.map +1 -0
- package/dist/chunk-YKDT2D43.js +98 -0
- package/dist/chunk-YKDT2D43.js.map +1 -0
- package/dist/chunk-YLTKQZ67.js +228 -0
- package/dist/chunk-YLTKQZ67.js.map +1 -0
- package/dist/chunk-YPGFPLWM.js +69 -0
- package/dist/chunk-YPGFPLWM.js.map +1 -0
- package/dist/chunk-YWYYPYBK.js +1 -0
- package/dist/chunk-YWYYPYBK.js.map +1 -0
- package/dist/chunk-Z7WNKARH.js +331 -0
- package/dist/chunk-Z7WNKARH.js.map +1 -0
- package/dist/chunk-ZA4NYPSW.js +28 -0
- package/dist/chunk-ZA4NYPSW.js.map +1 -0
- package/dist/chunk-ZDY2M7RX.js +113 -0
- package/dist/chunk-ZDY2M7RX.js.map +1 -0
- package/dist/chunk-ZFTQ2XBH.js +76 -0
- package/dist/chunk-ZFTQ2XBH.js.map +1 -0
- package/dist/chunk-ZI7PEVZG.js +89 -0
- package/dist/chunk-ZI7PEVZG.js.map +1 -0
- package/dist/chunk-ZKFNOCWD.js +125 -0
- package/dist/chunk-ZKFNOCWD.js.map +1 -0
- package/dist/chunk-ZOITFRX7.js +70 -0
- package/dist/chunk-ZOITFRX7.js.map +1 -0
- package/dist/chunk-ZPDLTZDJ.js +363 -0
- package/dist/chunk-ZPDLTZDJ.js.map +1 -0
- package/dist/chunk-ZR4G3PU3.js +89 -0
- package/dist/chunk-ZR4G3PU3.js.map +1 -0
- package/dist/context/index.js +5 -5
- package/dist/index.cjs +1704 -308
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +168 -159
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +18 -18
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +4 -4
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +11 -11
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +2 -2
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +3 -3
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.js +2 -2
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +6 -6
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +5 -5
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +5 -5
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +5 -5
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +4 -4
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +21 -21
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +6 -6
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +4 -4
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.js +4 -4
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +24 -24
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-video.cjs +4 -4
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-video.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-video.js +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/index.cjs +4 -4
- package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/index.js +29 -29
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +2 -2
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +4 -4
- package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +8 -8
- package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +5 -5
- package/dist/molecules/curriculumV2/curriculum-context.cjs +0 -1
- package/dist/molecules/curriculumV2/curriculum-context.cjs.map +1 -1
- package/dist/molecules/curriculumV2/curriculum-context.js +1 -1
- package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs.map +1 -1
- package/dist/molecules/curriculumV2/curriculum-sub-nav.js +5 -5
- package/dist/molecules/curriculumV2/curriculum-v2-layout.js +2 -2
- package/dist/molecules/curriculumV2/index.cjs +4 -5
- 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 +6 -6
- package/dist/molecules/date-picker/index.js +5 -5
- package/dist/molecules/description-json-render.cjs +1 -1
- package/dist/molecules/description-json-render.cjs.map +1 -1
- package/dist/molecules/description-json-render.js +6 -6
- package/dist/molecules/download-card.js +2 -2
- package/dist/molecules/dynamic-field.cjs +147 -5
- package/dist/molecules/dynamic-field.cjs.map +1 -1
- package/dist/molecules/dynamic-field.js +9 -6
- package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs +1711 -0
- package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs.map +1 -0
- package/dist/molecules/dynamic-form-editor-field-editor-panel.d.cts +19 -0
- package/dist/molecules/dynamic-form-editor-field-editor-panel.d.ts +19 -0
- package/dist/molecules/dynamic-form-editor-field-editor-panel.js +37 -0
- package/dist/molecules/dynamic-form-editor-field-editor-panel.js.map +1 -0
- package/dist/molecules/dynamic-form-editor-field-list-panel.cjs +298 -0
- package/dist/molecules/dynamic-form-editor-field-list-panel.cjs.map +1 -0
- package/dist/molecules/dynamic-form-editor-field-list-panel.d.cts +16 -0
- package/dist/molecules/dynamic-form-editor-field-list-panel.d.ts +16 -0
- package/dist/molecules/dynamic-form-editor-field-list-panel.js +14 -0
- package/dist/molecules/dynamic-form-editor-field-list-panel.js.map +1 -0
- package/dist/molecules/dynamic-form-editor-issues-panel.cjs +171 -0
- package/dist/molecules/dynamic-form-editor-issues-panel.cjs.map +1 -0
- package/dist/molecules/dynamic-form-editor-issues-panel.d.cts +10 -0
- package/dist/molecules/dynamic-form-editor-issues-panel.d.ts +10 -0
- package/dist/molecules/dynamic-form-editor-issues-panel.js +12 -0
- package/dist/molecules/dynamic-form-editor-issues-panel.js.map +1 -0
- package/dist/molecules/dynamic-form-editor-preview-panel.cjs +1021 -0
- package/dist/molecules/dynamic-form-editor-preview-panel.cjs.map +1 -0
- package/dist/molecules/dynamic-form-editor-preview-panel.d.cts +10 -0
- package/dist/molecules/dynamic-form-editor-preview-panel.d.ts +10 -0
- package/dist/molecules/dynamic-form-editor-preview-panel.js +26 -0
- package/dist/molecules/dynamic-form-editor-preview-panel.js.map +1 -0
- package/dist/molecules/dynamic-form-editor-utils.cjs +396 -0
- package/dist/molecules/dynamic-form-editor-utils.cjs.map +1 -0
- package/dist/molecules/dynamic-form-editor-utils.d.cts +43 -0
- package/dist/molecules/dynamic-form-editor-utils.d.ts +43 -0
- package/dist/molecules/dynamic-form-editor-utils.js +44 -0
- package/dist/molecules/dynamic-form-editor-utils.js.map +1 -0
- package/dist/molecules/dynamic-form-editor.cjs +2925 -0
- package/dist/molecules/dynamic-form-editor.cjs.map +1 -0
- package/dist/molecules/dynamic-form-editor.d.cts +15 -0
- package/dist/molecules/dynamic-form-editor.d.ts +15 -0
- package/dist/molecules/dynamic-form-editor.js +51 -0
- package/dist/molecules/dynamic-form-editor.js.map +1 -0
- package/dist/molecules/dynamic-form-response-item.cjs +21 -12
- package/dist/molecules/dynamic-form-response-item.cjs.map +1 -1
- package/dist/molecules/dynamic-form-response-item.js +1 -1
- package/dist/molecules/dynamic-form.cjs +149 -7
- package/dist/molecules/dynamic-form.cjs.map +1 -1
- package/dist/molecules/dynamic-form.js +10 -7
- package/dist/molecules/expand-table/index.js +5 -5
- package/dist/molecules/force-refresh.js +2 -2
- package/dist/molecules/ghost-post.js +4 -4
- package/dist/molecules/index.cjs +1426 -27
- package/dist/molecules/index.cjs.map +1 -1
- package/dist/molecules/index.d.cts +1 -0
- package/dist/molecules/index.d.ts +1 -0
- package/dist/molecules/index.js +91 -81
- package/dist/molecules/learning-post.js +6 -6
- package/dist/molecules/navigation.js +3 -3
- package/dist/molecules/one-on-one-guide-list.js +3 -3
- package/dist/molecules/stepper.js +4 -4
- package/dist/molecules/tag-selector.js +5 -5
- package/dist/molecules/time-select.cjs +1 -1
- package/dist/molecules/time-select.cjs.map +1 -1
- package/dist/molecules/time-select.js +1 -1
- package/dist/molecules/training-info-guideline.js +7 -7
- package/dist/types/dynamic-form-schema-generated.cjs.map +1 -1
- package/dist/types/dynamic-form-schema-generated.d.cts +30 -2
- package/dist/types/dynamic-form-schema-generated.d.ts +30 -2
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/dist/utils/get-callout-icon-component.cjs +624 -0
- package/dist/utils/get-callout-icon-component.cjs.map +1 -0
- package/dist/utils/get-callout-icon-component.d.cts +11 -0
- package/dist/utils/get-callout-icon-component.d.ts +11 -0
- package/dist/utils/get-callout-icon-component.js +26 -0
- package/dist/utils/get-callout-icon-component.js.map +1 -0
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +1 -1
- package/src/app/platform/reservation-card.tsx +0 -1
- package/src/constrant/dynamic-form-schema.json +55 -0
- package/src/molecules/curriculumV2/CurriculumContents/curriculum-video.tsx +3 -3
- package/src/molecules/curriculumV2/curriculum-context.tsx +0 -1
- package/src/molecules/description-json-render.tsx +1 -1
- package/src/molecules/dynamic-field.tsx +183 -7
- package/src/molecules/dynamic-form-editor-field-editor-panel.tsx +688 -0
- package/src/molecules/dynamic-form-editor-field-list-panel.tsx +116 -0
- package/src/molecules/dynamic-form-editor-issues-panel.tsx +35 -0
- package/src/molecules/dynamic-form-editor-preview-panel.tsx +30 -0
- package/src/molecules/dynamic-form-editor-utils.ts +433 -0
- package/src/molecules/dynamic-form-editor.tsx +263 -0
- package/src/molecules/dynamic-form-response-item.tsx +28 -17
- package/src/molecules/dynamic-form.tsx +1 -1
- package/src/molecules/index.ts +2 -1
- package/src/types/dynamic-form-schema-generated.ts +33 -0
- package/src/utils/index.ts +1 -1
- package/src/utils/{getCalloutIconComponent.ts → get-callout-icon-component.ts} +3 -3
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// src/molecules/curriculumV2/curriculum-context.tsx
|
|
2
|
+
import {
|
|
3
|
+
createContext,
|
|
4
|
+
useContext,
|
|
5
|
+
useState,
|
|
6
|
+
useMemo,
|
|
7
|
+
useCallback,
|
|
8
|
+
useRef,
|
|
9
|
+
useEffect
|
|
10
|
+
} from "react";
|
|
11
|
+
import { jsx } from "react/jsx-runtime";
|
|
12
|
+
var EMPTY_SELECTED_ITEM = {
|
|
13
|
+
uuid: "",
|
|
14
|
+
type: "sectionTitle",
|
|
15
|
+
title: ""
|
|
16
|
+
};
|
|
17
|
+
function getInitialSelectedIndex(args) {
|
|
18
|
+
const { initialSelectedIndex, selectableIndexes } = args;
|
|
19
|
+
if (typeof initialSelectedIndex === "number" && selectableIndexes.includes(initialSelectedIndex)) {
|
|
20
|
+
return initialSelectedIndex;
|
|
21
|
+
}
|
|
22
|
+
if (selectableIndexes.length > 0) {
|
|
23
|
+
return selectableIndexes[0];
|
|
24
|
+
}
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
var CurriculumContext = createContext(
|
|
28
|
+
void 0
|
|
29
|
+
);
|
|
30
|
+
function CurriculumProvider(props) {
|
|
31
|
+
const {
|
|
32
|
+
children,
|
|
33
|
+
curriculum,
|
|
34
|
+
onReviewSubmit,
|
|
35
|
+
onReviewValueChange,
|
|
36
|
+
onClickfileDownload,
|
|
37
|
+
curriculumReviewAnswers,
|
|
38
|
+
tempCurriculumReviewAnswers,
|
|
39
|
+
curriculumCompleteMap,
|
|
40
|
+
onChangeSelectedContent,
|
|
41
|
+
onActionButtonClick,
|
|
42
|
+
initialSelectedIndex,
|
|
43
|
+
customTabs
|
|
44
|
+
} = props;
|
|
45
|
+
const sidebarRef = useRef(null);
|
|
46
|
+
const scrollNavItem = useCallback((index) => {
|
|
47
|
+
var _a;
|
|
48
|
+
const element = (_a = sidebarRef.current) == null ? void 0 : _a.querySelector(
|
|
49
|
+
`[data-curriculum-item-index="${index}"]`
|
|
50
|
+
);
|
|
51
|
+
if (element) {
|
|
52
|
+
element.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
53
|
+
}
|
|
54
|
+
}, []);
|
|
55
|
+
const list = curriculum.contents.list;
|
|
56
|
+
const selectableIndexes = useMemo(
|
|
57
|
+
() => list.map((item, i) => item.type !== "sectionTitle" ? i : null).filter((i) => i !== null),
|
|
58
|
+
[list]
|
|
59
|
+
);
|
|
60
|
+
const [selectedIndexState, setSelectedIndexState] = useState(
|
|
61
|
+
getInitialSelectedIndex({ initialSelectedIndex, selectableIndexes })
|
|
62
|
+
);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (selectableIndexes.length === 0) {
|
|
65
|
+
if (selectedIndexState !== 0) {
|
|
66
|
+
setSelectedIndexState(0);
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (!selectableIndexes.includes(selectedIndexState)) {
|
|
71
|
+
setSelectedIndexState(selectableIndexes[0]);
|
|
72
|
+
}
|
|
73
|
+
}, [selectableIndexes, selectedIndexState]);
|
|
74
|
+
const setSelectedIndex = useCallback(
|
|
75
|
+
(idx) => {
|
|
76
|
+
if (selectableIndexes.includes(idx)) {
|
|
77
|
+
setSelectedIndexState(idx);
|
|
78
|
+
} else {
|
|
79
|
+
const next = selectableIndexes.find((i) => i > idx);
|
|
80
|
+
const prev = [...selectableIndexes].reverse().find((i) => i < idx);
|
|
81
|
+
if (next !== void 0) setSelectedIndexState(next);
|
|
82
|
+
else if (prev !== void 0) setSelectedIndexState(prev);
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
[selectableIndexes]
|
|
86
|
+
);
|
|
87
|
+
const selectablePos = useMemo(
|
|
88
|
+
() => selectableIndexes.indexOf(selectedIndexState),
|
|
89
|
+
[selectableIndexes, selectedIndexState]
|
|
90
|
+
);
|
|
91
|
+
const hasPrev = selectablePos > 0;
|
|
92
|
+
const hasNext = selectablePos < selectableIndexes.length - 1;
|
|
93
|
+
const selectPrev = useCallback(
|
|
94
|
+
(cb) => {
|
|
95
|
+
setSelectedIndexState((cur) => {
|
|
96
|
+
let prevIndex = cur;
|
|
97
|
+
const pos = selectableIndexes.indexOf(cur);
|
|
98
|
+
if (pos > 0) {
|
|
99
|
+
prevIndex = selectableIndexes[pos - 1];
|
|
100
|
+
}
|
|
101
|
+
if (cb) cb(prevIndex);
|
|
102
|
+
return prevIndex;
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
[selectableIndexes]
|
|
106
|
+
);
|
|
107
|
+
const selectNext = useCallback(
|
|
108
|
+
(cb) => {
|
|
109
|
+
setSelectedIndexState((cur) => {
|
|
110
|
+
let nextIndex = cur;
|
|
111
|
+
const pos = selectableIndexes.indexOf(cur);
|
|
112
|
+
if (pos < selectableIndexes.length - 1) {
|
|
113
|
+
nextIndex = selectableIndexes[pos + 1];
|
|
114
|
+
}
|
|
115
|
+
if (cb) cb(nextIndex);
|
|
116
|
+
return nextIndex;
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
[selectableIndexes]
|
|
120
|
+
);
|
|
121
|
+
const selectedId = useMemo(
|
|
122
|
+
() => {
|
|
123
|
+
var _a, _b;
|
|
124
|
+
if (selectedIndexState < 0 || selectedIndexState >= list.length) {
|
|
125
|
+
return "";
|
|
126
|
+
}
|
|
127
|
+
return (_b = (_a = list[selectedIndexState]) == null ? void 0 : _a.uuid) != null ? _b : "";
|
|
128
|
+
},
|
|
129
|
+
[list, selectedIndexState]
|
|
130
|
+
);
|
|
131
|
+
const selectedItem = useMemo(() => {
|
|
132
|
+
var _a;
|
|
133
|
+
if (selectedIndexState < 0 || selectedIndexState >= list.length) {
|
|
134
|
+
return EMPTY_SELECTED_ITEM;
|
|
135
|
+
}
|
|
136
|
+
return (_a = list[selectedIndexState]) != null ? _a : EMPTY_SELECTED_ITEM;
|
|
137
|
+
}, [list, selectedIndexState]);
|
|
138
|
+
const selectedSectionTitle = useMemo(() => {
|
|
139
|
+
var _a;
|
|
140
|
+
const prevItems = list.slice(0, selectedIndexState).reverse();
|
|
141
|
+
return (_a = prevItems.find((item) => item.type === "sectionTitle")) != null ? _a : null;
|
|
142
|
+
}, [list, selectedIndexState]);
|
|
143
|
+
useEffect(() => {
|
|
144
|
+
const inBounds = selectedIndexState >= 0 && selectedIndexState < list.length;
|
|
145
|
+
if (!inBounds) return;
|
|
146
|
+
const item = list[selectedIndexState];
|
|
147
|
+
if (item.type === "sectionTitle") return;
|
|
148
|
+
onChangeSelectedContent == null ? void 0 : onChangeSelectedContent(item);
|
|
149
|
+
}, [list, onChangeSelectedContent, selectedIndexState]);
|
|
150
|
+
return /* @__PURE__ */ jsx(
|
|
151
|
+
CurriculumContext.Provider,
|
|
152
|
+
{
|
|
153
|
+
value: {
|
|
154
|
+
curriculum,
|
|
155
|
+
scrollNavItem,
|
|
156
|
+
selectedIndex: selectedIndexState,
|
|
157
|
+
setSelectedIndex,
|
|
158
|
+
selectedId,
|
|
159
|
+
hasPrev,
|
|
160
|
+
hasNext,
|
|
161
|
+
selectPrev,
|
|
162
|
+
selectNext,
|
|
163
|
+
selectedSectionTitle,
|
|
164
|
+
selectedItem,
|
|
165
|
+
scrollAreaRef: sidebarRef,
|
|
166
|
+
onReviewSubmit,
|
|
167
|
+
onReviewValueChange,
|
|
168
|
+
onClickfileDownload,
|
|
169
|
+
curriculumReviewAnswers,
|
|
170
|
+
tempCurriculumReviewAnswers,
|
|
171
|
+
curriculumCompleteMap,
|
|
172
|
+
onActionButtonClick,
|
|
173
|
+
customTabs
|
|
174
|
+
},
|
|
175
|
+
children
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
function useCurriculumContext() {
|
|
180
|
+
const ctx = useContext(CurriculumContext);
|
|
181
|
+
if (!ctx)
|
|
182
|
+
throw new Error(
|
|
183
|
+
"useCurriculumContext must be used within CurriculumProvider"
|
|
184
|
+
);
|
|
185
|
+
return ctx;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export {
|
|
189
|
+
CurriculumProvider,
|
|
190
|
+
useCurriculumContext
|
|
191
|
+
};
|
|
192
|
+
//# sourceMappingURL=chunk-WA5A2GB4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/curriculum-context.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useState,\n useMemo,\n useCallback,\n useRef,\n useEffect,\n} from 'react';\nimport {\n type CurriculumFileDownloadContents,\n type CurriculumFileDownloadFile,\n type CurriculumSectionTitleContents,\n} from '@/types/curriculumContents.type';\nimport type {\n Curriculum,\n CurriculumListContents,\n} from '@/types/curriculum.type';\n\nconst EMPTY_SELECTED_ITEM: CurriculumListContents = {\n uuid: '',\n type: 'sectionTitle',\n title: '',\n};\n\nfunction getInitialSelectedIndex(args: {\n initialSelectedIndex?: number;\n selectableIndexes: number[];\n}): number {\n const { initialSelectedIndex, selectableIndexes } = args;\n\n if (\n typeof initialSelectedIndex === 'number' &&\n selectableIndexes.includes(initialSelectedIndex)\n ) {\n return initialSelectedIndex;\n }\n\n if (selectableIndexes.length > 0) {\n return selectableIndexes[0];\n }\n\n return 0;\n}\n\nexport interface CurriculumContextValue {\n curriculum: Curriculum;\n selectedIndex: number;\n setSelectedIndex: (idx: number) => void;\n selectedId: string;\n hasPrev: boolean;\n hasNext: boolean;\n selectPrev: (cb?: (moveIndex: number) => void) => void;\n selectNext: (cb?: (moveIndex: number) => void) => void;\n selectedItem: CurriculumListContents;\n /** 선택된 아이템의 이전 아이템 중 가장 가까운 섹션 타이틀 */\n selectedSectionTitle: CurriculumSectionTitleContents | null;\n /** 컨텐츠 목록 스크롤 이동 함수 */\n scrollNavItem: (uuid: string) => void;\n /** 스크롤 영역 참조 */\n scrollAreaRef: React.RefObject<HTMLDivElement | null>;\n /** 리뷰 제출 함수 */\n onReviewSubmit: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => Promise<boolean>;\n /** 리뷰 응답 값 변경 시 호출 */\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n /** 파일 다운로드 클릭 시 호출 */\n onClickfileDownload?: (\n item: CurriculumFileDownloadContents,\n file: CurriculumFileDownloadFile\n ) => void;\n /** 과제 완료 후 저장된 값 */\n curriculumReviewAnswers: Record<string, string>;\n /** 과제 완료 전 임시 저장된 값 */\n tempCurriculumReviewAnswers: Record<string, string>;\n /** 항목 수강 완료 여부 */\n curriculumCompleteMap: Record<string, boolean>;\n /** action Button 클릭시 호출 */\n onActionButtonClick: (item: CurriculumListContents) => void;\n /** 초기 선택 인덱스 */\n initialSelectedIndex?: number;\n /** 커스텀 탭 주입값 */\n customTabs?: {\n content: React.ReactElement;\n label: string;\n value: string;\n }[];\n}\n\nconst CurriculumContext = createContext<CurriculumContextValue | undefined>(\n undefined\n);\n\nexport interface CurriculumProviderProps\n extends Pick<\n CurriculumContextValue,\n | 'customTabs'\n | 'curriculum'\n | 'onReviewSubmit'\n | 'onReviewValueChange'\n | 'onClickfileDownload'\n | 'curriculumReviewAnswers'\n | 'tempCurriculumReviewAnswers'\n | 'curriculumCompleteMap'\n | 'onActionButtonClick'\n | 'initialSelectedIndex'\n > {\n children: React.ReactNode;\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n\n /** 현재 화면에 표시 중인 컨텐츠 인덱스 변경 시 호출 */\n onChangeSelectedContent?: (item: CurriculumListContents) => void;\n}\n\nexport function CurriculumProvider(\n props: CurriculumProviderProps\n): React.ReactElement {\n const {\n children,\n curriculum,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onChangeSelectedContent,\n onActionButtonClick,\n initialSelectedIndex,\n customTabs,\n } = props;\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n const scrollNavItem = useCallback((index: string) => {\n const element = sidebarRef.current?.querySelector(\n `[data-curriculum-item-index=\"${index}\"]`\n );\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }, []);\n\n const list = curriculum.contents.list;\n // 선택 가능한 인덱스만 추출\n const selectableIndexes = useMemo(\n () =>\n list\n .map((item, i) => (item.type !== 'sectionTitle' ? i : null))\n .filter((i): i is number => i !== null),\n [list]\n );\n // 최초 선택값: 첫 번째 선택 가능한 인덱스\n const [selectedIndexState, setSelectedIndexState] = useState<number>(\n getInitialSelectedIndex({ initialSelectedIndex, selectableIndexes })\n );\n\n // 리스트/선택 가능 인덱스가 변할 때 선택값을 자동 보정\n useEffect(() => {\n if (selectableIndexes.length === 0) {\n if (selectedIndexState !== 0) {\n setSelectedIndexState(0);\n }\n return;\n }\n\n if (!selectableIndexes.includes(selectedIndexState)) {\n setSelectedIndexState(selectableIndexes[0]);\n }\n }, [selectableIndexes, selectedIndexState]);\n\n // 선택 인덱스 보정 함수\n const setSelectedIndex = useCallback(\n (idx: number) => {\n if (selectableIndexes.includes(idx)) {\n setSelectedIndexState(idx);\n } else {\n // idx가 선택 불가면, selectableIndexes에서 가장 가까운 다음 인덱스 선택\n const next = selectableIndexes.find((i) => i > idx);\n const prev = [...selectableIndexes].reverse().find((i) => i < idx);\n if (next !== undefined) setSelectedIndexState(next);\n else if (prev !== undefined) setSelectedIndexState(prev);\n }\n },\n [selectableIndexes]\n );\n\n // 현재 선택 인덱스가 selectableIndexes 내 몇 번째인지\n const selectablePos = useMemo(\n () => selectableIndexes.indexOf(selectedIndexState),\n [selectableIndexes, selectedIndexState]\n );\n const hasPrev = selectablePos > 0;\n const hasNext = selectablePos < selectableIndexes.length - 1;\n\n const selectPrev = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let prevIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos > 0) {\n prevIndex = selectableIndexes[pos - 1];\n }\n if (cb) cb(prevIndex);\n return prevIndex;\n });\n },\n [selectableIndexes]\n );\n const selectNext = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let nextIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos < selectableIndexes.length - 1) {\n nextIndex = selectableIndexes[pos + 1];\n }\n if (cb) cb(nextIndex);\n return nextIndex;\n });\n },\n [selectableIndexes]\n );\n\n const selectedId = useMemo(\n () => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return '';\n }\n return list[selectedIndexState]?.uuid ?? '';\n },\n [list, selectedIndexState]\n );\n\n const selectedItem = useMemo(() => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return EMPTY_SELECTED_ITEM;\n }\n return list[selectedIndexState] ?? EMPTY_SELECTED_ITEM;\n }, [list, selectedIndexState]);\n\n const selectedSectionTitle = useMemo(() => {\n // selectedIndexState 이전 인덱스 중 가장 가까운 섹션 타이틀 찾기\n const prevItems = list.slice(0, selectedIndexState).reverse();\n return prevItems.find((item) => item.type === 'sectionTitle') ?? null;\n }, [list, selectedIndexState]);\n\n useEffect(() => {\n const inBounds: boolean =\n selectedIndexState >= 0 && selectedIndexState < list.length;\n if (!inBounds) return;\n\n const item: CurriculumListContents = list[selectedIndexState];\n if (item.type === 'sectionTitle') return;\n\n onChangeSelectedContent?.(item);\n }, [list, onChangeSelectedContent, selectedIndexState]);\n\n return (\n <CurriculumContext.Provider\n value={{\n curriculum,\n scrollNavItem,\n selectedIndex: selectedIndexState,\n setSelectedIndex,\n selectedId,\n hasPrev,\n hasNext,\n selectPrev,\n selectNext,\n selectedSectionTitle,\n selectedItem,\n scrollAreaRef: sidebarRef,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onActionButtonClick,\n customTabs,\n }}\n >\n {children}\n </CurriculumContext.Provider>\n );\n}\n\nexport function useCurriculumContext(): CurriculumContextValue {\n const ctx = useContext(CurriculumContext);\n if (!ctx)\n throw new Error(\n 'useCurriculumContext must be used within CurriculumProvider'\n );\n return ctx;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ReviewQuestionContentHeader
|
|
3
|
+
} from "./chunk-TJWFURWT.js";
|
|
4
|
+
import {
|
|
5
|
+
TextArea
|
|
6
|
+
} from "./chunk-5XYPLDI5.js";
|
|
7
|
+
import {
|
|
8
|
+
Grid
|
|
9
|
+
} from "./chunk-EGEQY3KT.js";
|
|
10
|
+
import {
|
|
11
|
+
Callout
|
|
12
|
+
} from "./chunk-B6XJN6EC.js";
|
|
13
|
+
import {
|
|
14
|
+
Card
|
|
15
|
+
} from "./chunk-RP2RGCAW.js";
|
|
16
|
+
import {
|
|
17
|
+
Box
|
|
18
|
+
} from "./chunk-4Y5BEXVN.js";
|
|
19
|
+
import {
|
|
20
|
+
BellIcon
|
|
21
|
+
} from "./chunk-LTEJYJUM.js";
|
|
22
|
+
import {
|
|
23
|
+
Typo
|
|
24
|
+
} from "./chunk-PMJIFLDT.js";
|
|
25
|
+
|
|
26
|
+
// src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.tsx
|
|
27
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
28
|
+
function ReviewQuestionText(props) {
|
|
29
|
+
const { question, answer, onChange } = props;
|
|
30
|
+
const minLengthNotMet = question.minLength && answer.length < question.minLength;
|
|
31
|
+
const remainingLength = question.minLength && answer.length < question.minLength ? question.minLength - answer.length : 0;
|
|
32
|
+
return /* @__PURE__ */ jsx(
|
|
33
|
+
Card,
|
|
34
|
+
{
|
|
35
|
+
size: "2",
|
|
36
|
+
style: {
|
|
37
|
+
width: "100%",
|
|
38
|
+
height: "100%"
|
|
39
|
+
},
|
|
40
|
+
children: /* @__PURE__ */ jsxs(Grid, { height: "100%", rows: "1fr auto", children: [
|
|
41
|
+
/* @__PURE__ */ jsxs(Grid, { height: "100%", rows: "auto 1fr", width: "100%", children: [
|
|
42
|
+
/* @__PURE__ */ jsx(
|
|
43
|
+
ReviewQuestionContentHeader,
|
|
44
|
+
{
|
|
45
|
+
icon: question.icon,
|
|
46
|
+
question: question.question,
|
|
47
|
+
title: question.title,
|
|
48
|
+
type: question.type
|
|
49
|
+
}
|
|
50
|
+
),
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
TextArea,
|
|
53
|
+
{
|
|
54
|
+
mt: "2",
|
|
55
|
+
onChange: (e) => {
|
|
56
|
+
onChange(e.target.value);
|
|
57
|
+
},
|
|
58
|
+
placeholder: question.placeholder,
|
|
59
|
+
value: answer
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
] }),
|
|
63
|
+
minLengthNotMet ? /* @__PURE__ */ jsxs(Box, { mt: "2", children: [
|
|
64
|
+
/* @__PURE__ */ jsx(Typo, { align: "right", as: "p", color: "red", variant: "caption", children: `${remainingLength}\uC790 \uB354 \uC791\uC131\uD574\uC8FC\uC138\uC694.` }),
|
|
65
|
+
question.minLengthInfoMessage ? /* @__PURE__ */ jsxs(
|
|
66
|
+
Callout.Root,
|
|
67
|
+
{
|
|
68
|
+
color: "iris",
|
|
69
|
+
mt: "2",
|
|
70
|
+
style: { alignItems: "center" },
|
|
71
|
+
children: [
|
|
72
|
+
/* @__PURE__ */ jsx(Callout.Icon, { children: /* @__PURE__ */ jsx(BellIcon, {}) }),
|
|
73
|
+
/* @__PURE__ */ jsx(Callout.Text, { children: /* @__PURE__ */ jsx(Typo, { as: "p", variant: "caption", children: question.minLengthInfoMessage }) })
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
) : null
|
|
77
|
+
] }) : null
|
|
78
|
+
] })
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
var review_question_text_default = ReviewQuestionText;
|
|
83
|
+
|
|
84
|
+
export {
|
|
85
|
+
review_question_text_default
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=chunk-WPAC4HEX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '@/atoms/box';\nimport { Card } from '@/atoms/card';\nimport { Grid } from '@/atoms/grid';\nimport { TextArea } from '@/atoms/text-area';\nimport { Typo } from '@/atoms/typo';\nimport { BellIcon } from '@/icon';\nimport { type CurriculumReviewQuestionText } from '@/types/curriculumContents.type';\nimport { Callout } from '@/atoms/call-out';\nimport { ReviewQuestionContentHeader } from './review-comp';\n\ninterface ReviewQuestionTextProps {\n question: CurriculumReviewQuestionText;\n answer: string;\n error?: string;\n onChange: (value: string) => void;\n}\n\nfunction ReviewQuestionText(props: ReviewQuestionTextProps): React.ReactNode {\n const { question, answer, onChange } = props;\n\n const minLengthNotMet =\n question.minLength && answer.length < question.minLength;\n\n const remainingLength =\n question.minLength && answer.length < question.minLength\n ? question.minLength - answer.length\n : 0;\n\n return (\n <Card\n size=\"2\"\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n <Grid height=\"100%\" rows=\"1fr auto\">\n <Grid height=\"100%\" rows=\"auto 1fr\" width=\"100%\">\n <ReviewQuestionContentHeader\n icon={question.icon}\n question={question.question}\n title={question.title}\n type={question.type}\n />\n\n <TextArea\n mt=\"2\"\n onChange={(e) => {\n onChange(e.target.value);\n }}\n placeholder={question.placeholder}\n value={answer}\n />\n </Grid>\n {minLengthNotMet ? (\n <Box mt=\"2\">\n <Typo align=\"right\" as=\"p\" color=\"red\" variant=\"caption\">\n {`${remainingLength}자 더 작성해주세요.`}\n </Typo>\n {question.minLengthInfoMessage ? (\n <Callout.Root\n color=\"iris\"\n mt=\"2\"\n style={{ alignItems: 'center' }}\n >\n <Callout.Icon>\n <BellIcon />\n </Callout.Icon>\n <Callout.Text>\n <Typo as=\"p\" variant=\"caption\">\n {question.minLengthInfoMessage}\n </Typo>\n </Callout.Text>\n </Callout.Root>\n ) : null}\n </Box>\n ) : null}\n </Grid>\n </Card>\n );\n}\n\nexport default ReviewQuestionText;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAsCQ,SACE,KADF;AApBR,SAAS,mBAAmB,OAAiD;AAC3E,QAAM,EAAE,UAAU,QAAQ,SAAS,IAAI;AAEvC,QAAM,kBACJ,SAAS,aAAa,OAAO,SAAS,SAAS;AAEjD,QAAM,kBACJ,SAAS,aAAa,OAAO,SAAS,SAAS,YAC3C,SAAS,YAAY,OAAO,SAC5B;AAEN,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MAEA,+BAAC,QAAK,QAAO,QAAO,MAAK,YACvB;AAAA,6BAAC,QAAK,QAAO,QAAO,MAAK,YAAW,OAAM,QACxC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,MAAM,SAAS;AAAA,cACf,UAAU,SAAS;AAAA,cACnB,OAAO,SAAS;AAAA,cAChB,MAAM,SAAS;AAAA;AAAA,UACjB;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,UAAU,CAAC,MAAM;AACf,yBAAS,EAAE,OAAO,KAAK;AAAA,cACzB;AAAA,cACA,aAAa,SAAS;AAAA,cACtB,OAAO;AAAA;AAAA,UACT;AAAA,WACF;AAAA,QACC,kBACC,qBAAC,OAAI,IAAG,KACN;AAAA,8BAAC,QAAK,OAAM,SAAQ,IAAG,KAAI,OAAM,OAAM,SAAQ,WAC5C,aAAG,eAAe,uDACrB;AAAA,UACC,SAAS,uBACR;AAAA,YAAC,QAAQ;AAAA,YAAR;AAAA,cACC,OAAM;AAAA,cACN,IAAG;AAAA,cACH,OAAO,EAAE,YAAY,SAAS;AAAA,cAE9B;AAAA,oCAAC,QAAQ,MAAR,EACC,8BAAC,YAAS,GACZ;AAAA,gBACA,oBAAC,QAAQ,MAAR,EACC,8BAAC,QAAK,IAAG,KAAI,SAAQ,WAClB,mBAAS,sBACZ,GACF;AAAA;AAAA;AAAA,UACF,IACE;AAAA,WACN,IACE;AAAA,SACN;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,+BAAQ;","names":[]}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CurriculumReviewSteps_default
|
|
3
|
+
} from "./chunk-3I55S6EP.js";
|
|
4
|
+
import {
|
|
5
|
+
useCurriculumContext
|
|
6
|
+
} from "./chunk-WA5A2GB4.js";
|
|
7
|
+
import {
|
|
8
|
+
Dialog
|
|
9
|
+
} from "./chunk-JQ7VQ5SB.js";
|
|
10
|
+
import {
|
|
11
|
+
IconButton
|
|
12
|
+
} from "./chunk-XK6VEVOK.js";
|
|
13
|
+
import {
|
|
14
|
+
Flex
|
|
15
|
+
} from "./chunk-25HMMI7R.js";
|
|
16
|
+
import {
|
|
17
|
+
Button
|
|
18
|
+
} from "./chunk-ZVDAEY5Q.js";
|
|
19
|
+
import {
|
|
20
|
+
Box
|
|
21
|
+
} from "./chunk-4Y5BEXVN.js";
|
|
22
|
+
import {
|
|
23
|
+
Typo
|
|
24
|
+
} from "./chunk-PMJIFLDT.js";
|
|
25
|
+
import {
|
|
26
|
+
__spreadValues
|
|
27
|
+
} from "./chunk-CRTRMMJ7.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(
|
|
48
|
+
({
|
|
49
|
+
reviewId,
|
|
50
|
+
answer
|
|
51
|
+
}) => {
|
|
52
|
+
if (curriculumReviewAnswers[reviewId] === answer[reviewId]) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
setIsChanged(true);
|
|
56
|
+
_onReviewValueChange({ reviewId, answer });
|
|
57
|
+
},
|
|
58
|
+
[_onReviewValueChange, curriculumReviewAnswers]
|
|
59
|
+
);
|
|
60
|
+
const onReviewSubmit = useCallback(
|
|
61
|
+
(values) => {
|
|
62
|
+
return _onReviewSubmit({ reviewId: item.uuid, answer: values }).then(
|
|
63
|
+
(result) => {
|
|
64
|
+
setIsChanged(false);
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
},
|
|
69
|
+
[item.uuid, _onReviewSubmit]
|
|
70
|
+
);
|
|
71
|
+
const onClickEndReview = useCallback(() => {
|
|
72
|
+
setOpen(false);
|
|
73
|
+
}, []);
|
|
74
|
+
const onClickCloseDrawer = useCallback(() => {
|
|
75
|
+
if (isChanged) {
|
|
76
|
+
setCloseDialogOpen(true);
|
|
77
|
+
} else {
|
|
78
|
+
setOpen(false);
|
|
79
|
+
}
|
|
80
|
+
}, [isChanged]);
|
|
81
|
+
const mode = useMemo(() => {
|
|
82
|
+
return item.questions.every(
|
|
83
|
+
(question) => curriculumReviewAnswers[question.uuid] && curriculumReviewAnswers[question.uuid] !== ""
|
|
84
|
+
) ? "edit" : "create";
|
|
85
|
+
}, [curriculumReviewAnswers, item.questions]);
|
|
86
|
+
const defaultValues = useMemo(() => {
|
|
87
|
+
const allAnswers = __spreadValues(__spreadValues({}, tempCurriculumReviewAnswers), curriculumReviewAnswers);
|
|
88
|
+
return item.questions.reduce((acc, question) => {
|
|
89
|
+
acc[question.uuid] = allAnswers[question.uuid] || "";
|
|
90
|
+
return acc;
|
|
91
|
+
}, {});
|
|
92
|
+
}, [curriculumReviewAnswers, item.questions, tempCurriculumReviewAnswers]);
|
|
93
|
+
const done = useMemo(() => {
|
|
94
|
+
return Boolean(curriculumCompleteMap[item.uuid]);
|
|
95
|
+
}, [curriculumCompleteMap, item.uuid]);
|
|
96
|
+
const bgColor = done ? "var(--color-panel-solid)" : void 0;
|
|
97
|
+
return /* @__PURE__ */ jsxs(Dialog.Root, { onOpenChange: setOpen, open, children: [
|
|
98
|
+
/* @__PURE__ */ jsxs(
|
|
99
|
+
Flex,
|
|
100
|
+
{
|
|
101
|
+
align: "center",
|
|
102
|
+
direction: "column",
|
|
103
|
+
height: "100%",
|
|
104
|
+
justify: "center",
|
|
105
|
+
px: "3",
|
|
106
|
+
py: "3",
|
|
107
|
+
style: {
|
|
108
|
+
backgroundImage: `url(https://tipp-coaching-live.s3.ap-northeast-2.amazonaws.com/images/curriculum_review_bg.png)`,
|
|
109
|
+
backgroundPosition: "center",
|
|
110
|
+
backgroundSize: "cover",
|
|
111
|
+
backgroundRepeat: "no-repeat"
|
|
112
|
+
},
|
|
113
|
+
width: "100%",
|
|
114
|
+
children: [
|
|
115
|
+
/* @__PURE__ */ jsx(Typo, { color: "gray", weight: "bold", children: curriculum.title }),
|
|
116
|
+
/* @__PURE__ */ jsx(Typo, { align: "center", as: "p", color: "gray", children: description }),
|
|
117
|
+
/* @__PURE__ */ jsx(Dialog.Trigger, { children: /* @__PURE__ */ jsx(
|
|
118
|
+
Button,
|
|
119
|
+
{
|
|
120
|
+
mt: "3",
|
|
121
|
+
style: { minWidth: 232, backgroundColor: bgColor },
|
|
122
|
+
variant: done ? "outline" : "solid",
|
|
123
|
+
children: /* @__PURE__ */ jsx(Typo, { truncate: true, children: done ? "\uB098\uC758 \uC751\uB2F5 \uB2E4\uC2DC\uBCF4\uAE30" : buttonTitle })
|
|
124
|
+
}
|
|
125
|
+
) })
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
),
|
|
129
|
+
/* @__PURE__ */ jsx(
|
|
130
|
+
Dialog.Content,
|
|
131
|
+
{
|
|
132
|
+
height: "100%",
|
|
133
|
+
hideCloseButton: true,
|
|
134
|
+
style: { borderRadius: 0, padding: 0 },
|
|
135
|
+
title: "",
|
|
136
|
+
width: "100%",
|
|
137
|
+
children: /* @__PURE__ */ jsxs(
|
|
138
|
+
Flex,
|
|
139
|
+
{
|
|
140
|
+
align: "center",
|
|
141
|
+
height: "100%",
|
|
142
|
+
justify: "center",
|
|
143
|
+
pb: "3",
|
|
144
|
+
position: "relative",
|
|
145
|
+
width: "100%",
|
|
146
|
+
children: [
|
|
147
|
+
/* @__PURE__ */ jsx(
|
|
148
|
+
CurriculumReviewSteps_default,
|
|
149
|
+
{
|
|
150
|
+
contents: item,
|
|
151
|
+
curriculum,
|
|
152
|
+
defaultValues,
|
|
153
|
+
done,
|
|
154
|
+
mode,
|
|
155
|
+
onClickEndReview,
|
|
156
|
+
onReviewValueChange,
|
|
157
|
+
onSubmit: onReviewSubmit,
|
|
158
|
+
title: sectionTitle
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
/* @__PURE__ */ jsx(Box, { position: "absolute", right: "16px", top: "16px", children: /* @__PURE__ */ jsxs(
|
|
162
|
+
IconButton,
|
|
163
|
+
{
|
|
164
|
+
color: "gray",
|
|
165
|
+
onClick: onClickCloseDrawer,
|
|
166
|
+
variant: "ghost",
|
|
167
|
+
children: [
|
|
168
|
+
/* @__PURE__ */ jsx(Box, { display: { initial: "none", md: "block" }, children: /* @__PURE__ */ jsx(Cross1Icon, { height: 20, width: 20 }) }),
|
|
169
|
+
/* @__PURE__ */ jsx(Box, { display: { initial: "block", md: "none" }, children: /* @__PURE__ */ jsx(Cross1Icon, { height: 16, width: 16 }) })
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
) }),
|
|
173
|
+
/* @__PURE__ */ jsx(Dialog.Root, { onOpenChange: setCloseDialogOpen, open: closeDialogOpen, children: /* @__PURE__ */ jsx(
|
|
174
|
+
Dialog.Content,
|
|
175
|
+
{
|
|
176
|
+
buttons: /* @__PURE__ */ jsxs(Flex, { gap: "3", justify: "end", children: [
|
|
177
|
+
/* @__PURE__ */ jsx(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { color: "gray", variant: "outline", children: "\uB3CC\uC544\uAC00\uAE30" }) }),
|
|
178
|
+
/* @__PURE__ */ jsx(Dialog.Close, { children: /* @__PURE__ */ jsx(Button, { color: "red", onClick: onClickEndReview, children: "\uB098\uAC00\uAE30" }) })
|
|
179
|
+
] }),
|
|
180
|
+
title: "\uC791\uC131\uC744 \uC911\uB2E8\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",
|
|
181
|
+
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." })
|
|
182
|
+
}
|
|
183
|
+
) })
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
)
|
|
187
|
+
}
|
|
188
|
+
)
|
|
189
|
+
] });
|
|
190
|
+
}
|
|
191
|
+
var curriculum_review_default = CurriculumReview;
|
|
192
|
+
|
|
193
|
+
export {
|
|
194
|
+
curriculum_review_default
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=chunk-X2OV53JW.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 } from '@/atoms/box';\nimport { Button } from '@/atoms/button';\nimport { Dialog } from '@/atoms/dialog';\nimport { Flex } from '@/atoms/flex';\nimport { IconButton } from '@/atoms/icon-button';\nimport { Typo } from '@/atoms/typo';\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(\n ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => {\n if (curriculumReviewAnswers[reviewId] === answer[reviewId]) {\n return;\n }\n\n setIsChanged(true);\n _onReviewValueChange({ reviewId, answer });\n },\n [_onReviewValueChange, curriculumReviewAnswers]\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 if (isChanged) {\n setCloseDialogOpen(true);\n } else {\n setOpen(false);\n }\n }, [isChanged]);\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 {/* 닫기 버튼 */}\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 {/* 진짜 닫겠습니까 모달 */}\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":[]}
|