{"version":3,"sources":["pageDefault.js","Rating/index.js","Select/BirthYearSelect.js","Select/JobSelect.js","Select/LocationSelect.js","Course/Button/RegisterButton.js","Lesson/LessonDirectGroupButton/CompleteButton.js","Lesson/LessonDirectGroupButton/index.js","Lesson/LessonDirectGroupButton/NextButton.js","Lesson/LessonDirectGroupButton/PrevButton.js","Lesson/Menu/StudyMenu.js","Lesson/Menu/StudyMenuItem.js","Lesson/RateComment/CommentList.js","Lesson/RateComment/LastGroupForm.js","Lesson/RateComment/RateFormCommit.js","TestExam/DoTestPopup/index.js","Course/ActiveCourseForm.js","Course/ProgessInfo.js","Course/RegisterCoursePopup.js","Course/StudyStartButton.js","Customer/LoginForm.js","Customer/RegisterForm.js","Contact/Form.js","Lesson/LessonFooter.js"],"names":["creElm","React","createElement","_React","useEffect","useState","Fragment","useRef","Rating","props","id","StarRating","concat","tooltip","value","BirthYearSelect","className","_extends","xhtml","i","Date","getFullYear","push","key","showHtml","JobSelect","_useState2","_slicedToArray","list","setList","fetchData","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$_jobApis$getLi","data","wrap","_context","prev","next","_jobApis","getList","sent","status","abrupt","stop","apply","this","arguments","$","select2","length","map","o","index","jo_id","jo_name","LocationSelect","_ref2","title","parentId","onChange","isRequired","_objectWithoutProperties","_excluded","_useState4","_ref3","_callee2","_yield$_locationApis$","_context2","_locationApis","getLocationByParent","l_id","undefined","placeholder","class","s","target","l_name","RegisterCourseButton","_ref4","courseId","courseName","onRegister","_ref5","_callee3","_yield$_courseApis$re","ridirectToActivePage","_context3","mySwal","SWAL_CONST","TYPE","QUESTION","swalShowLoading","_courseApis","registerCourse","ERR","msg","window","location","href","mySwalShowTimer","type","SUCCESS","timer","func","onClick","LessonCompleteButton","_ref6","dataItem","_useState6","isShow","setIsShow","_","isEmpty","isLastOfGroup","isRateLesson","isCompleted","CourseDirectGroupButton","_ref7","lessonId","_useState8","showTestPopup","setShowTestPopup","onComplete","_ref8","_callee4","_yield$_lessonApis$ch","_context4","_lessonApis","checkTest","isTest","nextLessonUrl","swalCloseLoading","DoTestPopup","CoursePrevButton","link","prevLink","LessonNextButton","nextLink","_ref9","_ref10","StudyLessonMenu","_ref11","_useState10","listMenu","setListMenu","_useState12","course","setCourse","_useState14","customerCourse","setCustomerCourse","_ref12","_callee5","_yield$_lessonApis$ge","_context5","getStudyLessonMenu","data-grp-name","item","StudyLessonMenuItem","courseItem","customerCourseItem","document","querySelectorAll","forEach","domContainer","parseInt","dataset","courseid","ReactDOM","createRoot","render","_ref13","_useState16","activeClass","setActiveClass","cco_listlessoncompleted","currentLessonId","cco_latestlessoncompleted","listLessonComplete","JSON","parse","each","accrodionName","Self","accordion","find","addClass","hide","show","on","parent","hasClass","removeClass","slideUp","slideDown","lessonList","lessonGroup","lg_name","_lessonItem","co_code","includes","LessonCommentList","_ref14","reloadCount","_useState18","_useState20","total","setTotal","_ref15","_callee6","_yield$_lessonApis$ge2","_context6","getListRateComment","console","log","src","c_avatar","alt","c_name","ratePoint","showRate","lr_rate","lr_content","RateLastGroupForm","_ref16","onCommentSuccess","_useState22","_useState24","isResetForm","setIsResetForm","RateFormCommit","onCommit","dataPost","_objectSpread","rateLesson","then","_ref17","_value","mySwalTimer","isReset","_ref18","form_name","formValidation","framework","err","icon","fields","rate","message","validators","notEmpty","content","e","preventDefault","val","comment","resetForm","noValidate","name","cols","rows","_ref19","_useState26","testExam","setTestExam","_useState28","question","setQuestion","_useState30","listAnswer","setListAnswer","modal","backdrop","keyboard","focus","_ref20","_callee7","_yield$_testApis$getT","_context7","_testApis","getTest","test","tabIndex","role","aria-labelledby","aria-hidden","t_name","tq_content","ta_content","showAnswer","ActiveCourseForm","_ref21","form_code","code","activeCourse","_ref22","firstUrl","defaultValue","CourseProgressInfo","_ref23","_useState32","progressInfo","setProgressInfo","_ref24","_callee8","_yield$_courseApis$ge","_context8","getProgress","completeLesson","totalLesson","data-percent","completePercent","style","width","studyTime","totalTime","studyPercent","RegisterCoursePopup","_ref25","tabindex","StudyStartButton","_ref26","_useState34","buttonInfo","setButtonInfo","_ref27","_callee9","_yield$_courseApis$ge2","_context9","getStudyStartButton","isAuth","courseStatus","CUSTOMER_COURSE_STATUS","CHUA_DANG_KY","VUA_TAO","DA_CAP_MA","DA_KICH_HOAT","DANG_HOC","HOAN_THANH","currentLink","KHONG_HOAN_THANH","HUY_DANG_KY","coursename","CustomerLoginForm","username","password","_customerApis","login","_ref28","WARNING","float","marginLeft","CustomerRegisterForm","phone","stringLength","max","min","confirmpassword","identical","field","locationId","c_email","c_telephone","c_password","c_yearbirth","register","_ref29","ContactForm","email","emailAddress","cu_name","cu_phone","cu_email","cu_message","_contactApis","submit","_ref30","trigger","LessonFooter","_ref31","_useState36","infoDetail","setInfoDetail","_useState38","setReloadCound","_ref32","_callee10","_yield$_lessonApis$ge3","_context10","getDirectGroupButton","lessonid"],"mappings":"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","file":"../../../../react.pages.min.js","sourcesContent":["const creElm = React.createElement;\r\nconst { useEffect, useState, Fragment, useRef } = React;\r\n\r\n/**\r\n * Template - Khi cần truyền props từ website => component\r\n */\r\n// document\r\n// .querySelectorAll(\"react-customer-login-form\")\r\n// .forEach((domContainer) => {\r\n// // Read the comment ID from a data-* attribute.\r\n// // const commentID = parseInt(domContainer.dataset.commentid, 10);\r\n// const root = ReactDOM.createRoot(domContainer);\r\n// root.render(creElm(CustomerLoginForm, {}));\r\n// });\r\n","const Rating = (props) => {\r\n useEffect(() => {\r\n if (props.id) {\r\n new StarRating(`#${props.id}`, {\r\n tooltip: 'Vui lòng đánh giá',\r\n });\r\n }\r\n }, [props.id]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","const BirthYearSelect = (props) => {\r\n const showHtml = () => {\r\n let xhtml = [];\r\n const currentYear = new Date().getFullYear();\r\n\r\n for (let i = currentYear; i >= 1900; i--) {\r\n xhtml.push(\r\n \r\n );\r\n }\r\n return xhtml;\r\n };\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","const JobSelect = (props) => {\r\n const [list, setList] = useState([]);\r\n\r\n const fetchData = async () => {\r\n const { data, status } = await _jobApis.getList();\r\n if (status !== 200) {\r\n setList([]);\r\n return;\r\n }\r\n setList(data.data);\r\n };\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.id) {\r\n const idName = $(`#${props.id}`);\r\n idName.select2();\r\n }\r\n }, [props.id]);\r\n\r\n const showHtml = () => {\r\n let xhtml = null;\r\n if (list.length > 0) {\r\n xhtml = list.map((o, index) => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n return xhtml;\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","const LocationSelect = ({\r\n title,\r\n parentId,\r\n onChange,\r\n isRequired,\r\n ...props\r\n}) => {\r\n const [list, setList] = useState([]);\r\n\r\n const fetchData = async () => {\r\n const { data, status } = await _locationApis.getLocationByParent(\r\n parentId\r\n );\r\n if (status !== 200) {\r\n setList([]);\r\n return;\r\n }\r\n setList(data.data);\r\n if (onChange && data.data.length > 0) {\r\n onChange(data.data[0].l_id);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (parentId !== undefined) {\r\n fetchData();\r\n }\r\n }, [parentId]);\r\n\r\n useEffect(() => {\r\n if (props.id) {\r\n $(`#${props.id}`).select2({\r\n placeholder: '--- Vui lòng chọn ---',\r\n });\r\n }\r\n }, [props.id]);\r\n\r\n const handChange = (s) => {\r\n if (onChange) {\r\n onChange(s.target.value);\r\n }\r\n };\r\n\r\n const showHtml = () => {\r\n let xhtml = null;\r\n if (list.length > 0) {\r\n xhtml = list.map((o, index) => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n return (\r\n \r\n \r\n {xhtml}\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","const RegisterCourseButton = ({ courseId, courseName }) => {\r\n const onRegister = async () => {\r\n const swalRes = await mySwal(\r\n SWAL_CONST.TYPE.QUESTION,\r\n `

Bạn có muốn đăng ký khóa học [${courseName}] không?

`,\r\n true\r\n );\r\n if (!swalRes.value) {\r\n return;\r\n }\r\n swalShowLoading('Đang thực hiện đăng ký...');\r\n const { status, data } = await _courseApis.registerCourse({ courseId });\r\n if (status !== 200) {\r\n mySwal(SWAL_CONST.TYPE.ERR, data.msg);\r\n return;\r\n }\r\n\r\n const ridirectToActivePage = () => {\r\n window.location.href = `/kich-hoat-khoa-hoc/${courseId}`;\r\n };\r\n\r\n mySwalShowTimer({\r\n type: SWAL_CONST.TYPE.SUCCESS,\r\n msg: '

Đăng ký thành công !

Hệ thống sẽ tự động chuyển sang trang Kích hoạt khóa học trong giây nữa

',\r\n timer: 5000,\r\n func: ridirectToActivePage,\r\n });\r\n };\r\n return (\r\n \r\n );\r\n};\r\n","const LessonCompleteButton = ({ dataItem, onClick }) => {\r\n const [isShow, setIsShow] = useState(false);\r\n useEffect(() => {\r\n if (!_.isEmpty(dataItem)) {\r\n const { isLastOfGroup, isRateLesson, isCompleted } = dataItem;\r\n if (isLastOfGroup && !isRateLesson) {\r\n setIsShow(false);\r\n return;\r\n }\r\n setIsShow(!isCompleted);\r\n return;\r\n }\r\n }, [dataItem]);\r\n return (\r\n \r\n {isShow ? (\r\n \r\n \r\n HOÀN THÀNH\r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n","const CourseDirectGroupButton = ({ dataItem, lessonId }) => {\r\n const [showTestPopup, setShowTestPopup] = useState(false);\r\n\r\n const onComplete = async () => {\r\n swalShowLoading('Đang kiểm tra...');\r\n const { status, data } = await _lessonApis.checkTest({ lessonId });\r\n if (status !== 200) {\r\n mySwal(SWAL_CONST.TYPE.ERR, `Xảy ra lỗi: ${data.msg}`);\r\n return;\r\n }\r\n if (!data.isTest) {\r\n window.location.href = data.nextLessonUrl;\r\n }\r\n swalCloseLoading();\r\n setShowTestPopup(data.isTest);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {showTestPopup ? (\r\n \r\n ) : null}\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","const LessonNextButton = ({ link }) => {\r\n const showHtml = () => {\r\n let xhtml = null;\r\n if (link) {\r\n return (\r\n \r\n TIẾP\r\n \r\n \r\n );\r\n }\r\n return xhtml;\r\n };\r\n return {showHtml()};\r\n};\r\n","const CoursePrevButton = ({ link }) => {\r\n const showHtml = () => {\r\n let xhtml = null;\r\n if (link) {\r\n return (\r\n \r\n \r\n QUAY LẠI\r\n \r\n );\r\n }\r\n return xhtml;\r\n };\r\n return {showHtml()};\r\n};\r\n","function StudyLessonMenu({ courseId }) {\r\n const [listMenu, setListMenu] = useState([]);\r\n const [course, setCourse] = useState({});\r\n const [customerCourse, setCustomerCourse] = useState({});\r\n\r\n const fetchData = async () => {\r\n const { status, data } = await _lessonApis.getStudyLessonMenu({\r\n courseId,\r\n });\r\n if (status !== 200) return;\r\n\r\n setListMenu(data.data.listMenu);\r\n setCourse(data.data.course);\r\n setCustomerCourse(data.data.customerCourse);\r\n };\r\n useEffect(() => {\r\n if (courseId) {\r\n fetchData();\r\n }\r\n }, [courseId]);\r\n\r\n const showHtml = () => {\r\n let xhtml = null;\r\n if (listMenu.length > 0) {\r\n xhtml = listMenu.map((item, index) => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n return xhtml;\r\n };\r\n return (\r\n
\r\n

Nội dung khóa học

\r\n \r\n {showHtml()}\r\n
\r\n \r\n );\r\n}\r\n\r\ndocument.querySelectorAll('react-study-lesson-menu').forEach((domContainer) => {\r\n const courseId = parseInt(domContainer.dataset.courseid, 10);\r\n const root = ReactDOM.createRoot(domContainer);\r\n root.render(creElm(StudyLessonMenu, { courseId }));\r\n});\r\n","const StudyLessonMenuItem = ({ dataItem, courseItem, customerCourseItem }) => {\r\n const [activeClass, setActiveClass] = useState('');\r\n const {\r\n cco_listlessoncompleted,\r\n cco_latestlessoncompleted: currentLessonId,\r\n } = customerCourseItem;\r\n const listLessonComplete = cco_listlessoncompleted\r\n ? JSON.parse(cco_listlessoncompleted)\r\n : [];\r\n useEffect(() => {\r\n if ($('.accrodion-grp').length) {\r\n var accrodionGrp = $('.accrodion-grp');\r\n accrodionGrp.each(function () {\r\n var accrodionName = $(this).data('grp-name');\r\n var Self = $(this);\r\n var accordion = Self.find('.accrodion');\r\n Self.addClass(accrodionName);\r\n Self.find('.accrodion .accrodion-content').hide();\r\n Self.find('.accrodion.active')\r\n .find('.accrodion-content')\r\n .show();\r\n accordion.each(function () {\r\n $(this)\r\n .find('.accrodion-title')\r\n .on('click', function () {\r\n if ($(this).parent().hasClass('active') === false) {\r\n $('.accrodion-grp.' + accrodionName)\r\n .find('.accrodion')\r\n .removeClass('active');\r\n $('.accrodion-grp.' + accrodionName)\r\n .find('.accrodion')\r\n .find('.accrodion-content')\r\n .slideUp();\r\n $(this).parent().addClass('active');\r\n $(this)\r\n .parent()\r\n .find('.accrodion-content')\r\n .slideDown();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }, [activeClass]);\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(customerCourseItem)) {\r\n const itemCheck = dataItem.lessonList.find(\r\n (o) => o.l_id === currentLessonId\r\n );\r\n if (itemCheck) {\r\n setActiveClass('active');\r\n }\r\n }\r\n }, [customerCourseItem]);\r\n\r\n const showItem = (_lessonItem) => {\r\n if (_lessonItem.l_id === currentLessonId) {\r\n return (\r\n
  • \r\n \r\n \r\n {_lessonItem.l_name}\r\n \r\n
  • \r\n );\r\n }\r\n if (_.includes(listLessonComplete, _lessonItem.l_id)) {\r\n return (\r\n
  • \r\n \r\n \r\n {_lessonItem.l_name}\r\n \r\n
  • \r\n );\r\n }\r\n return (\r\n
  • \r\n \r\n \r\n {_lessonItem.l_name}\r\n \r\n
  • \r\n );\r\n };\r\n const showHtml = () => {\r\n let xhtml = null;\r\n if (dataItem && dataItem.lessonList.length > 0) {\r\n xhtml = dataItem.lessonList.map((item, index) => {\r\n return {showItem(item)};\r\n });\r\n }\r\n return xhtml;\r\n };\r\n return (\r\n
    \r\n
    \r\n

    {dataItem.lessonGroup.lg_name}

    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {showHtml()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","const LessonCommentList = ({ lessonId, reloadCount, dataItem }) => {\r\n const [list, setList] = useState([]);\r\n const [total, setTotal] = useState(0);\r\n\r\n const resetValue = () => {\r\n setList([]);\r\n setTotal(0);\r\n };\r\n const fetchData = async () => {\r\n const { status, data } = await _lessonApis.getListRateComment({\r\n lessonId,\r\n });\r\n if (status !== 200) {\r\n resetValue();\r\n return;\r\n }\r\n setList(data.data.list);\r\n setTotal(data.data.total);\r\n };\r\n\r\n useEffect(() => {\r\n if ((lessonId || reloadCount) && dataItem.isLastOfGroup) {\r\n fetchData();\r\n }\r\n }, [lessonId, reloadCount, dataItem]);\r\n\r\n const showRate = (ratePoint) => {\r\n let xhtml = [];\r\n for (let i = 1; i <= 5; i++) {\r\n if (i <= ratePoint) {\r\n xhtml.push();\r\n } else {\r\n xhtml.push();\r\n }\r\n }\r\n return xhtml;\r\n };\r\n\r\n const showHtml = () => {\r\n let xhtml = null;\r\n\r\n if (list.length > 0) {\r\n xhtml = list.map((o, index) => {\r\n console.log(o);\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n

    {o.c_name}

    \r\n

    \r\n {showRate(o.lr_rate)}\r\n

    \r\n

    {o.lr_content}

    \r\n
    \r\n
    \r\n );\r\n });\r\n }\r\n\r\n return xhtml;\r\n };\r\n\r\n return (\r\n \r\n {dataItem?.isLastOfGroup ? (\r\n
    \r\n
    \r\n

    \r\n {total > 0\r\n ? `${total} Bình luận`\r\n : 'Chưa có bình luận nào'}{' '}\r\n

    \r\n {showHtml()}\r\n
    \r\n
    \r\n ) : null}{' '}\r\n
    \r\n );\r\n};\r\n","const RateLastGroupForm = ({\r\n dataItem,\r\n onCommentSuccess,\r\n lessonId,\r\n courseId,\r\n}) => {\r\n const [isShow, setIsShow] = useState(false);\r\n const [isResetForm, setIsResetForm] = useState(0);\r\n useEffect(() => {\r\n if (!_.isEmpty(dataItem)) {\r\n const { isLastOfGroup, isRateLesson } = dataItem;\r\n if (isLastOfGroup && !isRateLesson) {\r\n setIsShow(true);\r\n return;\r\n }\r\n setIsShow(false);\r\n return;\r\n }\r\n }, [dataItem]);\r\n\r\n const onCommit = (dataPost) => {\r\n dataPost = {\r\n ...dataPost,\r\n lessonId,\r\n courseId,\r\n };\r\n swalShowLoading('Đang gửi bình luận...');\r\n\r\n _lessonApis.rateLesson(dataPost).then(({ status, data }) => {\r\n if (status !== 200) {\r\n mySwal(\r\n SWAL_CONST.TYPE.ERR,\r\n `Đã có lỗi xảy ra! Xin vui lòng thực hiện lại`\r\n );\r\n setIsResetForm((_value) => {\r\n return (_value += 1);\r\n });\r\n return;\r\n }\r\n mySwalTimer(\r\n SWAL_CONST.TYPE.SUCCESS,\r\n `Bạn đã bình luận thành công`,\r\n 1500\r\n );\r\n if (onCommentSuccess) {\r\n onCommentSuccess();\r\n }\r\n });\r\n };\r\n return (\r\n \r\n {isShow ? (\r\n \r\n
    \r\n

    \r\n Xin vui lòng đánh giábình luận để có\r\n thể hoàn thành bài học này\r\n

    \r\n \r\n
    \r\n ) : null}\r\n
    \r\n );\r\n};\r\n","const RateFormCommit = ({ onCommit, isReset }) => {\r\n useEffect(() => {\r\n const form_name = '#ratecomment_form';\r\n if ($(form_name).length > 0) {\r\n var fv = $(form_name)\r\n .formValidation({\r\n framework: 'bootstrap',\r\n err: {\r\n /* container: 'tooltip'*/\r\n },\r\n icon: {\r\n //valid: 'fa fa-check',\r\n //invalid: 'fa fa-times',\r\n //validating: 'fa fa-refresh'\r\n },\r\n fields: {\r\n rate: {\r\n message: 'Bạn chưa đánh giá bài học',\r\n validators: {\r\n notEmpty: {\r\n message: 'Bạn chưa đánh giá bài học',\r\n },\r\n },\r\n },\r\n content: {\r\n message: 'Bạn cần nhập nội dung bình luận',\r\n validators: {\r\n notEmpty: {\r\n message: 'Bạn cần nhập nội dung bình luận',\r\n },\r\n },\r\n },\r\n },\r\n })\r\n .on('success.form.fv', function (e) {\r\n e.preventDefault();\r\n\r\n const dataPost = {\r\n ratePoint: $(`${form_name} #star-rating`).val(),\r\n comment: $(`${form_name} #content`).val(),\r\n };\r\n\r\n if (onCommit) {\r\n onCommit(dataPost);\r\n }\r\n });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isReset) {\r\n const form_name = '#ratecomment_form';\r\n $(form_name).data('formValidation').resetForm();\r\n }\r\n }, [isReset]);\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n GỬI ĐÁNH GIÁ & BÌNH LUẬN\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n","const DoTestPopup = ({ isShow, lessonId }) => {\r\n const [testExam, setTestExam] = useState();\r\n const [question, setQuestion] = useState();\r\n const [listAnswer, setListAnswer] = useState([]);\r\n\r\n useEffect(() => {\r\n $('#testPopup').modal({\r\n backdrop: 'static',\r\n keyboard: false,\r\n focus: true,\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isShow) {\r\n $('#testPopup').modal('show');\r\n } else {\r\n $('#testPopup').modal('hide');\r\n }\r\n }, [isShow]);\r\n\r\n const fetchData = async () => {\r\n const { status, data } = await _testApis.getTest({ lessonId });\r\n if (status === 200) {\r\n setTestExam(data.test);\r\n setQuestion(data.question);\r\n setListAnswer(data.listAnswer);\r\n }\r\n };\r\n\r\n const showQuestion = () => {\r\n if (!question) return null;\r\n return

    {question.tq_content}

    ;\r\n };\r\n\r\n const showAnswer = () => {\r\n if (listAnswer.length == 0) return null;\r\n let xhtml = listAnswer.map((o, index) => {\r\n return
  • {o.ta_content}
  • ;\r\n });\r\n return
      {xhtml}
    ;\r\n };\r\n\r\n useEffect(() => {\r\n if (lessonId) {\r\n fetchData();\r\n }\r\n }, [lessonId]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {testExam?.t_name}\r\n
    \r\n
    \r\n
    \r\n {showQuestion()}\r\n {showAnswer()}\r\n
    \r\n
    \r\n {/* \r\n Close\r\n */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n","const ActiveCourseForm = ({ courseId }) => {\r\n useEffect(() => {\r\n const form_name = '#active_course_form';\r\n if ($(form_name).length > 0) {\r\n var fv = $(form_name)\r\n .formValidation({\r\n framework: 'bootstrap',\r\n err: {},\r\n icon: {},\r\n fields: {\r\n form_code: {\r\n validators: {\r\n notEmpty: {\r\n message: 'Mã kích hoạt không được để trống',\r\n },\r\n },\r\n },\r\n },\r\n })\r\n .on('success.form.fv', function (e) {\r\n e.preventDefault();\r\n\r\n var dataPost = {\r\n code: $(`${form_name} #form_code`).val(),\r\n courseId,\r\n };\r\n\r\n swalShowLoading('

    Đang kích hoạt khóa học ...

    ');\r\n\r\n _courseApis\r\n .activeCourse(dataPost)\r\n .then(({ status, data }) => {\r\n if (status !== 200) {\r\n $(form_name).data('formValidation').resetForm();\r\n mySwal(SWAL_CONST.TYPE.ERR, data.msg);\r\n return;\r\n }\r\n const ridirectToFirstLesson = () => {\r\n window.location.href = data.firstUrl;\r\n };\r\n\r\n mySwalShowTimer({\r\n type: SWAL_CONST.TYPE.SUCCESS,\r\n title: 'Đã kích hoạt khóa học thành công',\r\n msg: `

    Hệ thống tự động chuyển sang bài học đầu tiên trong giây nữa

    `,\r\n func: ridirectToFirstLesson,\r\n timer: 5000,\r\n });\r\n });\r\n });\r\n }\r\n }, []);\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Kích hoạt\r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n};\r\ndocument\r\n .querySelectorAll('react-active-course-form')\r\n .forEach((domContainer) => {\r\n const courseId = parseInt(domContainer.dataset.courseid, 10);\r\n const root = ReactDOM.createRoot(domContainer);\r\n root.render(creElm(ActiveCourseForm, { courseId: courseId }));\r\n });\r\n","const CourseProgressInfo = ({ courseId }) => {\r\n const [progressInfo, setProgressInfo] = useState();\r\n const fetchData = async () => {\r\n const { status, data } = await _courseApis.getProgress({ courseId });\r\n if (status === 200) {\r\n setProgressInfo(data.data);\r\n }\r\n };\r\n useEffect(() => {\r\n if (courseId) {\r\n fetchData();\r\n }\r\n }, [courseId]);\r\n return (\r\n \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n

    \r\n Đánh giá bài học\r\n

    \r\n\r\n
      \r\n
    • \r\n \r\n \r\n \r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    */}\r\n {progressInfo ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Tỷ lệ hoàn thành{' '}\r\n \r\n ({progressInfo.completeLesson}/\r\n {progressInfo.totalLesson} bài)\r\n \r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Thời gian đã học{' '}\r\n \r\n ({progressInfo.studyTime}/\r\n {progressInfo.totalTime} ngày)\r\n \r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","const RegisterCoursePopup = ({ courseId, isShow }) => {\r\n useEffect(() => {\r\n if (isShow) {\r\n $(\"#courseOnlineRegister\").modal(\"show\");\r\n }\r\n }, [isShow]);\r\n return (\r\n \r\n
    \r\n
    \r\n

    \r\n THÔNG TIN ĐĂNG KÝ\r\n

    \r\n {/* @if (Model.CourseOnline.co_tuition == 0)\r\n {\r\n
    \r\n @if(Model.CustomerCategory != null)\r\n {\r\n @Html.Raw(Model.CustomerCategory.cc_coursefreecontent)\r\n }\r\n \r\n @if (Model.IsAuth)\r\n {\r\n

    Đường dẫn bài viết facebook của bạn (Không bắt buộc)

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n else\r\n {\r\n

    Xin vui lòng Đăng Nhập để thực hiện tính năng đăng ký

    \r\n }\r\n
    \r\n }\r\n else\r\n {\r\n
    \r\n

    Chi phí khóa học : @String.Format(\"{0:0,0 VNĐ}\", Model.CourseOnline.co_tuition)

    \r\n \r\n
      \r\n
    • \r\n @if (Model.IsAuth)\r\n {\r\n
      \r\n ĐĂNG KÝ\r\n
      \r\n }\r\n else\r\n {\r\n

      Xin vui lòng Đăng Nhập để thực hiện tính năng đăng ký

      \r\n }\r\n\r\n
    • \r\n
    \r\n
    \r\n } */}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n","const StudyStartButton = ({ courseId, courseName }) => {\r\n const [buttonInfo, setButtonInfo] = useState();\r\n\r\n const fetchData = async () => {\r\n const dataPost = {\r\n courseId,\r\n };\r\n const { status, data } = await _courseApis.getStudyStartButton(\r\n dataPost\r\n );\r\n if (status !== 200) {\r\n setButtonInfo();\r\n return;\r\n }\r\n setButtonInfo(data.data);\r\n };\r\n\r\n useEffect(() => {\r\n if (courseId) {\r\n fetchData();\r\n }\r\n }, [courseId]);\r\n\r\n const showHtml = () => {\r\n let xhtml = null;\r\n if (!buttonInfo) {\r\n return xhtml;\r\n }\r\n if (!buttonInfo.isAuth) {\r\n return (\r\n

    \r\n Xin vui lòng{' '}\r\n \r\n Đăng nhập\r\n \r\n

    \r\n );\r\n }\r\n switch (buttonInfo.courseStatus) {\r\n case CUSTOMER_COURSE_STATUS.CHUA_DANG_KY: {\r\n xhtml = (\r\n \r\n );\r\n break;\r\n }\r\n case CUSTOMER_COURSE_STATUS.VUA_TAO: {\r\n xhtml = (\r\n

    \r\n Bạn đã đăng ký khóa học nhưng chưa được cấp mã kích\r\n hoạt.Xin vui lòng liên hệ với ban quản trị để biết thêm\r\n thông tin chi tiết\r\n

    \r\n );\r\n break;\r\n }\r\n case CUSTOMER_COURSE_STATUS.DA_CAP_MA: {\r\n xhtml = (\r\n \r\n KÍCH HOẠT KHÓA HỌC\r\n \r\n \r\n );\r\n break;\r\n }\r\n case CUSTOMER_COURSE_STATUS.DA_KICH_HOAT:\r\n case CUSTOMER_COURSE_STATUS.DANG_HOC:\r\n case CUSTOMER_COURSE_STATUS.HOAN_THANH: {\r\n xhtml = (\r\n \r\n BẮT ĐẦU HỌC\r\n \r\n \r\n );\r\n break;\r\n }\r\n case CUSTOMER_COURSE_STATUS.KHONG_HOAN_THANH: {\r\n xhtml = (\r\n

    \r\n Bạn đã không hoàn thành khóa học\r\n

    \r\n );\r\n return;\r\n }\r\n case CUSTOMER_COURSE_STATUS.HUY_DANG_KY: {\r\n xhtml = (\r\n

    \r\n Đăng ký khóa học của bạn bị từ chối. Xin vui lòng liên\r\n hệ với ban quản trị để biết thêm thông tin chi tiết\r\n

    \r\n );\r\n return;\r\n }\r\n }\r\n\r\n return xhtml;\r\n };\r\n\r\n return (\r\n \r\n
    {showHtml()}
    \r\n
    \r\n );\r\n};\r\n\r\ndocument\r\n .querySelectorAll('react-study-start-button')\r\n .forEach((domContainer) => {\r\n const courseName = domContainer.dataset.coursename;\r\n const courseId = parseInt(domContainer.dataset.courseid, 10);\r\n const root = ReactDOM.createRoot(domContainer);\r\n root.render(creElm(StudyStartButton, { courseId, courseName }));\r\n });\r\n","const CustomerLoginForm = () => {\r\n useEffect(() => {\r\n const form_name = '#login_form';\r\n if ($(form_name).length > 0) {\r\n var fv = $(form_name)\r\n .formValidation({\r\n framework: 'bootstrap',\r\n err: {\r\n /* container: 'tooltip'*/\r\n },\r\n icon: {\r\n //valid: 'fa fa-check',\r\n //invalid: 'fa fa-times',\r\n //validating: 'fa fa-refresh'\r\n },\r\n fields: {\r\n username: {\r\n validators: {\r\n notEmpty: {\r\n message:\r\n 'Tên đăng nhập không được để trống',\r\n },\r\n },\r\n },\r\n password: {\r\n validators: {\r\n notEmpty: {\r\n message: 'Mật khẩu không được để trống',\r\n },\r\n },\r\n },\r\n },\r\n })\r\n .on('success.form.fv', function (e) {\r\n e.preventDefault();\r\n\r\n var dataPost = {\r\n username: $(`${form_name} #username`).val(),\r\n password: $(`${form_name} #password`).val(),\r\n };\r\n\r\n swalShowLoading('

    Đang xử lý

    ');\r\n\r\n _customerApis.login(dataPost).then(({ status, data }) => {\r\n $(form_name).data('formValidation').resetForm();\r\n if (status !== 200) {\r\n mySwal(SWAL_CONST.TYPE.WARNING, data.msg);\r\n return;\r\n }\r\n\r\n const ridirectToMyCourse = () => {\r\n window.location.href = '/khoa-hoc-cua-toi';\r\n };\r\n mySwalShowTimer({\r\n type: SWAL_CONST.TYPE.SUCCESS,\r\n title: 'Đăng nhập thành công',\r\n msg: `

    Tự động chuyển sang Khóa học của tôi trong giây

    `,\r\n func: ridirectToMyCourse,\r\n timer: 5000,\r\n });\r\n });\r\n });\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n ĐĂNG NHẬP \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\ndocument\r\n .querySelectorAll('react-customer-login-form')\r\n .forEach((domContainer) => {\r\n const root = ReactDOM.createRoot(domContainer);\r\n root.render(creElm(CustomerLoginForm, {}));\r\n });\r\n","const CustomerRegisterForm = () => {\r\n // const [cityId, setCityId] = useState();\r\n // const [districtId, setDistrictId] = useState();\r\n\r\n // const onCityChange = (s) => {\r\n // setCityId(s);\r\n // };\r\n // const onDistrictChange = (s) => {\r\n // setDistrictId(s);\r\n // };\r\n\r\n useEffect(() => {\r\n const form_name = '#register_customer_form';\r\n if ($(form_name).length > 0) {\r\n var fv = $(form_name)\r\n .formValidation({\r\n framework: 'bootstrap',\r\n err: {\r\n /* container: 'tooltip'*/\r\n },\r\n icon: {\r\n //valid: 'fa fa-check',\r\n //invalid: 'fa fa-times',\r\n //validating: 'fa fa-refresh'\r\n },\r\n fields: {\r\n name: {\r\n message: 'Họ tên không được để trống',\r\n validators: {\r\n notEmpty: {\r\n message: 'Họ tên không được để trống',\r\n },\r\n },\r\n },\r\n phone: {\r\n message: 'Số điện thoại không được để trống',\r\n validators: {\r\n notEmpty: {\r\n message:\r\n 'Số điện thoại không được để trống',\r\n },\r\n stringLength: {\r\n max: 10,\r\n message:\r\n 'Số điện thoại không được quá 10 số',\r\n },\r\n },\r\n },\r\n password: {\r\n message: 'Mật khẩu không được để trống',\r\n validators: {\r\n notEmpty: {\r\n message: 'Mật khẩu không được để trống',\r\n },\r\n stringLength: {\r\n min: 6,\r\n message:\r\n 'Mật khẩu phải nhiều hơn hoặc bằng 6 kí tự',\r\n },\r\n },\r\n },\r\n confirmpassword: {\r\n message: 'Xác nhận mật khẩu không được để trống',\r\n validators: {\r\n notEmpty: {\r\n message:\r\n 'Mật khẩu xác nhận không được để trống',\r\n },\r\n identical: {\r\n field: 'password',\r\n message:\r\n 'Mật khẩu và mật khẩu xác nhận không trùng nhau',\r\n },\r\n },\r\n },\r\n locationId: {\r\n message: 'Thành phố không được để trống',\r\n validators: {\r\n notEmpty: {\r\n message: 'Thành phố không được để trống',\r\n },\r\n },\r\n },\r\n },\r\n })\r\n .on('success.form.fv', function (e) {\r\n e.preventDefault();\r\n\r\n const dataPost = {\r\n c_name: $(`${form_name} #name`).val(),\r\n c_email: $(`${form_name} #email`).val(),\r\n c_telephone: $(`${form_name} #phone`).val(),\r\n c_password: $(`${form_name} #password`).val(),\r\n l_id: $(`${form_name} #locationId`).val(),\r\n jo_id: $(`${form_name} #jobId`).val(),\r\n c_yearbirth: new Date().getFullYear(),\r\n };\r\n\r\n swalShowLoading('

    Đang xử lý

    ');\r\n _customerApis\r\n .register(dataPost)\r\n .then(({ status, data }) => {\r\n $(form_name).data('formValidation').resetForm();\r\n if (status !== 200) {\r\n mySwal(SWAL_CONST.TYPE.WARNING, data.msg);\r\n return;\r\n }\r\n\r\n const ridirectToLogin = () => {\r\n window.location.href = '/dang-nhap';\r\n };\r\n mySwalShowTimer({\r\n type: SWAL_CONST.TYPE.SUCCESS,\r\n title: 'Đăng ký thành công',\r\n msg: `

    Tự động chuyển sang Đăng nhập trong giây

    `,\r\n func: ridirectToLogin,\r\n timer: 5000,\r\n });\r\n });\r\n });\r\n }\r\n }, []);\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {/*
    \r\n \r\n
    \r\n
    \r\n \r\n
    */}\r\n
    \r\n \r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n ĐĂNG KÝ \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\ndocument\r\n .querySelectorAll('react-customer-register-form')\r\n .forEach((domContainer) => {\r\n const root = ReactDOM.createRoot(domContainer);\r\n root.render(creElm(CustomerRegisterForm, {}));\r\n });\r\n","const ContactForm = () => {\r\n useEffect(() => {\r\n const form_name = '#contact_form';\r\n if ($(form_name).length > 0) {\r\n var fv = $(form_name)\r\n .formValidation({\r\n framework: 'bootstrap',\r\n err: {\r\n /* container: 'tooltip'*/\r\n },\r\n icon: {\r\n //valid: 'fa fa-check',\r\n //invalid: 'fa fa-times',\r\n //validating: 'fa fa-refresh'\r\n },\r\n fields: {\r\n name: {\r\n validators: {\r\n notEmpty: {\r\n message: 'Tên không được để trống',\r\n },\r\n },\r\n },\r\n email: {\r\n validators: {\r\n notEmpty: {\r\n message:\r\n 'Vui lòng nhập email để chúng tôi có thể phản hồi bạn sớm nhất',\r\n },\r\n emailAddress: {\r\n message:\r\n 'Vui lòng nhập email để chúng tôi có thể phản hồi bạn sớm nhất',\r\n },\r\n },\r\n },\r\n phone: {\r\n validators: {\r\n notEmpty: {\r\n message:\r\n 'Vui lòng nhập số điện thoại để chúng tôi có thể phản hồi bạn sớm nhất',\r\n },\r\n },\r\n },\r\n message: {\r\n validators: {\r\n notEmpty: {\r\n message: 'Nội dung không được để trống',\r\n },\r\n },\r\n },\r\n },\r\n })\r\n .on('success.form.fv', function (e) {\r\n e.preventDefault();\r\n\r\n var dataPost = {\r\n cu_name: $(`${form_name} #name`).val(),\r\n cu_phone: $(`${form_name} #phone`).val(),\r\n cu_email: $(`${form_name} #email`).val(),\r\n cu_message: $(`${form_name} #message`).val(),\r\n };\r\n\r\n swalShowLoading('

    Đang xử lý

    ');\r\n\r\n _contactApis.submit(dataPost).then(({ status, data }) => {\r\n $(form_name).data('formValidation').resetForm();\r\n if (status !== 200) {\r\n mySwal(SWAL_CONST.TYPE.WARNING, data.msg);\r\n return;\r\n }\r\n\r\n $(form_name).trigger('reset');\r\n mySwal(\r\n SWAL_CONST.TYPE.SUCCESS,\r\n 'Bạn đã gửi liên hệ thành công! Chúng tôi sẽ liên hệ sớm nhất với bạn khi có thể'\r\n );\r\n });\r\n });\r\n }\r\n }, []);\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n GỬI Ý KIẾN \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\ndocument.querySelectorAll('react-contact-form').forEach((domContainer) => {\r\n const root = ReactDOM.createRoot(domContainer);\r\n root.render(creElm(ContactForm, {}));\r\n});\r\n","const LessonFooter = ({ courseId, lessonId }) => {\r\n const [infoDetail, setInfoDetail] = useState({});\r\n const [reloadCount, setReloadCound] = useState(0);\r\n\r\n const fetchData = async () => {\r\n const { status, data } = await _lessonApis.getDirectGroupButton({\r\n courseId,\r\n lessonId,\r\n });\r\n if (status !== 200) {\r\n setInfoDetail({});\r\n return;\r\n }\r\n setInfoDetail(data.data);\r\n };\r\n useEffect(() => {\r\n if (courseId && lessonId) {\r\n fetchData();\r\n }\r\n }, [courseId, lessonId]);\r\n\r\n const onCommentSuccess = () => {\r\n fetchData();\r\n setReloadCound((_value) => {\r\n return (_value += 1);\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\ndocument.querySelectorAll('react-lesson-footer').forEach((domContainer) => {\r\n const courseId = parseInt(domContainer.dataset.courseid, 10);\r\n const lessonId = parseInt(domContainer.dataset.lessonid, 10);\r\n const root = ReactDOM.createRoot(domContainer);\r\n root.render(creElm(LessonFooter, { courseId, lessonId }));\r\n});\r\n"]}