@tipp/ui 2.1.9 → 2.1.11
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 +1 -1
- package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
- package/dist/app/platform/edit-coaching-time.js +1 -1
- package/dist/app/platform/edit-service-type.cjs.map +1 -1
- package/dist/app/platform/edit-service-type.js +1 -1
- package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
- package/dist/app/platform/goal-manage-card-edit.js +1 -1
- package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
- package/dist/app/platform/on-offline-radio-card.js +1 -1
- package/dist/app/platform/reservation-card.cjs.map +1 -1
- package/dist/app/platform/reservation-card.js +1 -1
- package/dist/app/platform/session-card.cjs.map +1 -1
- package/dist/app/platform/session-card.js +1 -1
- package/dist/chunk-2T7JCRER.js +30 -0
- package/dist/chunk-2T7JCRER.js.map +1 -0
- package/dist/chunk-3H5JZH44.js +192 -0
- package/dist/chunk-3H5JZH44.js.map +1 -0
- package/dist/chunk-3RNLOJ3Z.js +63 -0
- package/dist/chunk-3RNLOJ3Z.js.map +1 -0
- package/dist/chunk-535PWEKB.js +192 -0
- package/dist/chunk-535PWEKB.js.map +1 -0
- package/dist/chunk-B36RAS3U.js +37 -0
- package/dist/chunk-B36RAS3U.js.map +1 -0
- package/dist/chunk-BX5F5FIY.js +51 -0
- package/dist/chunk-BX5F5FIY.js.map +1 -0
- package/dist/chunk-CPH6OVGY.js +63 -0
- package/dist/chunk-CPH6OVGY.js.map +1 -0
- package/dist/chunk-ECOW2GOO.js +98 -0
- package/dist/chunk-ECOW2GOO.js.map +1 -0
- package/dist/chunk-GIRU6LCT.js +123 -0
- package/dist/chunk-GIRU6LCT.js.map +1 -0
- package/dist/chunk-HNO5SCLZ.js +192 -0
- package/dist/chunk-HNO5SCLZ.js.map +1 -0
- package/dist/chunk-HQGFHFGR.js +123 -0
- package/dist/chunk-HQGFHFGR.js.map +1 -0
- package/dist/chunk-I6NVQV5Q.js +59 -0
- package/dist/chunk-I6NVQV5Q.js.map +1 -0
- package/dist/chunk-J27CSA2I.js +59 -0
- package/dist/chunk-J27CSA2I.js.map +1 -0
- package/dist/chunk-J52WPSWU.js +150 -0
- package/dist/chunk-J52WPSWU.js.map +1 -0
- package/dist/chunk-JXNELVQI.js +144 -0
- package/dist/chunk-JXNELVQI.js.map +1 -0
- package/dist/chunk-K2MWDCUN.js +61 -0
- package/dist/chunk-K2MWDCUN.js.map +1 -0
- package/dist/chunk-K43UQM5K.js +29 -0
- package/dist/chunk-K43UQM5K.js.map +1 -0
- package/dist/chunk-K5YEAJYF.js +174 -0
- package/dist/chunk-K5YEAJYF.js.map +1 -0
- package/dist/chunk-LPLXVTDP.js +192 -0
- package/dist/chunk-LPLXVTDP.js.map +1 -0
- package/dist/chunk-LYSC27W7.js +145 -0
- package/dist/chunk-LYSC27W7.js.map +1 -0
- package/dist/chunk-MHQTP5GH.js +150 -0
- package/dist/chunk-MHQTP5GH.js.map +1 -0
- package/dist/chunk-MZ3VW66Q.js +89 -0
- package/dist/chunk-MZ3VW66Q.js.map +1 -0
- package/dist/chunk-NXECPRLF.js +192 -0
- package/dist/chunk-NXECPRLF.js.map +1 -0
- package/dist/chunk-O5VFW7GH.js +59 -0
- package/dist/chunk-O5VFW7GH.js.map +1 -0
- package/dist/chunk-OBR3PYFG.js +89 -0
- package/dist/chunk-OBR3PYFG.js.map +1 -0
- package/dist/chunk-OY7YLOWY.js +69 -0
- package/dist/chunk-OY7YLOWY.js.map +1 -0
- package/dist/chunk-QQ5DIV3E.js +89 -0
- package/dist/chunk-QQ5DIV3E.js.map +1 -0
- package/dist/chunk-QTUOT7HX.js +59 -0
- package/dist/chunk-QTUOT7HX.js.map +1 -0
- package/dist/chunk-SPKSNWII.js +101 -0
- package/dist/chunk-SPKSNWII.js.map +1 -0
- package/dist/chunk-TNMIE7WN.js +192 -0
- package/dist/chunk-TNMIE7WN.js.map +1 -0
- package/dist/chunk-VTNGVFOL.js +123 -0
- package/dist/chunk-VTNGVFOL.js.map +1 -0
- package/dist/chunk-VVMUR24Y.js +281 -0
- package/dist/chunk-VVMUR24Y.js.map +1 -0
- package/dist/chunk-WNFEYK6I.js +123 -0
- package/dist/chunk-WNFEYK6I.js.map +1 -0
- package/dist/chunk-WNYT4BQZ.js +89 -0
- package/dist/chunk-WNYT4BQZ.js.map +1 -0
- package/dist/chunk-WPLJHMMO.js +87 -0
- package/dist/chunk-WPLJHMMO.js.map +1 -0
- package/dist/chunk-WRTFAPEW.js +49 -0
- package/dist/chunk-WRTFAPEW.js.map +1 -0
- package/dist/chunk-WZBMMXTJ.js +59 -0
- package/dist/chunk-WZBMMXTJ.js.map +1 -0
- package/dist/chunk-XDVRMLAH.js +42 -0
- package/dist/chunk-XDVRMLAH.js.map +1 -0
- package/dist/chunk-XPKOBDJ7.js +43 -0
- package/dist/chunk-XPKOBDJ7.js.map +1 -0
- package/dist/chunk-YDNYSZ4R.js +89 -0
- package/dist/chunk-YDNYSZ4R.js.map +1 -0
- package/dist/chunk-ZS32P3T5.js +123 -0
- package/dist/chunk-ZS32P3T5.js.map +1 -0
- package/dist/index.cjs +66 -64
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +46 -21
- package/dist/index.js +1 -1
- package/dist/molecules/expand-table/index.cjs +66 -64
- package/dist/molecules/expand-table/index.cjs.map +1 -1
- package/dist/molecules/expand-table/index.js +1 -1
- package/dist/molecules/index.cjs +66 -64
- package/dist/molecules/index.cjs.map +1 -1
- package/dist/molecules/index.js +1 -1
- package/package.json +1 -1
- package/src/molecules/expand-table/index.tsx +12 -11
|
@@ -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\n const onReviewSubmit = useCallback((values: Record<string, string>) => {\n return _onReviewSubmit({ reviewId: item.uuid, answer: values });\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 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 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={{ width: 232 }} 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 <Dialog.Close asChild>\n <IconButton color=\"gray\" 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 </Dialog.Close>\n </Box>\n </Flex>\n </Dialog.Content>\n </Dialog.Root>\n );\n}\n\nexport default CurriculumReview;\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {
|
|
2
|
+
curriculum_review_default
|
|
3
|
+
} from "./chunk-ZS32P3T5.js";
|
|
4
|
+
import {
|
|
5
|
+
curriculum_video_default
|
|
6
|
+
} from "./chunk-HYMGXDPL.js";
|
|
7
|
+
import {
|
|
8
|
+
useCurriculumContext
|
|
9
|
+
} from "./chunk-YN4SHJ2O.js";
|
|
10
|
+
import {
|
|
11
|
+
Typo
|
|
12
|
+
} from "./chunk-LH57PIY2.js";
|
|
13
|
+
import {
|
|
14
|
+
Flex
|
|
15
|
+
} from "./chunk-25HMMI7R.js";
|
|
16
|
+
import {
|
|
17
|
+
InfoCircledIcon
|
|
18
|
+
} from "./chunk-53ZVUOHV.js";
|
|
19
|
+
|
|
20
|
+
// src/molecules/curriculumV2/CurriculumContents/index.tsx
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
function CurriculumBody() {
|
|
23
|
+
const { selectedItem, selectedSectionTitle } = useCurriculumContext();
|
|
24
|
+
switch (selectedItem.type) {
|
|
25
|
+
case "video":
|
|
26
|
+
return /* @__PURE__ */ jsx(curriculum_video_default, { item: selectedItem });
|
|
27
|
+
case "review":
|
|
28
|
+
return /* @__PURE__ */ jsx(
|
|
29
|
+
curriculum_review_default,
|
|
30
|
+
{
|
|
31
|
+
item: selectedItem,
|
|
32
|
+
sectionTitle: selectedSectionTitle == null ? void 0 : selectedSectionTitle.title
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
default:
|
|
36
|
+
return /* @__PURE__ */ jsxs(
|
|
37
|
+
Flex,
|
|
38
|
+
{
|
|
39
|
+
align: "center",
|
|
40
|
+
direction: "column",
|
|
41
|
+
gap: "2",
|
|
42
|
+
height: "100%",
|
|
43
|
+
justify: "center",
|
|
44
|
+
width: "100%",
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsx(InfoCircledIcon, { height: 24, width: 24 }),
|
|
47
|
+
/* @__PURE__ */ jsx(Typo, { children: "\uCEE8\uD150\uCE20\uB97C \uB85C\uB529 \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4" }),
|
|
48
|
+
/* @__PURE__ */ jsx(Typo, { align: "center", color: "gray", variant: "caption", children: `[debug info]
|
|
49
|
+
${JSON.stringify(selectedItem)}` })
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export {
|
|
57
|
+
CurriculumBody
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-I6NVQV5Q.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';\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 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":";;;;;;;;;;;;;;;;;;;;AAYa,cAUL,YAVK;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,IAEJ;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":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {
|
|
2
|
+
curriculum_review_default
|
|
3
|
+
} from "./chunk-VTNGVFOL.js";
|
|
4
|
+
import {
|
|
5
|
+
curriculum_video_default
|
|
6
|
+
} from "./chunk-HYMGXDPL.js";
|
|
7
|
+
import {
|
|
8
|
+
useCurriculumContext
|
|
9
|
+
} from "./chunk-YN4SHJ2O.js";
|
|
10
|
+
import {
|
|
11
|
+
Typo
|
|
12
|
+
} from "./chunk-LH57PIY2.js";
|
|
13
|
+
import {
|
|
14
|
+
Flex
|
|
15
|
+
} from "./chunk-25HMMI7R.js";
|
|
16
|
+
import {
|
|
17
|
+
InfoCircledIcon
|
|
18
|
+
} from "./chunk-53ZVUOHV.js";
|
|
19
|
+
|
|
20
|
+
// src/molecules/curriculumV2/CurriculumContents/index.tsx
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
function CurriculumBody() {
|
|
23
|
+
const { selectedItem, selectedSectionTitle } = useCurriculumContext();
|
|
24
|
+
switch (selectedItem.type) {
|
|
25
|
+
case "video":
|
|
26
|
+
return /* @__PURE__ */ jsx(curriculum_video_default, { item: selectedItem });
|
|
27
|
+
case "review":
|
|
28
|
+
return /* @__PURE__ */ jsx(
|
|
29
|
+
curriculum_review_default,
|
|
30
|
+
{
|
|
31
|
+
item: selectedItem,
|
|
32
|
+
sectionTitle: selectedSectionTitle == null ? void 0 : selectedSectionTitle.title
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
default:
|
|
36
|
+
return /* @__PURE__ */ jsxs(
|
|
37
|
+
Flex,
|
|
38
|
+
{
|
|
39
|
+
align: "center",
|
|
40
|
+
direction: "column",
|
|
41
|
+
gap: "2",
|
|
42
|
+
height: "100%",
|
|
43
|
+
justify: "center",
|
|
44
|
+
width: "100%",
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsx(InfoCircledIcon, { height: 24, width: 24 }),
|
|
47
|
+
/* @__PURE__ */ jsx(Typo, { children: "\uCEE8\uD150\uCE20\uB97C \uB85C\uB529 \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4" }),
|
|
48
|
+
/* @__PURE__ */ jsx(Typo, { align: "center", color: "gray", variant: "caption", children: `[debug info]
|
|
49
|
+
${JSON.stringify(selectedItem)}` })
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export {
|
|
57
|
+
CurriculumBody
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-J27CSA2I.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';\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 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":";;;;;;;;;;;;;;;;;;;;AAYa,cAUL,YAVK;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,IAEJ;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":[]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useCurriculumReviewContext
|
|
3
|
+
} from "./chunk-EBGKFGME.js";
|
|
4
|
+
import {
|
|
5
|
+
getCurriculumIcon,
|
|
6
|
+
getCurriculumQuestionIconColor,
|
|
7
|
+
getCurriculumQuestionTypeDescription
|
|
8
|
+
} from "./chunk-AI7EZKUN.js";
|
|
9
|
+
import {
|
|
10
|
+
Grid
|
|
11
|
+
} from "./chunk-EGEQY3KT.js";
|
|
12
|
+
import {
|
|
13
|
+
Heading
|
|
14
|
+
} from "./chunk-3IT3NVK6.js";
|
|
15
|
+
import {
|
|
16
|
+
Separator
|
|
17
|
+
} from "./chunk-HYITAA4J.js";
|
|
18
|
+
import {
|
|
19
|
+
Box
|
|
20
|
+
} from "./chunk-4Y5BEXVN.js";
|
|
21
|
+
import {
|
|
22
|
+
Typo
|
|
23
|
+
} from "./chunk-LH57PIY2.js";
|
|
24
|
+
import {
|
|
25
|
+
Flex
|
|
26
|
+
} from "./chunk-25HMMI7R.js";
|
|
27
|
+
import {
|
|
28
|
+
Button
|
|
29
|
+
} from "./chunk-AFPH32MF.js";
|
|
30
|
+
import {
|
|
31
|
+
Badge
|
|
32
|
+
} from "./chunk-FCIHNIOH.js";
|
|
33
|
+
|
|
34
|
+
// src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.tsx
|
|
35
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
36
|
+
var renderPreviewContent = (args) => {
|
|
37
|
+
const { question } = args;
|
|
38
|
+
const Icon = getCurriculumIcon({
|
|
39
|
+
type: question.type,
|
|
40
|
+
icon: question.icon
|
|
41
|
+
});
|
|
42
|
+
const getDescription = () => {
|
|
43
|
+
return [
|
|
44
|
+
getCurriculumQuestionTypeDescription(question.type),
|
|
45
|
+
question.duration ? `${question.duration}\uBD84` : ""
|
|
46
|
+
].filter(Boolean).join(" | ");
|
|
47
|
+
};
|
|
48
|
+
return /* @__PURE__ */ jsxs(
|
|
49
|
+
Grid,
|
|
50
|
+
{
|
|
51
|
+
columns: "16px 1fr",
|
|
52
|
+
gap: "2",
|
|
53
|
+
px: "4",
|
|
54
|
+
py: "2",
|
|
55
|
+
width: "100%",
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsx(Box, { mt: "1", children: /* @__PURE__ */ jsx(Icon, { color: getCurriculumQuestionIconColor(question.type) }) }),
|
|
58
|
+
/* @__PURE__ */ jsxs(Box, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx(Typo, { as: "p", color: "gray", weight: "bold", children: question.title }),
|
|
60
|
+
/* @__PURE__ */ jsx(Typo, { color: "gray", children: getDescription() })
|
|
61
|
+
] })
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
question.uuid
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
var getReviewContentValue = (question, answer) => {
|
|
68
|
+
var _a, _b, _c;
|
|
69
|
+
if (question.type === "question_satisfaction_option") {
|
|
70
|
+
return (_c = (_b = (_a = question.options) == null ? void 0 : _a.find((option) => option.value === Number(answer))) == null ? void 0 : _b.label) != null ? _c : "";
|
|
71
|
+
}
|
|
72
|
+
return answer;
|
|
73
|
+
};
|
|
74
|
+
var renderReviewContent = (args) => {
|
|
75
|
+
const { question, answer } = args;
|
|
76
|
+
const Icon = getCurriculumIcon({
|
|
77
|
+
type: question.type,
|
|
78
|
+
icon: question.icon
|
|
79
|
+
});
|
|
80
|
+
const color = getCurriculumQuestionIconColor(question.type);
|
|
81
|
+
const badgeColor = ["question_radio", "question_satisfaction_option"].includes(question.type) ? "accent" : "neutral";
|
|
82
|
+
const value = getReviewContentValue(question, answer);
|
|
83
|
+
return /* @__PURE__ */ jsxs(
|
|
84
|
+
Grid,
|
|
85
|
+
{
|
|
86
|
+
columns: "16px 1fr",
|
|
87
|
+
gap: "2",
|
|
88
|
+
px: "4",
|
|
89
|
+
py: "2",
|
|
90
|
+
width: "100%",
|
|
91
|
+
children: [
|
|
92
|
+
/* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Icon, { color }) }),
|
|
93
|
+
/* @__PURE__ */ jsxs(Box, { children: [
|
|
94
|
+
/* @__PURE__ */ jsx(Typo, { as: "p", color: "gray", mb: "2", weight: "bold", children: question.title }),
|
|
95
|
+
/* @__PURE__ */ jsx(Badge, { color: badgeColor, size: "large", style: { whiteSpace: "break-spaces" }, children: value || "(\uBBF8 \uC751\uB2F5)" })
|
|
96
|
+
] })
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
question.uuid
|
|
100
|
+
);
|
|
101
|
+
};
|
|
102
|
+
function StartReview({ onStart }) {
|
|
103
|
+
const { curriculum, reviewContents, sectionTitle, done, formik } = useCurriculumReviewContext();
|
|
104
|
+
return /* @__PURE__ */ jsx(
|
|
105
|
+
Flex,
|
|
106
|
+
{
|
|
107
|
+
align: "center",
|
|
108
|
+
direction: "column",
|
|
109
|
+
height: "100%",
|
|
110
|
+
justify: "center",
|
|
111
|
+
width: "100%",
|
|
112
|
+
children: /* @__PURE__ */ jsxs(
|
|
113
|
+
Flex,
|
|
114
|
+
{
|
|
115
|
+
align: "center",
|
|
116
|
+
direction: "column",
|
|
117
|
+
height: "100%",
|
|
118
|
+
justify: "center",
|
|
119
|
+
maxWidth: "650px",
|
|
120
|
+
pb: "6",
|
|
121
|
+
pt: "4",
|
|
122
|
+
px: "4",
|
|
123
|
+
width: "100%",
|
|
124
|
+
children: [
|
|
125
|
+
/* @__PURE__ */ jsx(Typo, { color: "gray", children: curriculum.title }),
|
|
126
|
+
/* @__PURE__ */ jsx(Heading, { variant: "heading3", children: reviewContents.title }),
|
|
127
|
+
/* @__PURE__ */ jsx(Separator, { my: "4", style: { width: 100 } }),
|
|
128
|
+
/* @__PURE__ */ jsxs(Typo, { align: "left", as: "p", color: "gray", mb: "4", children: [
|
|
129
|
+
/* @__PURE__ */ jsx(Typo, { as: "span", weight: "bold", children: sectionTitle }),
|
|
130
|
+
/* @__PURE__ */ jsx(Typo, { children: reviewContents.description })
|
|
131
|
+
] }),
|
|
132
|
+
/* @__PURE__ */ jsx(Box, { mb: "5", overflowY: "auto", width: "100%", children: reviewContents.questions.map((question) => {
|
|
133
|
+
if (done) {
|
|
134
|
+
return renderReviewContent({ question, answer: formik.values.answers[question.uuid] });
|
|
135
|
+
}
|
|
136
|
+
return renderPreviewContent({ question });
|
|
137
|
+
}) }),
|
|
138
|
+
/* @__PURE__ */ jsx(Button, { color: "yellow", onClick: onStart, variant: done ? "outline" : "solid", children: done ? "\uB098\uC758 \uC751\uB2F5 \uC218\uC815\uD558\uAE30" : reviewContents.buttonTitle })
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
var start_review_default = StartReview;
|
|
146
|
+
|
|
147
|
+
export {
|
|
148
|
+
start_review_default
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=chunk-J52WPSWU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.tsx"],"sourcesContent":["import React from 'react';\nimport type { BadgeProps} from '@/atoms';\nimport { Badge, Box, Button, Flex, Grid, Heading, Separator, Typo } from '@/atoms'; \nimport {\n getCurriculumIcon,\n getCurriculumQuestionIconColor,\n getCurriculumQuestionTypeDescription,\n} from '@/utils/curriculum.utils';\nimport type { ReviewQuestionElement } from '@/types/curriculum.type';\nimport { useCurriculumReviewContext } from './curriculum-review-context';\n\ninterface StartReviewProps {\n onStart: () => void;\n}\n\n\nconst renderPreviewContent = (args: {\n question: ReviewQuestionElement;\n}):React.ReactElement => {\n const { question } = args;\n const Icon = getCurriculumIcon({\n type: question.type,\n icon: question.icon,\n });\n const getDescription = (): string => {\n return [\n getCurriculumQuestionTypeDescription(question.type),\n question.duration ? `${question.duration}분` : '',\n ]\n .filter(Boolean)\n .join(' | ');\n };\n\n return (\n <Grid\n columns=\"16px 1fr\"\n gap=\"2\"\n key={question.uuid}\n px=\"4\"\n py=\"2\"\n width=\"100%\"\n >\n <Box mt=\"1\">\n <Icon color={getCurriculumQuestionIconColor(question.type)} />\n </Box>\n <Box>\n <Typo as=\"p\" color=\"gray\" weight=\"bold\">\n {question.title}\n </Typo>\n <Typo color=\"gray\">{getDescription()}</Typo>\n </Box>\n </Grid>\n );\n};\n\n\nconst getReviewContentValue = (question: ReviewQuestionElement, answer: string): string => {\n if(question.type === 'question_satisfaction_option'){ \n return question.options?.find((option)=>option.value === Number(answer))?.label ?? '';\n }\n return answer\n}\n\n\nconst renderReviewContent = (args: {\n question: ReviewQuestionElement;\n answer: string;\n}):React.ReactElement => {\n const { question, answer } = args;\n const Icon = getCurriculumIcon({\n type: question.type,\n icon: question.icon,\n }); \n\n const color = getCurriculumQuestionIconColor(question.type);\n const badgeColor: BadgeProps['color'] = ['question_radio','question_satisfaction_option'].includes(question.type) ? 'accent' : 'neutral';\n const value = getReviewContentValue(question, answer);\n\n return (\n <Grid\n columns=\"16px 1fr\"\n gap=\"2\"\n key={question.uuid}\n px=\"4\"\n py=\"2\"\n width=\"100%\"\n >\n <Box>\n <Icon color={color} />\n </Box>\n\n <Box>\n <Typo as=\"p\" color=\"gray\" mb=\"2\" weight=\"bold\">{question.title}</Typo>\n <Badge color={badgeColor} size=\"large\" style={{whiteSpace: 'break-spaces'}}>\n {value || '(미 응답)'}\n </Badge>\n </Box>\n \n </Grid>\n );\n};\n\nfunction StartReview({ onStart }: StartReviewProps): React.ReactNode {\n const { curriculum, reviewContents, sectionTitle, done,formik } =\n useCurriculumReviewContext();\n\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n width=\"100%\"\n >\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n maxWidth=\"650px\"\n pb=\"6\"\n pt=\"4\"\n px=\"4\"\n width=\"100%\"\n >\n <Typo color=\"gray\">{curriculum.title}</Typo>\n <Heading variant=\"heading3\">{reviewContents.title}</Heading>\n <Separator my=\"4\" style={{ width: 100 }} />\n\n <Typo align=\"left\" as=\"p\" color=\"gray\" mb=\"4\">\n <Typo as=\"span\" weight=\"bold\">\n {sectionTitle}\n </Typo>\n <Typo>{reviewContents.description}</Typo>\n </Typo>\n\n <Box mb=\"5\" overflowY=\"auto\" width=\"100%\">\n {reviewContents.questions.map((question)=>{\n if(done){\n return renderReviewContent({ question, answer: formik.values.answers[question.uuid]});\n }\n return renderPreviewContent({ question });\n })}\n </Box>\n <Button color=\"yellow\" onClick={onStart} variant={done ? 'outline' : 'solid'}>\n {done ? '나의 응답 수정하기' : reviewContents.buttonTitle}\n </Button>\n </Flex>\n </Flex>\n );\n}\n\nexport default StartReview;\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EditServiceType
|
|
3
|
+
} from "./chunk-44Y6LSNA.js";
|
|
4
|
+
import {
|
|
5
|
+
EditCoachingTime
|
|
6
|
+
} from "./chunk-K5YEAJYF.js";
|
|
7
|
+
import {
|
|
8
|
+
Grid
|
|
9
|
+
} from "./chunk-EGEQY3KT.js";
|
|
10
|
+
import {
|
|
11
|
+
DataList
|
|
12
|
+
} from "./chunk-VTJZMOSP.js";
|
|
13
|
+
import {
|
|
14
|
+
Dialog
|
|
15
|
+
} from "./chunk-45VFASWZ.js";
|
|
16
|
+
import {
|
|
17
|
+
Heading
|
|
18
|
+
} from "./chunk-3IT3NVK6.js";
|
|
19
|
+
import {
|
|
20
|
+
Card
|
|
21
|
+
} from "./chunk-HEDMSFPW.js";
|
|
22
|
+
import {
|
|
23
|
+
BulletText
|
|
24
|
+
} from "./chunk-LMWTEDYS.js";
|
|
25
|
+
import {
|
|
26
|
+
Flex
|
|
27
|
+
} from "./chunk-25HMMI7R.js";
|
|
28
|
+
import {
|
|
29
|
+
Button
|
|
30
|
+
} from "./chunk-AFPH32MF.js";
|
|
31
|
+
import {
|
|
32
|
+
Pencil1Icon
|
|
33
|
+
} from "./chunk-53ZVUOHV.js";
|
|
34
|
+
import {
|
|
35
|
+
__objRest,
|
|
36
|
+
__spreadProps,
|
|
37
|
+
__spreadValues
|
|
38
|
+
} from "./chunk-2NMEKWO5.js";
|
|
39
|
+
|
|
40
|
+
// src/app/platform/session-card.tsx
|
|
41
|
+
import { useCallback, useMemo } from "react";
|
|
42
|
+
import { format } from "date-fns";
|
|
43
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
44
|
+
var preventDefault = (e) => {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
};
|
|
47
|
+
function SessionCard(props) {
|
|
48
|
+
const _a = props, {
|
|
49
|
+
sessionNumber,
|
|
50
|
+
userName,
|
|
51
|
+
error,
|
|
52
|
+
ExtraButtons,
|
|
53
|
+
TitleExtra,
|
|
54
|
+
editable,
|
|
55
|
+
onSaveDate,
|
|
56
|
+
onSaveSessionType,
|
|
57
|
+
startAt,
|
|
58
|
+
endAt,
|
|
59
|
+
sessionType
|
|
60
|
+
} = _a, rest = __objRest(_a, [
|
|
61
|
+
"sessionNumber",
|
|
62
|
+
"userName",
|
|
63
|
+
"error",
|
|
64
|
+
"ExtraButtons",
|
|
65
|
+
"TitleExtra",
|
|
66
|
+
"editable",
|
|
67
|
+
"onSaveDate",
|
|
68
|
+
"onSaveSessionType",
|
|
69
|
+
"startAt",
|
|
70
|
+
"endAt",
|
|
71
|
+
"sessionType"
|
|
72
|
+
]);
|
|
73
|
+
const renderEditButton = useCallback(() => {
|
|
74
|
+
return /* @__PURE__ */ jsx(Button, { color: "gray", ml: "2", variant: "transparent", children: /* @__PURE__ */ jsx(Pencil1Icon, {}) });
|
|
75
|
+
}, []);
|
|
76
|
+
const sessionTimeStr = useMemo(() => {
|
|
77
|
+
if (!startAt || !endAt) return "\uC54C \uC218 \uC5C6\uC74C";
|
|
78
|
+
return `${format(startAt, "yyyy\uB144 MM\uC6D4 dd\uC77C HH\uC2DC mm\uBD84")} ~ ${format(endAt, "HH\uC2DC mm\uBD84")}`;
|
|
79
|
+
}, [startAt, endAt]);
|
|
80
|
+
return /* @__PURE__ */ jsx(Card, __spreadProps(__spreadValues({ error: Boolean(error) }, rest), { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "3", children: [
|
|
81
|
+
/* @__PURE__ */ jsxs(Flex, { align: "center", width: "100%", children: [
|
|
82
|
+
/* @__PURE__ */ jsx(Heading, { variant: "heading4", children: `${userName || "\uC54C \uC218 \uC5C6\uC74C"}\uB2D8 ${sessionNumber || "-"}\uD68C\uCC28` }),
|
|
83
|
+
TitleExtra,
|
|
84
|
+
error ? /* @__PURE__ */ jsx(BulletText, { as: "p", color: "red", variant: "caption", children: error }) : null
|
|
85
|
+
] }),
|
|
86
|
+
/* @__PURE__ */ jsxs(DataList.Root, { children: [
|
|
87
|
+
/* @__PURE__ */ jsxs(DataList.Item, { children: [
|
|
88
|
+
/* @__PURE__ */ jsx(DataList.Label, { children: "\uCF54\uCE6D \uC77C\uC2DC" }),
|
|
89
|
+
/* @__PURE__ */ jsxs(DataList.Value, { children: [
|
|
90
|
+
sessionTimeStr,
|
|
91
|
+
editable ? /* @__PURE__ */ jsxs(Dialog.Root, { children: [
|
|
92
|
+
/* @__PURE__ */ jsx(Dialog.Trigger, { children: renderEditButton() }),
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
Dialog.Content,
|
|
95
|
+
{
|
|
96
|
+
onOpenAutoFocus: preventDefault,
|
|
97
|
+
style: { overflow: "visible" },
|
|
98
|
+
title: `${sessionNumber}\uD68C\uCC28 \uC138\uC158 \uC77C\uC2DC \uBCC0\uACBD\uD558\uAE30`,
|
|
99
|
+
children: /* @__PURE__ */ jsx(
|
|
100
|
+
EditCoachingTime,
|
|
101
|
+
{
|
|
102
|
+
defaultEndAt: endAt,
|
|
103
|
+
defaultStartAt: startAt,
|
|
104
|
+
onClickSave: onSaveDate
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
)
|
|
109
|
+
] }) : null
|
|
110
|
+
] })
|
|
111
|
+
] }),
|
|
112
|
+
/* @__PURE__ */ jsxs(Grid, { columns: { initial: "1", xs: "2" }, style: { gap: "inherit" }, children: [
|
|
113
|
+
/* @__PURE__ */ jsxs(DataList.Item, { children: [
|
|
114
|
+
/* @__PURE__ */ jsx(DataList.Label, { children: "\uC138\uC158 \uCC38\uC5EC \uBC29\uC2DD" }),
|
|
115
|
+
/* @__PURE__ */ jsxs(DataList.Value, { children: [
|
|
116
|
+
sessionType === "offlineCoaching" ? "\uC624\uD504\uB77C\uC778" : "\uC628\uB77C\uC778",
|
|
117
|
+
editable ? /* @__PURE__ */ jsxs(Dialog.Root, { children: [
|
|
118
|
+
/* @__PURE__ */ jsx(Dialog.Trigger, { children: renderEditButton() }),
|
|
119
|
+
/* @__PURE__ */ jsx(
|
|
120
|
+
Dialog.Content,
|
|
121
|
+
{
|
|
122
|
+
title: `${sessionNumber}\uD68C\uCC28 \uC138\uC158 \uC9C4\uD589 \uBC29\uC2DD \uBCC0\uACBD\uD558\uAE30`,
|
|
123
|
+
children: /* @__PURE__ */ jsx(
|
|
124
|
+
EditServiceType,
|
|
125
|
+
{
|
|
126
|
+
defaultServiceType: sessionType,
|
|
127
|
+
onClickSave: onSaveSessionType
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
] }) : null
|
|
133
|
+
] })
|
|
134
|
+
] }),
|
|
135
|
+
/* @__PURE__ */ jsx(Flex, { gap: "2", justify: "end", children: ExtraButtons })
|
|
136
|
+
] })
|
|
137
|
+
] })
|
|
138
|
+
] }) }));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export {
|
|
142
|
+
SessionCard
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=chunk-JXNELVQI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/app/platform/session-card.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { format } from 'date-fns';\nimport type { ServiceType } from '@/types/biz.type';\nimport type { CardProps } from '../../atoms';\nimport {\n BulletText,\n Button,\n Card,\n DataList,\n Dialog,\n Flex,\n Grid,\n Heading,\n} from '../../atoms';\nimport { Pencil1Icon } from '../../icon';\nimport { EditCoachingTime } from './edit-coaching-time';\nimport { EditServiceType } from './edit-service-type';\n\nconst preventDefault = (e: Event): void => {\n e.preventDefault();\n};\nexport type SessionCardProps = Omit<CardProps, 'error'> & {\n error?: string;\n startAt?: Date;\n endAt?: Date;\n sessionType?: ServiceType;\n userName?: string;\n sessionNumber?: number;\n ExtraButtons?: React.ReactNode;\n editable?: boolean;\n TitleExtra?: React.ReactNode;\n onSaveDate?: (startTime: Date, endTime: Date) => void;\n onSaveSessionType?: (sessionType: string) => void;\n};\n\nexport function SessionCard(props: SessionCardProps): React.ReactNode {\n const {\n sessionNumber,\n userName,\n error,\n ExtraButtons,\n TitleExtra,\n editable,\n onSaveDate,\n onSaveSessionType,\n startAt,\n endAt,\n sessionType,\n ...rest\n } = props;\n\n const renderEditButton = useCallback((): React.ReactNode => {\n return (\n <Button color=\"gray\" ml=\"2\" variant=\"transparent\">\n <Pencil1Icon />\n </Button>\n );\n }, []);\n\n const sessionTimeStr = useMemo(() => {\n if (!startAt || !endAt) return '알 수 없음';\n\n return `${format(startAt, 'yyyy년 MM월 dd일 HH시 mm분')} ~ ${format(endAt, 'HH시 mm분')}`;\n }, [startAt, endAt]);\n\n return (\n <Card error={Boolean(error)} {...rest}>\n <Flex direction=\"column\" gap=\"3\">\n <Flex align=\"center\" width=\"100%\">\n <Heading variant=\"heading4\">\n {`${userName || '알 수 없음'}님 ${sessionNumber || '-'}회차`}\n </Heading>\n {TitleExtra}\n {error ? (\n <BulletText as=\"p\" color=\"red\" variant=\"caption\">\n {error}\n </BulletText>\n ) : null}\n </Flex>\n <DataList.Root>\n <DataList.Item>\n <DataList.Label>코칭 일시</DataList.Label>\n <DataList.Value>\n {sessionTimeStr}\n {editable ? (\n <Dialog.Root>\n <Dialog.Trigger>{renderEditButton()}</Dialog.Trigger>\n <Dialog.Content\n onOpenAutoFocus={preventDefault}\n style={{ overflow: 'visible' }}\n title={`${sessionNumber}회차 세션 일시 변경하기`}\n >\n <EditCoachingTime\n defaultEndAt={endAt}\n defaultStartAt={startAt}\n onClickSave={onSaveDate}\n />\n </Dialog.Content>\n </Dialog.Root>\n ) : null}\n </DataList.Value>\n </DataList.Item>\n <Grid columns={{ initial: '1', xs: '2' }} style={{ gap: 'inherit' }}>\n <DataList.Item>\n <DataList.Label>세션 참여 방식</DataList.Label>\n <DataList.Value>\n {sessionType === 'offlineCoaching' ? '오프라인' : '온라인'}\n {editable ? (\n <Dialog.Root>\n <Dialog.Trigger>{renderEditButton()}</Dialog.Trigger>\n <Dialog.Content\n title={`${sessionNumber}회차 세션 진행 방식 변경하기`}\n >\n <EditServiceType\n defaultServiceType={sessionType}\n onClickSave={onSaveSessionType}\n />\n </Dialog.Content>\n </Dialog.Root>\n ) : null}\n </DataList.Value>\n </DataList.Item>\n\n <Flex gap=\"2\" justify=\"end\">\n {ExtraButtons}\n </Flex>\n </Grid>\n </DataList.Root>\n </Flex>\n </Card>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sidebar_item_default
|
|
3
|
+
} from "./chunk-BX5F5FIY.js";
|
|
4
|
+
import {
|
|
5
|
+
useCurriculumContext
|
|
6
|
+
} from "./chunk-YN4SHJ2O.js";
|
|
7
|
+
import {
|
|
8
|
+
Tabs
|
|
9
|
+
} from "./chunk-5ZITU5L7.js";
|
|
10
|
+
import {
|
|
11
|
+
Grid
|
|
12
|
+
} from "./chunk-EGEQY3KT.js";
|
|
13
|
+
import {
|
|
14
|
+
Box
|
|
15
|
+
} from "./chunk-4Y5BEXVN.js";
|
|
16
|
+
|
|
17
|
+
// src/molecules/curriculumV2/CurriculumSidebar/index.tsx
|
|
18
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
19
|
+
var TAB_LIST = [
|
|
20
|
+
{
|
|
21
|
+
label: "\uAC15\uC758 \uBAA9\uCC28",
|
|
22
|
+
value: "curriculum"
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
function CurriculumSidebar() {
|
|
26
|
+
const { curriculum, selectedIndex, setSelectedIndex, scrollAreaRef, curriculumCompleteMap } = useCurriculumContext();
|
|
27
|
+
const list = curriculum.contents.list;
|
|
28
|
+
return /* @__PURE__ */ jsx(Tabs.Root, { asChild: true, defaultValue: TAB_LIST[0].value, children: /* @__PURE__ */ jsxs(Grid, { height: "100%", overflowY: "auto", rows: "auto 1fr ", width: "100%", children: [
|
|
29
|
+
/* @__PURE__ */ jsx(Tabs.List, { style: { padding: "0 var(--space-3)" }, children: TAB_LIST.map((tab) => /* @__PURE__ */ jsx(Tabs.Trigger, { value: tab.value, children: tab.label }, tab.value)) }),
|
|
30
|
+
/* @__PURE__ */ jsx(
|
|
31
|
+
Box,
|
|
32
|
+
{
|
|
33
|
+
height: "100%",
|
|
34
|
+
overflowY: "auto",
|
|
35
|
+
position: "relative",
|
|
36
|
+
ref: scrollAreaRef,
|
|
37
|
+
width: "100%",
|
|
38
|
+
children: /* @__PURE__ */ jsxs(
|
|
39
|
+
Tabs.Content,
|
|
40
|
+
{
|
|
41
|
+
style: {
|
|
42
|
+
position: "absolute",
|
|
43
|
+
height: "100%",
|
|
44
|
+
width: "100%"
|
|
45
|
+
},
|
|
46
|
+
value: TAB_LIST[0].value,
|
|
47
|
+
children: [
|
|
48
|
+
list.map((item, index) => /* @__PURE__ */ jsx(sidebar_item_default, { done: curriculumCompleteMap[item.uuid], index, item, selectedIndex, setSelectedIndex }, item.uuid)),
|
|
49
|
+
/* @__PURE__ */ jsx(Box, { height: "150px" })
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
] }) });
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
CurriculumSidebar
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=chunk-K2MWDCUN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumSidebar/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Grid, Tabs } from '@/atoms';\nimport { useCurriculumContext } from '../curriculum-context'; \nimport SidebarItem from './sidebar-item';\n\nconst TAB_LIST = [\n {\n label: '강의 목차',\n value: 'curriculum',\n },\n];\nexport function CurriculumSidebar(): React.ReactNode {\n const { curriculum, selectedIndex, setSelectedIndex, scrollAreaRef, curriculumCompleteMap } =\n useCurriculumContext();\n const list = curriculum.contents.list;\n \n\n return (\n <Tabs.Root asChild defaultValue={TAB_LIST[0].value}>\n <Grid height=\"100%\" overflowY=\"auto\" rows=\"auto 1fr \" width=\"100%\">\n <Tabs.List style={{ padding: '0 var(--space-3)' }}>\n {TAB_LIST.map((tab) => (\n <Tabs.Trigger key={tab.value} value={tab.value}>\n {tab.label}\n </Tabs.Trigger>\n ))}\n </Tabs.List>\n <Box\n height=\"100%\"\n overflowY=\"auto\"\n position=\"relative\"\n ref={scrollAreaRef}\n width=\"100%\"\n >\n <Tabs.Content\n style={{\n position: 'absolute',\n height: '100%',\n width: '100%',\n }}\n value={TAB_LIST[0].value}\n >\n {list.map((item, index) => (\n <SidebarItem done={curriculumCompleteMap[item.uuid]} index={index} item={item} key={item.uuid} selectedIndex={selectedIndex} setSelectedIndex={setSelectedIndex} />\n ))}\n <Box height=\"150px\" />\n </Tabs.Content>\n </Box>\n </Grid>\n </Tabs.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsBY,cAYF,YAZE;AAjBZ,IAAM,WAAW;AAAA,EACf;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AACO,SAAS,oBAAqC;AACnD,QAAM,EAAE,YAAY,eAAe,kBAAkB,eAAe,sBAAsB,IACxF,qBAAqB;AACvB,QAAM,OAAO,WAAW,SAAS;AAGjC,SACE,oBAAC,KAAK,MAAL,EAAU,SAAO,MAAC,cAAc,SAAS,CAAC,EAAE,OAC3C,+BAAC,QAAK,QAAO,QAAO,WAAU,QAAO,MAAK,aAAY,OAAM,QAC1D;AAAA,wBAAC,KAAK,MAAL,EAAU,OAAO,EAAE,SAAS,mBAAmB,GAC7C,mBAAS,IAAI,CAAC,QACb,oBAAC,KAAK,SAAL,EAA6B,OAAO,IAAI,OACtC,cAAI,SADY,IAAI,KAEvB,CACD,GACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,QAAO;AAAA,QACP,WAAU;AAAA,QACV,UAAS;AAAA,QACT,KAAK;AAAA,QACL,OAAM;AAAA,QAEN;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,OAAO;AAAA,YACT;AAAA,YACA,OAAO,SAAS,CAAC,EAAE;AAAA,YAElB;AAAA,mBAAK,IAAI,CAAC,MAAM,UACf,oBAAC,wBAAY,MAAM,sBAAsB,KAAK,IAAI,GAAG,OAAc,MAA4B,eAA8B,oBAAzC,KAAK,IAAwE,CAClK;AAAA,cACD,oBAAC,OAAI,QAAO,SAAQ;AAAA;AAAA;AAAA,QACtB;AAAA;AAAA,IACF;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {
|
|
2
|
+
curriculum_item_title_default
|
|
3
|
+
} from "./chunk-22HJDAZH.js";
|
|
4
|
+
import {
|
|
5
|
+
getCurriculumContentSubTypeText,
|
|
6
|
+
getCurriculumIcon
|
|
7
|
+
} from "./chunk-ECOW2GOO.js";
|
|
8
|
+
|
|
9
|
+
// src/molecules/curriculumV2/CurriculumSidebar/Items/section-item.tsx
|
|
10
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
function SectionCommonItem({
|
|
12
|
+
title,
|
|
13
|
+
duration,
|
|
14
|
+
icon,
|
|
15
|
+
type,
|
|
16
|
+
color = "gray"
|
|
17
|
+
}) {
|
|
18
|
+
const IconComp = getCurriculumIcon({ type, icon });
|
|
19
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20
|
+
/* @__PURE__ */ jsx(IconComp, { color }),
|
|
21
|
+
/* @__PURE__ */ jsx(curriculum_item_title_default, { duration, subText: getCurriculumContentSubTypeText(type), title })
|
|
22
|
+
] });
|
|
23
|
+
}
|
|
24
|
+
var section_item_default = SectionCommonItem;
|
|
25
|
+
|
|
26
|
+
export {
|
|
27
|
+
section_item_default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=chunk-K43UQM5K.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/molecules/curriculumV2/CurriculumSidebar/Items/section-item.tsx"],"sourcesContent":["import React from 'react';\nimport { getCurriculumContentSubTypeText, getCurriculumIcon } from '@/utils/curriculum.utils';\nimport CurriculumItemTitle from './curriculum-item-title';\n\ninterface SectionTitleProps {\n title: string;\n duration?: number;\n icon?: string;\n type: string;\n color?: string;\n}\n\nfunction SectionCommonItem({\n title,\n duration,\n icon,\n type,\n color = 'gray',\n}: SectionTitleProps): React.ReactNode {\n const IconComp = getCurriculumIcon({ type, icon });\n\n return (\n <>\n <IconComp color={color} />\n <CurriculumItemTitle duration={duration} subText={getCurriculumContentSubTypeText(type)} title={title} />\n </>\n );\n}\n\nexport default SectionCommonItem;\n"],"mappings":";;;;;;;;;AAsBI,mBACE,KADF;AAVJ,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AACV,GAAuC;AACrC,QAAM,WAAW,kBAAkB,EAAE,MAAM,KAAK,CAAC;AAEjD,SACE,iCACE;AAAA,wBAAC,YAAS,OAAc;AAAA,IACxB,oBAAC,iCAAoB,UAAoB,SAAS,gCAAgC,IAAI,GAAG,OAAc;AAAA,KACzG;AAEJ;AAEA,IAAO,uBAAQ;","names":[]}
|