{"version":3,"sources":["webpack:///./infrastructure/presentation/views/SearchCourseTrack.vue?97d0","webpack:///./infrastructure/presentation/views/SearchCourseTrack.vue?84b1","webpack:///./infrastructure/presentation/views/SearchCourseTrack.vue","webpack:///./infrastructure/presentation/views/SearchCourseTrack.vue?b582"],"names":["n","_hoisted_1","_hoisted_2","class","_hoisted_3","render","_ctx","_cache","$props","$setup","$data","$options","_component_ModalIntroductoryContent","_component_Comment","_component_content_fallback","_component_CommentsModal","_component_course","_component_PaginationDefault","openModalIntroductoryContent","course","introductoryContent","key","onClose","closeModalIntroductoryContent","isCommentsModalOpen","onCloseCommentsModal","closeCommentsModal","title","commentModalTitle","default","comments","length","comment","index","userName","message","date","toLocaleDateTime","createAt","stars","rating","userImage","contentName","_","courses","id","onLoadCourseCommentsModal","$event","loadCourseCommentsModal","onOpenIntroductoryContent","openIntroductoryContent","onOpenCourse","$router","push","name","params","course_id","coursesPage","currentPage","Number","$route","query","page","onChangePage","updateQuery","methods","components","Carousel","Slide","Navigation","Pagination","PaginationDefault","CommentsModal","ContentFallback","ModalIntroductoryContent","Comment","props","entityID","type","String","setup","store","route","getters","loadCourses","order","dispatch","courseTrackID","enableBodyOverflow","document","body","style","overflow","disableBodyOverflow","openCommentsModal","loadContentCommentsById","value","console","error","_course","__exports__"],"mappings":"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","file":"js/chunk-3e407868.2fed8686.js","sourcesContent":["import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-745b6bc2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Não há nenhum comentário por aqui\", -1))\nconst _hoisted_2 = { class: \"courses-list\" }\nconst _hoisted_3 = { class: \"courses\" }\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_Comment = _resolveComponent(\"Comment\")!\n const _component_content_fallback = _resolveComponent(\"content-fallback\")!\n const _component_CommentsModal = _resolveComponent(\"CommentsModal\")!\n const _component_course = _resolveComponent(\"course\")!\n const _component_PaginationDefault = _resolveComponent(\"PaginationDefault\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.openModalIntroductoryContent && _ctx.course.introductoryContent)\n ? (_openBlock(), _createBlock(_component_ModalIntroductoryContent, {\n key: 0,\n onClose: _ctx.closeModalIntroductoryContent,\n \"introductory-content\": _ctx.course.introductoryContent\n }, null, 8, [\"onClose\", \"introductory-content\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.isCommentsModalOpen)\n ? (_openBlock(), _createBlock(_component_CommentsModal, {\n key: 1,\n onCloseCommentsModal: _ctx.closeCommentsModal,\n title: _ctx.commentModalTitle\n }, {\n default: _withCtx(() => [\n (_ctx.comments.length)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.comments, (comment, index) => {\n return (_openBlock(), _createBlock(_component_Comment, {\n key: index,\n \"user-name\": comment.userName,\n comment: comment.message,\n date: _ctx.toLocaleDateTime(comment.createAt),\n stars: comment.rating,\n \"user-image\": comment.userImage,\n \"content-name\": comment.contentName\n }, null, 8, [\"user-name\", \"comment\", \"date\", \"stars\", \"user-image\", \"content-name\"]))\n }), 128))\n : (_openBlock(), _createBlock(_component_content_fallback, { key: 1 }, {\n default: _withCtx(() => [\n _hoisted_1\n ]),\n _: 1\n }))\n ]),\n _: 1\n }, 8, [\"onCloseCommentsModal\", \"title\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.courses, (course) => {\n return (_openBlock(), _createBlock(_component_course, {\n key: course.id,\n course: course,\n onLoadCourseCommentsModal: ($event: any) => (_ctx.loadCourseCommentsModal(course)),\n onOpenIntroductoryContent: ($event: any) => (_ctx.openIntroductoryContent(course)),\n onOpenCourse: ($event: any) => (\r\n _ctx.$router.push({ name: 'course', params: { course_id: course.id } })\r\n )\n }, null, 8, [\"course\", \"onLoadCourseCommentsModal\", \"onOpenIntroductoryContent\", \"onOpenCourse\"]))\n }), 128))\n ]),\n (_ctx.coursesPage)\n ? (_openBlock(), _createBlock(_component_PaginationDefault, {\n key: 0,\n \"qt-pages\": _ctx.coursesPage,\n currentPage: Number(_ctx.$route.query.page) || 1,\n onChangePage: _cache[0] || (_cache[0] = ($event: any) => (_ctx.updateQuery(_ctx.$router, 'page', $event)))\n }, null, 8, [\"qt-pages\", \"currentPage\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 64))\n}","\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n Ref,\r\n watch\r\n} from \"vue\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport { Carousel, Navigation, Pagination, Slide } from \"vue3-carousel\";\r\nimport { ContentComment, Course } from \"../../../domain/entities/entities\";\r\nimport course from \"../components/application/Course.vue\";\r\nimport { RepositoryException } from \"../../../domain/exceptions/exceptions\";\r\nimport { useStore } from \"vuex\";\r\nimport CommentsModal from \"../components/application/DashboardComments/CommentsModal.vue\";\r\nimport ContentFallback from \"../components/application/moldure/ContentFallback.vue\";\r\nimport { dispatchErrorBox, toLocaleDateTime } from \"../components/mixins\";\r\nimport { ref } from \"@vue/runtime-core\";\r\nimport ModalIntroductoryContent from \"../components/application/ModalIntroductoryContent.vue\";\r\nimport Comment from \"../components/application/DashboardComments/Comment.vue\";\r\nimport { wrapLoading } from \"../utils/wrap_loading\";\r\nimport PaginationDefault from \"../components/application/shop/PaginationDefault.vue\";\r\nimport { getOrderFromURL } from \"../utils/order_utils\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { updateQuery } from \"../utils/routing_utils\";\r\nimport { dispatchError } from \"../utils/error_handling\";\r\n\r\nexport default defineComponent({\r\n methods: { updateQuery },\r\n components: {\r\n Carousel,\r\n Slide,\r\n Navigation,\r\n Pagination,\r\n course,\r\n PaginationDefault,\r\n CommentsModal,\r\n ContentFallback,\r\n ModalIntroductoryContent,\r\n Comment\r\n },\r\n\r\n props: {\r\n entityID: {\r\n type: String\r\n }\r\n },\r\n\r\n setup(props) {\r\n const store = useStore();\r\n const route = useRoute();\r\n\r\n /** Is what will be the title of the comment modal. */\r\n const commentModalTitle = ref(\"\");\r\n\r\n const course = ref(new Course());\r\n\r\n const openModalIntroductoryContent: Ref = ref(false);\r\n\r\n const courses: ComputedRef = computed(\r\n () => store.getters[\"course_module/coursesByCourseTrack\"]\r\n );\r\n\r\n const coursesPage: ComputedRef = computed(\r\n () => store.getters[\"course_module/coursesByCourseTrackPage\"]\r\n );\r\n\r\n const comments: ComputedRef = computed(\r\n () => store.getters[\"course_module/comments\"]\r\n );\r\n\r\n const isCommentsModalOpen: ComputedRef = computed(\r\n () => store.getters[\"course_module/isCommentsModalOpen\"]\r\n );\r\n\r\n onBeforeMount(async () => {\r\n await loadCourses();\r\n });\r\n\r\n async function loadCourses(): Promise {\r\n try {\r\n const order = getOrderFromURL(route);\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"course_module/loadCoursesOfCourseTrack\", {\r\n order: order,\r\n courseTrackID: props.entityID\r\n });\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n\r\n /** Enable the body overflow to let the user scroll the page after close some modal. */\r\n const enableBodyOverflow = () => {\r\n document.body.style.overflow = \"auto\";\r\n };\r\n\r\n /** Disable the body overflow to not let the user scroll the page behind some modal while is open. */\r\n const disableBodyOverflow = () => {\r\n document.body.style.overflow = \"hidden\";\r\n };\r\n\r\n /** Dispatch an action to open the comment modal on screen. */\r\n const openCommentsModal = async () => {\r\n disableBodyOverflow();\r\n await store.dispatch(\"course_module/openCommentsModal\");\r\n };\r\n\r\n /** Dispatch an action to open the comment modal on screen. */\r\n const closeCommentsModal = async () => {\r\n enableBodyOverflow();\r\n await store.dispatch(\"course_module/closeCommentsModal\");\r\n await store.dispatch(\"course_module/clearComments\");\r\n };\r\n\r\n /** Dispatch an action to load the comments. */\r\n const loadContentCommentsById = async (course: Course) =>\r\n await store.dispatch(\"course_module/loadContentCommentsById\", course.id);\r\n\r\n /** Display the modal with the comments about the course. */\r\n const loadCourseCommentsModal = async (course: Course) => {\r\n try {\r\n commentModalTitle.value = course.title;\r\n await openCommentsModal();\r\n await loadContentCommentsById(course);\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n };\r\n\r\n const openIntroductoryContent = (_course: Course): void => {\r\n course.value = _course;\r\n openModalIntroductoryContent.value = true;\r\n };\r\n\r\n const closeModalIntroductoryContent = (): void => {\r\n openModalIntroductoryContent.value = false;\r\n };\r\n\r\n watch(\r\n () => route.query.page,\r\n async () => {\r\n if (route.name === \"details_courses\") {\r\n await loadCourses();\r\n }\r\n }\r\n );\r\n\r\n return {\r\n courses,\r\n comments,\r\n isCommentsModalOpen,\r\n commentModalTitle,\r\n course,\r\n openModalIntroductoryContent,\r\n coursesPage,\r\n toLocaleDateTime,\r\n closeCommentsModal,\r\n openCommentsModal,\r\n loadCourseCommentsModal,\r\n openIntroductoryContent,\r\n closeModalIntroductoryContent\r\n };\r\n }\r\n});\r\n","import { render } from \"./SearchCourseTrack.vue?vue&type=template&id=745b6bc2&scoped=true&ts=true\"\nimport script from \"./SearchCourseTrack.vue?vue&type=script&lang=ts\"\nexport * from \"./SearchCourseTrack.vue?vue&type=script&lang=ts\"\n\nimport \"./SearchCourseTrack.vue?vue&type=style&index=0&id=745b6bc2&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-745b6bc2\"]])\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!./SearchCourseTrack.vue?vue&type=style&index=0&id=745b6bc2&scoped=true&lang=css\""],"sourceRoot":""}