{"version":3,"file":"static/chunks/7573.d14529eb0dc2a2ce.js","mappings":"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","sources":["webpack://_N_E/./src/components/Card/CardTenantMyClass.tsx","webpack://_N_E/./src/components/Icon/IconChevronRight.tsx","webpack://_N_E/./src/lib/course.ts"],"sourcesContent":["import { Course } from \"./interfaces\";\nimport { Image } from \"components/Image/Image\";\nimport { IconStar } from \"components/Icon/IconStar\";\nimport { formatRating, numberWithCommas } from \"lib/helper\";\nimport Button from \"components/Button\";\nimport useTranslation from \"next-translate/useTranslation\";\nimport { LogoChip } from \"components/Chip/LogoChip\";\nimport Link from \"next/link\";\nimport { useAuthStore } from \"modules/Auth/authStore\";\nimport { useIsDesktop } from \"lib/device\";\nimport IconChevronRight from \"components/Icon/IconChevronRight\";\nimport { useEffect, useState } from \"react\";\nimport { IconPlayCircle } from \"components/Icon/IconPlayCircle\";\n\nexport const CardTenantMyClass: React.FC<\n Course & { isHomePage?: boolean; height?: number }\n> = (props) => {\n const { height = 120, isHomePage = false } = props;\n const hasUserPaid: boolean = (props as any).is_paid;\n const hasCertificate: boolean = (props as any).has_certificate;\n const hasPaywall: boolean =\n (props as any).is_paywall_enabled === undefined\n ? true\n : (props as any).is_paywall_enabled;\n const isCourseFree: boolean =\n props.original_price === 0 || props.discounted_price === 0;\n const hasFinished = props.enrollment_progress?.finished;\n const isNumber = typeof props.enrollment_progress?.finished === \"number\";\n const totalLesson = props.enrollment_progress?.total || 0;\n const institutionName =\n //@ts-ignore\n props.institution?.name || props.institution?.split(\"||\")[0] || \"\";\n\n const isCourseFinished = isNumber\n ? hasFinished === props.enrollment_progress?.total\n : 0;\n\n const { t } = useTranslation(\"course\");\n const isDesktop = useIsDesktop();\n\n const currentUser = useAuthStore((state) => state.currentUser);\n const isEnterprisePlus =\n currentUser?.tenant !== undefined &&\n [\n \"Enterprise Plus\",\n \"Pro Plus\",\n `Pro Custom (${currentUser?.referral})`,\n ].includes(currentUser?.tenant?.plan?.name);\n // const cardHeight = isDesktop ? height : 116;\n const [cardHeight, setCardHeight] = useState(height);\n useEffect(() => {\n const widthWindow = typeof window !== \"undefined\" && window.innerWidth;\n const window20 = 0.2 * widthWindow;\n if (window20 < cardHeight) {\n setCardHeight(window20);\n }\n }, [window]);\n\n return (\n \n \n \n\n
\n
\n {/* */}\n \n
\n
\n\n {isCourseFinished ? (\n
\n
\n Completed\n
\n
\n ) : null}\n \n\n
\n
\n
\n {institutionName}\n
\n

\n {props.name}\n

\n
\n\n {/* {hasPaywall &&\n !hasUserPaid && isCourseFinished && (isEnterprisePlus ||\n hasCertificate) */}\n {hasPaywall &&\n !hasUserPaid &&\n isCourseFinished &&\n // (isEnterprisePlus || hasCertificate) ? (\n // remove validate OR\n isEnterprisePlus &&\n hasCertificate ? (\n \n {t(\"downloadCertif\")}\n \n ) : isNumber ? (\n
\n {/*
\n
\n
*/}\n\n \n
\n \n\n \n {isCourseFinished ? (\n

Selesai

\n ) : (\n <>\n

\n {/* {hasFinished} dari{\" \"}\n {props.enrollment_progress?.total} */}\n {((hasFinished / props.enrollment_progress?.total) * 100)\n .toString()\n .slice(0, 4) + \"%\"}\n

\n

\n {hasFinished} dari {props.enrollment_progress?.total}\n

\n \n )}\n \n \n ) : (\n
\n {typeof props?.review_summary?.star_avg === \"number\" &&\n //@ts-ignore\n props?.review_summary?.star_avg !== 0 ? (\n <>\n
\n \n
\n {formatRating(props?.review_summary?.star_avg.toFixed(1))}\n
\n
\n |\n \n ) : null}\n {props.total_learners !== 0 && (\n
{`${numberWithCommas(props.total_learners)} pelajar`}
\n )}\n
\n )}\n\n {isHomePage && (\n
\n
\n

\n {`${props?.is_remaining_duration}m`}{\" \"}\n {t(\"toCompleteChapter\")}:\n

\n

\n {props.is_chapter_name}\n

\n
\n
\n \n
\n
\n )}\n \n \n );\n};\n","import { useSystemStore } from \"components/PageHeader/systemStore\";\nimport React from \"react\";\n\ntype Props = {\n size?: number;\n color?: string;\n};\n\nconst IconChevronRight: React.FC = ({\n size = 24,\n color = \"#3E3851\",\n}) => {\n const theme = useSystemStore((state) => state.theme);\n return (\n \n \n \n );\n};\n\nexport default IconChevronRight;\n","export const openDatabase = () => {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(\"courseDB\", 1);\n\n request.onupgradeneeded = function (event) {\n const db = (event.target as any).result;\n if (!db.objectStoreNames.contains(\"courses\")) {\n const objectStore = db.createObjectStore(\"courses\", {\n keyPath: \"slug\",\n });\n objectStore.createIndex(\"slug\", \"slug\", { unique: true });\n }\n };\n\n request.onsuccess = function (event) {\n resolve((event.target as any).result);\n };\n\n request.onerror = function (event) {\n reject((event.target as any).error);\n };\n });\n};\n\nexport const openVideoDatabase = () => {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(\"videoDB\", 1);\n\n request.onupgradeneeded = function (event) {\n const db = (event.target as any).result;\n if (!db.objectStoreNames.contains(\"videos\")) {\n db.createObjectStore(\"videos\", {\n keyPath: \"slug\",\n });\n }\n };\n\n request.onsuccess = function (event) {\n resolve((event.target as any).result);\n };\n\n request.onerror = function (event) {\n reject((event.target as any).error);\n };\n });\n};\n\nexport const saveCourseToIndexedDB = async (\n courseSlug: string,\n currentUser: any,\n courseData: any\n) => {\n try {\n const db: any = await openDatabase();\n const transaction = db.transaction(\"courses\", \"readwrite\");\n const store = transaction.objectStore(\"courses\");\n const request = store.put({\n slug: courseSlug,\n user: currentUser,\n data: courseData,\n });\n\n request.onsuccess = function () {\n console.log(`Course data with slug ${courseSlug} saved to IndexedDB`);\n };\n\n request.onerror = function (event) {\n console.error(\"Failed to save course data to IndexedDB\", event);\n };\n } catch (error) {\n console.error(\"Error opening database\", error);\n }\n};\n\nexport const saveVideoToIndexedDB = async (\n lessonSlug: string,\n videoUrl: any\n) => {\n try {\n const db: any = await openVideoDatabase();\n\n const response = await fetch(videoUrl);\n const blob = await response.blob();\n const videoBlob = new Blob([blob], { type: \"video/mp4\" });\n\n const transaction = db.transaction(\"videos\", \"readwrite\");\n const store = transaction.objectStore(\"videos\");\n\n const request = store.put({\n slug: lessonSlug,\n video: videoBlob,\n });\n\n request.onsuccess = function () {\n console.log(`Video with slug ${lessonSlug} saved to IndexedDB`);\n };\n\n request.onerror = function (event) {\n console.error(\"Failed to save video data to IndexedDB\", event);\n };\n\n await new Promise((resolve, reject) => {\n transaction.oncomplete = () => resolve();\n transaction.onerror = (event) => reject(event);\n });\n } catch (error) {\n console.error(\"Error opening database\", error);\n }\n};\n\nexport const getCourseFromIndexedDB = async (courseSlug: string) => {\n try {\n const db: any = await openDatabase();\n const transaction = db.transaction(\"courses\", \"readonly\");\n const store = transaction.objectStore(\"courses\");\n const request = store.get(courseSlug);\n\n return new Promise((resolve, reject) => {\n request.onsuccess = function (event) {\n if (request.result) {\n resolve(request.result.data);\n } else {\n reject(`No data found for slug ${courseSlug}`);\n }\n };\n\n request.onerror = function () {\n reject(\"Failed to retrieve data from IndexedDB\");\n };\n });\n } catch (error) {\n console.error(\"Error opening database\", error);\n }\n};\n\nexport const getVideoFromIndexedDB = async (lessonSlug: string) => {\n try {\n const db: any = await openVideoDatabase();\n const transaction = db.transaction(\"videos\", \"readonly\");\n const store = transaction.objectStore(\"videos\");\n const request = store.get(lessonSlug);\n\n return new Promise(async (resolve, reject) => {\n request.onsuccess = function (event: any) {\n const request = event.target.result;\n\n if (request) {\n const videoUrl = URL.createObjectURL(request.video);\n resolve(videoUrl);\n } else {\n reject(`No video found for slug ${lessonSlug}`);\n }\n };\n\n request.onerror = function () {\n reject(\"Failed to retrieve video from IndexedDB\");\n };\n\n await new Promise((resolve, reject) => {\n transaction.oncomplete = () => resolve();\n transaction.onerror = (event) => reject(event);\n });\n });\n } catch (error) {\n console.error(\"Error accessing database\", error);\n }\n};\n\nexport const getAllCoursesFromIndexedDB = async () => {\n try {\n const db: any = await openDatabase();\n const transaction = db.transaction(\"courses\", \"readonly\");\n const store = transaction.objectStore(\"courses\");\n const request = store.getAll();\n\n return new Promise((resolve, reject) => {\n request.onsuccess = function (event) {\n resolve(event.target.result);\n };\n\n request.onerror = function () {\n reject(\"Failed to retrieve data from IndexedDB\");\n };\n });\n } catch (error) {\n console.error(\"Error accessing database\", error);\n }\n};\n\nexport const deleteCourseFromIndexedDB = async (slug: string) => {\n try {\n const db: any = await openDatabase();\n const transaction = db.transaction(\"courses\", \"readwrite\");\n const store = transaction.objectStore(\"courses\");\n const request = store.delete(slug);\n\n return new Promise((resolve, reject) => {\n request.onsuccess = function (event) {\n resolve(\"Course deleted successfully\");\n };\n\n request.onerror = function () {\n reject(\"Failed to delete course from IndexedDB\");\n };\n });\n } catch (error) {\n console.error(\"Error accessing IndexedDB:\", error);\n }\n};\n\nexport const deleteVideoFromIndexedDB = async (slug: string) => {\n try {\n const db: any = await openVideoDatabase();\n const transaction = db.transaction(\"videos\", \"readwrite\");\n const store = transaction.objectStore(\"videos\");\n const request = store.delete(slug);\n\n return new Promise((resolve, reject) => {\n request.onsuccess = function (event) {\n resolve(\"Video deleted successfully\");\n };\n\n request.onerror = function () {\n reject(\"Failed to delete video from IndexedDB\");\n };\n });\n } catch (error) {\n console.error(\"Error accessing IndexedDB:\", error);\n }\n};\n"],"names":["CardTenantMyClass","props","currentUser","height","isHomePage","hasUserPaid","is_paid","hasCertificate","has_certificate","hasPaywall","undefined","is_paywall_enabled","hasFinished","original_price","discounted_price","enrollment_progress","finished","isNumber","totalLesson","total","institutionName","institution","name","split","isCourseFinished","t","useTranslation","useIsDesktop","useAuthStore","state","isEnterprisePlus","tenant","referral","includes","plan","cardHeight","setCardHeight","useState","useEffect","window20","window","innerWidth","div","className","Image","src","image_cover_url","width","IconPlayCircle","size","classes","isBgCustomized","h3","Button","variant","isFull","style","transition","p","toString","slice","review_summary","star_avg","IconStar","fill","color","formatRating","toFixed","total_learners","numberWithCommas","span","is_remaining_duration","is_chapter_name","IconChevronRight","theme","useSystemStore","svg","xmlns","viewBox","path","d","openDatabase","Promise","resolve","reject","request","indexedDB","open","onupgradeneeded","event","db","target","result","objectStoreNames","contains","createObjectStore","keyPath","createIndex","unique","onsuccess","onerror","error","openVideoDatabase","saveCourseToIndexedDB","async","courseSlug","courseData","transaction","objectStore","put","slug","user","data","saveVideoToIndexedDB","lessonSlug","videoUrl","response","fetch","blob","videoBlob","Blob","type","video","oncomplete","getCourseFromIndexedDB","get","getVideoFromIndexedDB","URL","createObjectURL","getAllCoursesFromIndexedDB","getAll","deleteCourseFromIndexedDB","delete","deleteVideoFromIndexedDB"],"sourceRoot":""}