{"version":3,"sources":["webpack:///./infrastructure/presentation/components/application/Accordion/AccordionItem.vue?1276","webpack:///./infrastructure/presentation/components/application/FakeIframe.vue?0e3e","webpack:///./infrastructure/presentation/components/application/FakeIframe.vue?f850","webpack:///./infrastructure/presentation/components/application/FakeIframe.vue","webpack:///./infrastructure/presentation/components/application/FakeIframe.vue?a7ee","webpack:///./infrastructure/presentation/views/course/Course.vue?57e8","webpack:///./infrastructure/presentation/views/course/Course.vue?511e","webpack:///./infrastructure/presentation/views/course/Course.vue","webpack:///./infrastructure/presentation/views/course/Course.vue?d567","webpack:///./infrastructure/presentation/components/application/Accordion/AccordionItem.vue?2f2f","webpack:///./infrastructure/presentation/components/application/Accordion/AccordionItem.vue?010b","webpack:///./infrastructure/presentation/components/application/Accordion/AccordionItem.vue","webpack:///./infrastructure/presentation/components/application/Accordion/AccordionItem.vue?8479","webpack:///./infrastructure/presentation/assets/static/play-icon_blue.svg","webpack:///./infrastructure/presentation/components/application/Accordion/Accordion.vue?0074","webpack:///./infrastructure/presentation/components/application/Accordion/Accordion.vue?9abf","webpack:///./infrastructure/presentation/components/application/Accordion/Accordion.vue","webpack:///./infrastructure/presentation/components/application/Accordion/Accordion.vue?3977"],"names":["_hoisted_1","render","_ctx","_cache","$props","$setup","$data","$options","_component_ModalIntroductoryContent","_component_VideoPlayButton","isIntroductoryContentModalOpen","introductoryContent","key","onClose","closeModalIntroductoryContent","youtube","code","class","onClick","openIntroductoryContent","src","alt","onError","event","target","name","components","ModalIntroductoryContent","VideoPlayButton","VideoPlay","props","type","Object","setup","value","__exports__","n","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","ref","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_component_TUIViewer","_component_FakeIframe","_component_AccordionItem","_component_Accordion","style","backgroundImage","course","bannerURL","title","hasNewContent","duration","rating","$event","userCourse","finished","enrolled","haveCertification","openCertificate","toggleOptions","showOptions","disabled","leaveCourse","haveDecoins","isDecolaTemplate","description","instructors","instructor","index","goToInstructor","image","default","contents","content","onClickContent","_","selected","selectedInstructorIndex","biography","seeMoreDescription","FakeIframe","TUIViewer","AccordionItem","Accordion","course_id","required","String","store","dispatch","Number","loadInstructors","parseInt","showSeeMoreButton","console","error","getters","dropdownMenu","dropdownRef","adjustDropdownPosition","enroll","redirectToContent","id","notFinishedContents","filter","status","progress","isBlocked","currentContent","length","push","params","content_id","certificate","window","open","path","data","setSelectedInstructor","setTimeout","buttonReadMore","document","querySelector","innerText","classList","remove","add","forEach","offsetHeight","display","courseID","isReleased","log","rect","getBoundingClientRect","viewportWidth","innerWidth","right","left","closeDropdown","contains","addEventListener","formattedDuration","width","height","active","inactive","toggle","correctText","upcoming","available","isNew","$emit","modelValue","EXERCISE","exercise","numberOfQuestions","PDF","SCORM","YOUTUBE","MP3","ContentType","module","exports","$slots","undefined"],"mappings":"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","file":"js/chunk-4c6be830.c8e9e4ec.js","sourcesContent":["export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AccordionItem.vue?vue&type=style&index=0&id=31c56322&scoped=true&lang=css\"","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52faf386\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ModalIntroductoryContent = _resolveComponent(\"ModalIntroductoryContent\")!\n const _component_VideoPlayButton = _resolveComponent(\"VideoPlayButton\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.isIntroductoryContentModalOpen && _ctx.introductoryContent)\n ? (_openBlock(), _createBlock(_component_ModalIntroductoryContent, {\n key: 0,\n onClose: _ctx.closeModalIntroductoryContent,\n \"introductory-content\": _ctx.introductoryContent\n }, null, 8, [\"onClose\", \"introductory-content\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.introductoryContent?.youtube?.code)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"fake-iframe\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.openIntroductoryContent && _ctx.openIntroductoryContent(...args)))\n }, [\n _createElementVNode(\"img\", {\n src: \r\n `https://img.youtube.com/vi/${_ctx.introductoryContent?.youtube?.code}/hqdefault.jpg`\r\n ,\n alt: \"thumbnail\",\n onError: _cache[0] || (_cache[0] = \r\n event =>\r\n (event.target.src = `https://img.youtube.com/vi/${_ctx.introductoryContent?.youtube?.code}/0.jpg`)\r\n )\n }, null, 40, _hoisted_1),\n (_ctx.introductoryContent)\n ? (_openBlock(), _createBlock(_component_VideoPlayButton, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","\r\nimport { ref } from \"@vue/runtime-core\";\r\nimport { disableBodyOverflow, enableBodyOverflow } from \"../mixins\";\r\nimport { defineComponent, PropType } from \"vue\";\r\nimport { Content } from \"../../views/content/helpers\";\r\nimport VideoPlayButton from \"./buttons/VideoPlay.vue\";\r\nimport ModalIntroductoryContent from \"./ModalIntroductoryContent.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"FakeIframe\",\r\n components: { ModalIntroductoryContent, VideoPlayButton },\r\n props: {\r\n introductoryContent: {\r\n type: Object as PropType\r\n }\r\n },\r\n\r\n setup() {\r\n const isIntroductoryContentModalOpen = ref(false);\r\n\r\n const openIntroductoryContent = (): void => {\r\n isIntroductoryContentModalOpen.value = true;\r\n disableBodyOverflow();\r\n };\r\n\r\n const closeModalIntroductoryContent = (): void => {\r\n isIntroductoryContentModalOpen.value = false;\r\n enableBodyOverflow();\r\n };\r\n\r\n return {\r\n isIntroductoryContentModalOpen,\r\n closeModalIntroductoryContent,\r\n openIntroductoryContent\r\n };\r\n }\r\n});\r\n","import { render } from \"./FakeIframe.vue?vue&type=template&id=52faf386&scoped=true&ts=true\"\nimport script from \"./FakeIframe.vue?vue&type=script&lang=ts\"\nexport * from \"./FakeIframe.vue?vue&type=script&lang=ts\"\n\nimport \"./FakeIframe.vue?vue&type=style&index=0&id=52faf386&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-52faf386\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FakeIframe.vue?vue&type=style&index=0&id=52faf386&scoped=true&lang=css\"","import { toDisplayString as _toDisplayString, vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e32b8a26\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"view\",\n \"data-view\": \"\"\n}\nconst _hoisted_2 = { class: \"header__content\" }\nconst _hoisted_3 = { class: \"header__container\" }\nconst _hoisted_4 = { class: \"header__title\" }\nconst _hoisted_5 = { class: \"header__new-flag\" }\nconst _hoisted_6 = { class: \"information\" }\nconst _hoisted_7 = { class: \"information__duration\" }\nconst _hoisted_8 = { class: \"information__rate\" }\nconst _hoisted_9 = { class: \"header__actions\" }\nconst _hoisted_10 = { key: 0 }\nconst _hoisted_11 = { key: 1 }\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = {\n class: \"dropdown\",\n ref: \"dropdownRef\"\n}\nconst _hoisted_14 = {\n key: 0,\n class: \"dropdown-menu\",\n ref: \"dropdownMenu\"\n}\nconst _hoisted_15 = [\"disabled\"]\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"dropdown-menu__title\" }, \"Sair do curso\", -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"dropdown-menu__description\" }, \" Não ver mais esse curso na dashboard e em \\\"Meus cursos\\\" até iniciá-lo novamente \", -1))\nconst _hoisted_18 = [\n _hoisted_16,\n _hoisted_17\n]\nconst _hoisted_19 = {\n key: 0,\n class: \"line-decoins\"\n}\nconst _hoisted_20 = { class: \"box\" }\nconst _hoisted_21 = { class: \"course__about\" }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { class: \"title\" }, \"Sobre o treinamento:\", -1))\nconst _hoisted_23 = { class: \"instructors-previous-list\" }\nconst _hoisted_24 = [\"onClick\", \"title\"]\nconst _hoisted_25 = { class: \"course__learning\" }\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { class: \"title\" }, \"O que você vai aprender?\", -1))\nconst _hoisted_27 = {\n key: 0,\n class: \"course__instructors\",\n \"data-instructors\": \"\"\n}\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { class: \"title\" }, \"Instrutores:\", -1))\nconst _hoisted_29 = [\"data-instructor-index\"]\nconst _hoisted_30 = { class: \"instructor__information\" }\nconst _hoisted_31 = { class: \"instructor__name\" }\nconst _hoisted_32 = [\"data-biography\"]\nconst _hoisted_33 = { class: \"instructor__button-see\" }\nconst _hoisted_34 = [\"data-see-more\", \"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TUIViewer = _resolveComponent(\"TUIViewer\")!\n const _component_FakeIframe = _resolveComponent(\"FakeIframe\")!\n const _component_AccordionItem = _resolveComponent(\"AccordionItem\")!\n const _component_Accordion = _resolveComponent(\"Accordion\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"header\", {\n class: \"header\",\n style: _normalizeStyle({ backgroundImage: `url(${_ctx.course.bannerURL})` })\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h2\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.course.title) + \" \", 1),\n _withDirectives(_createElementVNode(\"span\", _hoisted_5, \"Novos conteúdos!\", 512), [\n [_vShow, _ctx.course.hasNewContent]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, \" Duração: \" + _toDisplayString(_ctx.course.duration), 1),\n _createElementVNode(\"span\", _hoisted_8, \"Média geral: \" + _toDisplayString(_ctx.course.rating ?? 0), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.onClick(_ctx.course)), [\"prevent\"])),\n class: \"header__button\"\n }, [\n (_ctx.userCourse.finished)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, \"Assistir novamente\"))\n : (_ctx.userCourse.enrolled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \"Continuar\"))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_12, \"Iniciar\"))\n ]),\n (_ctx.course.haveCertification && _ctx.userCourse.finished)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.openCertificate(_ctx.course)), [\"prevent\"])),\n class: \"header__certificate\"\n }, \" Visualizar certificado \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.toggleOptions && _ctx.toggleOptions(...args)), [\"prevent\"])),\n class: \"header__options\"\n }, \" Outras opções \"),\n (_ctx.showOptions)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_14, [\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"button\", {\n disabled: !(_ctx.userCourse.enrolled && !_ctx.userCourse.finished),\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.leaveCourse && _ctx.leaveCourse(...args))),\n class: \"dropdown-menu__item\"\n }, _hoisted_18, 8, _hoisted_15)\n ])\n ], 512))\n : _createCommentVNode(\"\", true)\n ], 512)\n ])\n ])\n ], 4),\n (_ctx.course.haveDecoins && _ctx.isDecolaTemplate())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"section\", _hoisted_21, [\n _hoisted_22,\n _createVNode(_component_TUIViewer, {\n \"model-value\": _ctx.course.description\n }, null, 8, [\"model-value\"]),\n _createVNode(_component_FakeIframe, {\n introductoryContent: _ctx.course.introductoryContent\n }, null, 8, [\"introductoryContent\"]),\n _createElementVNode(\"ul\", _hoisted_23, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.instructors, (instructor, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n class: \"instructors-preview-item\",\n onClick: _withModifiers(($event: any) => (_ctx.goToInstructor(index)), [\"prevent\"]),\n style: _normalizeStyle(\r\n `left: ${index * +2}rem; background-image: url(${\r\n instructor.image\r\n })`\r\n ),\n title: instructor.name\n }, [\n _createElementVNode(\"div\", {\n class: \"instructors-preview-item__fade\",\n style: _normalizeStyle(`background-image: url(${instructor.image})`)\n }, null, 4)\n ], 12, _hoisted_24))\n }), 128))\n ])\n ]),\n _createElementVNode(\"section\", _hoisted_25, [\n _hoisted_26,\n _createVNode(_component_Accordion, null, {\n default: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.contents, (content, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, [\n _createVNode(_component_AccordionItem, {\n content: content,\n onClickContent: ($event: any) => (_ctx.onClickContent(content))\n }, null, 8, [\"content\", \"onClickContent\"])\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]),\n (_ctx.instructors)\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_27, [\n _hoisted_28,\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.instructors, (instructor, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n \"data-instructor-index\": index,\n class: _normalizeClass([\r\n 'instructor',\r\n { selected: _ctx.selectedInstructorIndex === index }\r\n ])\n }, [\n _createElementVNode(\"div\", {\n class: \"instructor__image\",\n style: _normalizeStyle({ backgroundImage: `url(${instructor.image})` })\n }, null, 4),\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"span\", _hoisted_31, _toDisplayString(instructor.name), 1),\n _createElementVNode(\"p\", {\n \"data-biography\": index,\n class: \"instructor__biography\"\n }, _toDisplayString(instructor.biography), 9, _hoisted_32),\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"button\", {\n \"data-see-more\": index,\n class: \"instructor__see-more\",\n onClick: ($event: any) => (_ctx.seeMoreDescription(index))\n }, \" ver mais \", 8, _hoisted_34)\n ])\n ])\n ], 10, _hoisted_29))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n nextTick,\r\n onBeforeMount,\r\n onMounted,\r\n ref,\r\n Ref\r\n} from \"vue\";\r\nimport {\r\n Course,\r\n CourseCertificate,\r\n Instructor,\r\n UserCourse\r\n} from \"../../../../domain/entities/entities\";\r\nimport { Content } from \"../content/helpers\";\r\nimport {\r\n dispatchSuccessBox,\r\n formattedDuration,\r\n isDecolaTemplate,\r\n scrollSmoothToElement,\r\n scrollToTop\r\n} from \"../../components/mixins\";\r\nimport Accordion from \"../../components/application/Accordion/Accordion.vue\";\r\nimport AccordionItem from \"../../components/application/Accordion/AccordionItem.vue\";\r\nimport router from \"../../../../src/routes\";\r\nimport { wrapLoading } from \"../../utils/wrap_loading\";\r\nimport ModalIntroductoryContent from \"../../components/application/ModalIntroductoryContent.vue\";\r\nimport VideoPlayButton from \"../../components/application/buttons/VideoPlay.vue\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\nimport { useStore } from \"vuex\";\r\nimport TUIViewer from \"../../components/application/TUIViewer.vue\";\r\nimport FakeIframe from \"../../components/application/FakeIframe.vue\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n FakeIframe,\r\n TUIViewer,\r\n AccordionItem,\r\n Accordion,\r\n ModalIntroductoryContent,\r\n VideoPlayButton\r\n },\r\n props: {\r\n course_id: {\r\n required: true,\r\n type: String\r\n }\r\n },\r\n\r\n setup(props) {\r\n const store = useStore();\r\n\r\n onBeforeMount(async () => {\r\n try {\r\n await wrapLoading(async () => {\r\n scrollToTop();\r\n await store.dispatch(\r\n \"course_module/loadCourse\",\r\n Number(props.course_id)\r\n );\r\n await store.dispatch(\r\n \"course_module/userCourseSituation\",\r\n Number(props.course_id)\r\n );\r\n await store.dispatch(\r\n \"course_module/loadContents\",\r\n Number(props.course_id)\r\n );\r\n await loadInstructors(parseInt(props.course_id));\r\n showSeeMoreButton();\r\n });\r\n } catch (e) {\r\n console.error(\"[onBeforeMount] Error \", e);\r\n await dispatchError(e);\r\n }\r\n });\r\n\r\n const isIntroductoryContentModalOpen: Ref = ref(false);\r\n\r\n const course: ComputedRef = computed(\r\n (): Course => {\r\n const course = store.getters[\"course_module/course\"];\r\n course.duration = formattedDuration(course.duration);\r\n return course;\r\n }\r\n );\r\n\r\n const userCourse: ComputedRef = computed(\r\n (): UserCourse => store.getters[\"course_module/userCourseSituation\"]\r\n );\r\n\r\n const contents: ComputedRef = computed(\r\n (): Content[] => store.getters[\"course_module/contents\"]\r\n );\r\n\r\n const instructors: ComputedRef = computed(\r\n () => store.getters[\"course_module/instructors\"]\r\n );\r\n\r\n const selectedInstructorIndex: Ref = ref(-1);\r\n\r\n const showOptions = ref(false);\r\n\r\n const dropdownMenu: Ref = ref(null!);\r\n\r\n const dropdownRef = ref(null!);\r\n\r\n const toggleOptions = () => {\r\n showOptions.value = !showOptions.value;\r\n if (showOptions.value) {\r\n adjustDropdownPosition();\r\n }\r\n };\r\n\r\n /** Enroll or resume course based on the current course's state. */\r\n const onClick = async (course: Course): Promise => {\r\n try {\r\n if (!userCourse.value.enrolled) await enroll(course);\r\n await redirectToContent();\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n /** Enroll user on the course. */\r\n const enroll = async (course: Course): Promise => {\r\n await store.dispatch(\"course_module/enrollInCourse\", course.id);\r\n };\r\n\r\n /** Redirects the user to the first content_provider that is not finished */\r\n async function redirectToContent(): Promise {\r\n const notFinishedContents = contents.value.filter(content => {\r\n if (content.status.progress !== 100 && !content.isBlocked) {\r\n return content;\r\n }\r\n });\r\n const currentContent = notFinishedContents.length\r\n ? notFinishedContents[0]\r\n : contents.value[0];\r\n await router.push({\r\n name: \"course_content\",\r\n params: { content_id: currentContent.id }\r\n });\r\n }\r\n\r\n /** Dispatch an action that require the certificate path and redirect to the path. */\r\n const openCertificate = (course: Course): void => {\r\n wrapLoading(async () => {\r\n try {\r\n await store.dispatch(\"course_module/loadCertificate\", course.id);\r\n const certificate: CourseCertificate =\r\n store.getters[\"course_module/certificate\"];\r\n window.open(certificate.path, \"_blank\");\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }, \"Gerando certificado...\");\r\n };\r\n\r\n /** Scroll to the selected instructor. */\r\n const goToInstructor = (index: number): void => {\r\n const data = index\r\n ? `[data-instructor-index='${index - 1}']`\r\n : `[data-instructors]`;\r\n scrollSmoothToElement(data);\r\n setSelectedInstructor(index);\r\n };\r\n\r\n const setSelectedInstructor = (index: number): void => {\r\n selectedInstructorIndex.value = index;\r\n setTimeout(() => {\r\n selectedInstructorIndex.value = -1;\r\n }, 2000);\r\n };\r\n\r\n function seeMoreDescription(index: number): void {\r\n const buttonReadMore = document.querySelector(\r\n `[data-see-more=\"${index}\"]`\r\n ) as HTMLButtonElement;\r\n const biography = document.querySelector(\r\n `[data-biography=\"${index}\"]`\r\n ) as HTMLParagraphElement;\r\n\r\n if (buttonReadMore && biography) {\r\n if (buttonReadMore.innerText === \"ver mais\") {\r\n buttonReadMore.innerText = \"ver menos\";\r\n biography.classList.remove(\"dots\");\r\n } else {\r\n buttonReadMore.innerText = \"ver mais\";\r\n biography.classList.add(\"dots\");\r\n }\r\n }\r\n }\r\n\r\n function showSeeMoreButton(): void {\r\n if (!instructors.value) return;\r\n instructors.value.forEach((instructor: Instructor, index: number) => {\r\n const buttonReadMore = document.querySelector(\r\n `[data-see-more=\"${index}\"]`\r\n ) as HTMLButtonElement;\r\n const biography = document.querySelector(\r\n `[data-biography=\"${index}\"]`\r\n ) as HTMLParagraphElement;\r\n\r\n if (biography.offsetHeight) {\r\n if (biography.offsetHeight > 48) {\r\n buttonReadMore.style.display = \"flex\";\r\n biography.classList.add(\"dots\");\r\n } else buttonReadMore.style.display = \"none\";\r\n }\r\n });\r\n }\r\n\r\n const loadInstructors = async (courseID: number) => {\r\n try {\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"course_module/loadInstructors\", courseID);\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n const onClickContent = async (content: Content) => {\r\n try {\r\n if (!userCourse.value.enrolled) {\r\n await enroll(course.value);\r\n }\r\n\r\n if (content.isBlocked) {\r\n return;\r\n }\r\n\r\n if (!content.isReleased) {\r\n return;\r\n }\r\n\r\n await router.push({\r\n name: \"course_content\",\r\n params: { course_id: course.value.id, content_id: content.id }\r\n });\r\n } catch (e) {\r\n console.log(\"[onClickContent] Error \", e);\r\n await dispatchError(e);\r\n throw e;\r\n }\r\n };\r\n\r\n const leaveCourse = async () => {\r\n try {\r\n showOptions.value = false;\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"course_module/leaveCourse\", course.value.id);\r\n await store.dispatch(\r\n \"course_module/loadCourse\",\r\n Number(props.course_id)\r\n );\r\n await store.dispatch(\r\n \"course_module/userCourseSituation\",\r\n Number(props.course_id)\r\n );\r\n });\r\n\r\n await dispatchSuccessBox(\"Você saiu do curso com sucesso!\");\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n const adjustDropdownPosition = () => {\r\n nextTick(() => {\r\n if (dropdownMenu.value) {\r\n const rect = dropdownMenu.value.getBoundingClientRect();\r\n const viewportWidth = window.innerWidth;\r\n\r\n if (rect.right > viewportWidth) {\r\n dropdownMenu.value.style.left = \"auto\";\r\n dropdownMenu.value.style.right = \"0\";\r\n } else if (rect.left < 0) {\r\n dropdownMenu.value.style.left = \"0\";\r\n dropdownMenu.value.style.right = \"auto\";\r\n }\r\n }\r\n });\r\n };\r\n\r\n const closeDropdown = (event: MouseEvent) => {\r\n const target = event.target as HTMLElement;\r\n if (dropdownRef.value && !dropdownRef.value.contains(target)) {\r\n showOptions.value = false;\r\n }\r\n };\r\n\r\n onMounted(() => {\r\n window.addEventListener(\"resize\", adjustDropdownPosition);\r\n document.addEventListener(\"click\", closeDropdown);\r\n });\r\n\r\n return {\r\n course,\r\n userCourse,\r\n contents,\r\n instructors,\r\n selectedInstructorIndex,\r\n isIntroductoryContentModalOpen,\r\n showOptions,\r\n dropdownRef,\r\n formattedDuration,\r\n onClick,\r\n openCertificate,\r\n goToInstructor,\r\n seeMoreDescription,\r\n onClickContent,\r\n isDecolaTemplate,\r\n toggleOptions,\r\n leaveCourse,\r\n adjustDropdownPosition,\r\n dropdownMenu\r\n };\r\n }\r\n});\r\n","import { render } from \"./Course.vue?vue&type=template&id=e32b8a26&scoped=true&ts=true\"\nimport script from \"./Course.vue?vue&type=script&lang=ts\"\nexport * from \"./Course.vue?vue&type=script&lang=ts\"\n\nimport \"./Course.vue?vue&type=style&index=0&id=e32b8a26&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e32b8a26\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Course.vue?vue&type=style&index=0&id=e32b8a26&scoped=true&lang=css\"","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, vShow as _vShow, createVNode as _createVNode, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../assets/static/play-icon_blue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-31c56322\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"aria-expanded\", \"data-side-information\"]\nconst _hoisted_2 = {\n key: 0,\n src: _imports_0,\n width: \"15\",\n height: \"15\",\n alt: \"icon\",\n class: \"play-icon\"\n}\nconst _hoisted_3 = { class: \"editor-accordion\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TUIViewer = _resolveComponent(\"TUIViewer\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(['accordion-item', { active: _ctx.active }, { inactive: !_ctx.active }])\n }, [\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.toggle && _ctx.toggle(...args))),\n class: \"accordion-item__title\",\n \"aria-expanded\": _ctx.active,\n \"data-side-information\": _ctx.correctText()\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\r\n { content: !_ctx.content.isBlocked },\r\n { upcoming: !_ctx.content.isReleased, available: _ctx.content.isNew }\r\n ]),\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$emit('clickContent')), [\"stop\"]))\n }, [\n (!_ctx.content.isBlocked && _ctx.content.isReleased)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(_ctx.content.title), 1)\n ], 2)\n ], 8, _hoisted_1),\n _createElementVNode(\"div\", _hoisted_3, [\n _withDirectives(_createVNode(_component_TUIViewer, {\n modelValue: _ctx.content.description,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.content.description) = $event)),\n \"max-width\": \"100%\"\n }, null, 8, [\"modelValue\"]), [\n [_vShow, _ctx.active]\n ])\n ])\n ], 2))\n}","\r\nimport { defineComponent, ref, PropType } from \"vue\";\r\nimport { Ref } from \"vue\";\r\nimport { formattedDuration } from \"../../mixins\";\r\nimport { ContentType } from \"../../../../../domain/entities/content/content\";\r\nimport TUIViewer from \"../TUIViewer.vue\";\r\nimport {useRoute, useRouter} from \"vue-router\";\r\nimport {Content} from \"../../../views/content/helpers\";\r\nimport store from \"../../../../repository/store/store\";\r\nimport {EventCourse} from \"../../../../../domain/entities/courseEvent/courseEvent\";\r\n\r\nexport default defineComponent({\r\n name: \"AccordionItem\",\r\n components: { TUIViewer },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n }\r\n },\r\n setup(props) {\r\n const active: Ref = ref(false);\r\n\r\n const toggle = (): void => {\r\n active.value = !active.value;\r\n };\r\n\r\n const correctText = (): number | string => {\r\n if (props.content) {\r\n switch (props.content?.type) {\r\n case ContentType.EXERCISE:\r\n return `${props.content?.exercise?.numberOfQuestions} perguntas`;\r\n case ContentType.PDF:\r\n return formattedDuration(props.content?.duration);\r\n case ContentType.SCORM:\r\n return formattedDuration(props.content?.duration);\r\n case ContentType.YOUTUBE:\r\n return formattedDuration(props.content?.duration);\r\n case ContentType.MP3:\r\n return formattedDuration(props.content?.duration);\r\n }\r\n }\r\n return 0;\r\n };\r\n\r\n return {\r\n active,\r\n ContentType,\r\n toggle,\r\n formattedDuration,\r\n correctText,\r\n };\r\n }\r\n});\r\n","import { render } from \"./AccordionItem.vue?vue&type=template&id=31c56322&scoped=true&ts=true\"\nimport script from \"./AccordionItem.vue?vue&type=script&lang=ts\"\nexport * from \"./AccordionItem.vue?vue&type=script&lang=ts\"\n\nimport \"./AccordionItem.vue?vue&type=style&index=0&id=31c56322&scoped=true&lang=css\"\nimport \"./AccordionItem.vue?vue&type=style&index=1&id=31c56322&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-31c56322\"]])\n\nexport default __exports__","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AccordionItem.vue?vue&type=style&index=1&id=31c56322&lang=css\"","module.exports = __webpack_public_path__ + \"img/play-icon_blue.016b6066.svg\";","import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1fc2dfbb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"accordion\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ]))\n}","\r\nimport {defineComponent} from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"Accordion\",\r\n});\r\n","import { render } from \"./Accordion.vue?vue&type=template&id=1fc2dfbb&scoped=true&ts=true\"\nimport script from \"./Accordion.vue?vue&type=script&lang=ts\"\nexport * from \"./Accordion.vue?vue&type=script&lang=ts\"\n\nimport \"./Accordion.vue?vue&type=style&index=0&id=1fc2dfbb&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1fc2dfbb\"]])\n\nexport default __exports__","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Accordion.vue?vue&type=style&index=0&id=1fc2dfbb&scoped=true&lang=css\""],"sourceRoot":""}