{"version":3,"file":"CoursesItemLanding.ff37a724.js","sources":["../../src/modules/Courses/components/CoursesFlow/CoursesFlowButton.vue","../../src/modules/Courses/components/CoursesItemLanding/CoursesItemLandingHeader.vue","../../src/modules/Shared/hooks/useSmoothAnchor.ts","../../src/modules/Courses/components/CoursesItemProgram/CoursesItemProgramStage.vue","../../src/modules/Courses/components/CoursesItemProgram/CoursesItemProgramLesson.vue","../../src/modules/Courses/components/CoursesItemProgram/CoursesItemProgramTopic.vue","../../src/modules/Courses/components/CoursesItemProgram/CoursesItemProgramModule.vue","../../src/modules/Courses/components/CoursesItemProgram/CoursesItemProgram.vue","../../src/modules/Courses/components/CoursesItemProgramCompact/CoursesItemProgramCompactStage.vue","../../src/modules/Courses/components/CoursesItemProgramCompact/CoursesItemProgramCompactLesson.vue","../../src/modules/Courses/components/CoursesItemProgramCompact/CoursesItemProgramCompact.vue","../../src/modules/Courses/components/CoursesItemLanding/CoursesItemLandingAuthors/CoursesItemLandingAuthorsItem.vue","../../src/modules/Courses/components/CoursesItemLanding/CoursesItemLandingAuthors/CoursesItemLandingAuthors.vue","../../src/modules/Courses/components/CoursesItemLanding/CoursesItemLanding.vue","../../src/modules/Courses/controllers/CourseItemLanding/CoursesItemCurrentStatesController.ts","../../src/modules/Courses/controllers/CourseItemLanding/CoursesItemLandingController.ts","../../src/modules/Courses/pages/CoursesItemLanding.vue"],"sourcesContent":["\n.coursesFlowButtonComponent\n template(v-if=\"courseState.isPermitted\")\n\n template(v-if=\"!courseState.flow.isNotStarted\")\n template(v-if=\"courseState.isCompleted\")\n ui-button(\n @click=\"onResultButtonClick\"\n color=\"secondary\"\n :outlined=\"true\"\n ) Результаты\n template(v-else)\n ui-button(@click=\"onContinueButtonClick\") {{ courseState.isNew ? 'Начать обучение' : 'Продолжить обучение' }}\n \n template(v-else)\n template(v-if=\"courseState.flow.dateFrom\")\n ui-badge(color=\"background2\" size=\"s\") Поток начнет обучение {{courseState.flow.dateFrom?.format('DD MMMM YYYY')}}\n \n template(v-else)\n\n template(v-if=\"courseState.accessPending\")\n ui-badge Заявка на согласовании\n template(v-else-if=\"courseState.accessApproved\")\n ui-badge Заявка согласована\n template(v-else-if=\"courseState.accessPaymentProcessing\")\n ui-badge Обработка платежа\n template(v-else-if=\"courseState.accessNoPayment\")\n a(:href=\"courseState.payLink\")\n ui-button Купить доступ\n\n\n\n","\n.coursesItemLandingHeaderComponent(\n v-if=\"course\"\n :class=\"headerClasses\"\n)\n .category {{ course.profile?.nameFormatted }}\n .title {{ course.title }}\n\n .dates(v-if=\"state && !state.accessNone\") {{ state.flow.name }}: {{ state.flow.datesFormatted }}\n .dates(v-else-if=\"course.hasOneFlow\") {{ course.flows[0].name }}: {{ course.flows[0].datesFormatted }}\n\n .description {{ course.descriptionShort }}\n appeal-info.appeals(\n v-if=\"appealsBlockFlow && appealsBlockFlow.appeal\"\n :request-dates-text=\"appealsBlockFlow.appeal.requestDatesFormatted\"\n :dates-text=\"appealsBlockFlow.appeal.datesFormatted\"\n )\n\n .buttons(v-if=\"course.showForum || stateController.data?.showAnnouncing\")\n ui-button(\n v-if=\"course.showForum\"\n :color=\"course.profile?.code\"\n icon=\"forum\"\n @click=\"onForumButtonClick\"\n ) Форум\n ui-button(\n v-if=\"stateController.data?.showAnnouncing\"\n :color=\"course.profile?.code\"\n icon=\"announcing\"\n @click=\"onAnnouncingButtonClick\"\n ) Объявления\n\n //- pre canSignup: {{controller.canSignup.value}}\n //- pre !state: {{!state}}\n //- pre accessNone: {{!!state?.accessNone}}\n //- pre isCompleted: {{!!state?.isCompleted}}\n //- pre personalDataRequired {{ course.personalDataRequired }}\n //- pre isAuthenticated {{ isAuthenticated }}\n //- pre {{ store.user.profile.data.value?.alertPersonalData ? 'Не Все данные в профиле заполнены' : 'все данные в профиле заполнены' }}\n\n .flows\n template(v-if=\"isSignupFlowsShown\")\n template(v-if=\"signupFlowsOptions.length\")\n .title Выберите даты обучения:\n ui-radio-select.select(\n v-model=\"selectedFlow\"\n :options=\"signupFlowsOptions\"\n :allow-empty=\"true\"\n :is-disabled=\"!isAuthenticated\"\n )\n template(v-else)\n template(v-if=\"!controller.state.value?.isPermitted\")\n template(v-if=\"controller.canSignup.value && !signupFlowsOptions.length\")\n ui-alert(message=\"Нет потоков для записи\")\n\n .actions(id=\"course-actions\")\n template(v-if=\"!isAuthenticated\")\n ui-button(@click=\"onLoginButtonClick\") Авторизоваться\n\n template(v-else)\n template(v-if=\"isSignupFlowsShown\")\n template(v-if=\"course.personalDataRequired && alertPersonalData\")\n ui-button(\n v-if=\"isAuthenticated\"\n :is-disabled=\"!selectedFlow\"\n @click=\"store.ui.notices.newWarning('Внимание!','Необходимо заполнить все обязательные поля профиля')\"\n ) Записаться на курс\n template(v-else)\n ui-button(\n v-if=\"isAuthenticated\"\n :is-disabled=\"!selectedFlow\"\n @click=\"onSignUpClick\"\n ) Записаться на курс\n\n template(v-if=\"state\")\n courses-flow-button(:course-state=\"state\")\n\n .cover\n courses-item-cover(\n :image-url=\"course.coverUrl\"\n :color=\"course.profile?.code\"\n )\n\n\n\n\n\n","export const useSmoothAnchor = (id: string) => {\n document.getElementById(id)?.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n })\n}\n","\n.coursesItemProgramStageComponent(:class=\"{_invariant: !!isInvariant}\")\n .title(\n :class=\"titleClasses\"\n @click=\"onClick\"\n ) {{ item.titleFull }}\n\n\n\n\n","\n.coursesItemProgramLessonComponent(:class=\"{_invariant: !!isInvariant}\")\n .title {{ item.titleFull }}\n .stages\n courses-item-program-stage.stage(\n v-for=\"(stage, index) in filteredStages\"\n :key=\"index\"\n :item=\"stage\"\n :controller=\"controller\"\n :is-invariant=\"!!isInvariant\"\n )\n\n\n\n\n","\n.coursesItemProgramTopicComponent(:class=\"{_invariant: !!isInvariant}\")\n .title {{ item.titleFull }}\n .lessons\n courses-item-program-lesson.lesson(\n v-for=\"(lesson, index) in filteredLessons\"\n :key=\"index\"\n :item=\"lesson\"\n :controller=\"controller\"\n :is-invariant=\"!!isInvariant\"\n )\n\n\n\n\n","\n.coursesItemProgramModuleComponent(:class=\"[moduleClasses, invariantClasses]\")\n .header(@click=\"onHeaderClick\")\n .top\n .title {{ item.titleFull }}\n ui-badge.badge(color=\"background\") {{lessonBadgeText}}\n .collapse\n ui-svg-icon(name=\"accordion-arrow\")\n .info(v-if=\"showInfo\")\n .section(v-if=\"item.stagesCountLecture\")\n .icon\n ui-svg-icon(name=\"lectures\")\n .text {{ stagesCountLectureText }}\n .section(v-if=\"item.stagesCountTest\")\n .icon\n ui-svg-icon(name=\"tests\")\n .text {{ stagesCountTestText }}\n slide-up-down(\n v-model=\"isOpened\"\n :duration=\"200\"\n )\n .content\n courses-item-program-topic.topic(\n v-for=\"(topic, index) in filteredTopics\"\n :key=\"index\"\n :item=\"topic\"\n :controller=\"controller\",\n :class=\"invariantClasses\"\n :is-invariant=\"item.isInvariant\"\n )\n\n\n\n\n","\n.coursesItemProgramComponent(v-if=\"structure\")\n courses-item-program-module.module(\n v-for=\"(item, index) in filteredModules\"\n :key=\"index\"\n :item=\"item\"\n :controller=\"controller\"\n )\n\n\n\n\n","\n.coursesItemProgramCompactStageComponent(:class=\"{_invariant: !!isInvariant}\")\n .title(\n :class=\"titleClasses\"\n @click=\"onClick\"\n ) {{ item.titleFull}}\n\n\n\n\n\n","\n.coursesItemProgramCompactLessonComponent(:class=\"[lessonClasses, invariantClasses]\")\n .header(@click=\"onHeaderClick\")\n .top\n .title {{ item.titleFull }}\n ui-badge.badge(color=\"background\") {{lessonBadgeText}}\n .collapse\n ui-svg-icon(name=\"accordion-arrow\")\n .info(v-if=\"showInfo\")\n .section(v-if=\"item.stagesCountLecture\")\n .icon\n ui-svg-icon(name=\"lectures\")\n .text {{ stagesCountLectureText }}\n .section(v-if=\"item.stagesCountTest\")\n .icon\n ui-svg-icon(name=\"tests\")\n .text {{ stagesCountTestText }}\n slide-up-down(\n v-model=\"isOpened\"\n :duration=\"200\"\n )\n .content\n courses-item-program-compact-stage.stage(\n v-for=\"(topic, index) in filteredStages\"\n :key=\"index\"\n :item=\"topic\"\n :controller=\"controller\"\n :is-invariant=\"item.isInvariant\"\n )\n\n\n\n\n","\n.coursesItemProgramCompactComponent\n courses-item-program-compact-lesson.lesson(\n v-for=\"(item, index) in filteredLessons\"\n :key=\"index\"\n :item=\"item\"\n :controller=\"controller\"\n )\n\n\n\n\n","\n.coursesItemLandingAuthorsItemComponent\n .image(:style=\"imageStyles\")\n .bottom\n .name {{ author.name }}\n .position(v-if=\"author.position\") {{ author.position }}\n\n\n\n\n\n","\n.coursesItemLandingAuthorsComponent\n ui-slider(:config=\"sliderConfig\")\n ui-slider-slide(\n v-for=\"author in authors\"\n :key=\"author.id\"\n )\n courses-item-landing-authors-item(:author=\"author\")\n\n\n\n","\n.coursesItemLandingComponent(v-if=\"course\")\n ui-back-button(name=\"CoursesList\") Витрина курсов\n\n .header\n courses-item-landing-header(:controller=\"controller\")\n\n .nav\n courses-item-landing-navigation(:items=\"navigationItems\")\n\n //- template(v-if=\"controller.isStatesShown.value\")\n //- landing-section(title=\"Ваше обучение\" hash=\"states\")\n //- courses-item-own-course-states(:controller=\"controller.currentStatesController\")\n\n template(v-if=\"course.descriptionFull\")\n landing-section(title=\"Описание курса\" hash=\"description\")\n courses-item-landing-description(\n :text=\"course.descriptionFull\"\n :button-color=\"course.profile?.code\"\n )\n\n //- template(v-if=\"isSignupFlowsShown\")\n //- landing-section(title=\"Записаться на поток\" hash=\"flows\")\n //- courses-item-signup-flows(:controller=\"controller\")\n\n template(v-if=\"course.requirements.length\")\n landing-section(title=\"Требования для прохождения курса\")\n courses-item-landing-requirements(:items=\"course.requirements\")\n\n //- template(v-if=\"course.aquirements.length\")\n //- landing-section(title=\"После курса вы получите\")\n //- courses-item-landing-aquirements(:items=\"course.aquirements\")\n\n landing-section(title=\"Программа курса\" hash=\"program\")\n template(v-if=\"course.isCompact\")\n courses-item-program-compact(\n :structure=\"course.lessons\"\n :controller=\"controller.stateController\"\n )\n template(v-else)\n courses-item-program(\n :structure=\"course.modules\"\n :controller=\"controller.stateController\"\n )\n\n template(v-if=\"course.authors.length\")\n landing-section(title=\"Лекторы курса\" hash=\"authors\")\n courses-item-landing-authors(:authors=\"course.authors\")\n\n\n\n\n\n\n","import { computed, ref } from 'vue'\nimport useApiRequest from '@core/hooks/useApiRequest'\nimport CourseStateStudent from '@courses/models/CourseStateStudent'\nimport { fetchCurrentCourseStates } from '@courses/services/course'\n\nconst CoursesItemCurrentStatesController = (courseId: number) => {\n // Data\n const items = ref([])\n\n const statesRequest = useApiRequest(fetchCurrentCourseStates)\n\n statesRequest.$on('success', responseData => {\n items.value = responseData ? responseData.map(o => new CourseStateStudent(o)) : []\n })\n\n const request = async () => {\n await statesRequest.request(courseId)\n }\n\n return {\n items,\n isLoading: computed(() => statesRequest.isLoading),\n request\n }\n}\n\nexport default CoursesItemCurrentStatesController\n","import type { ISelectOption } from '@/components/_ui/types'\nimport { computed } from 'vue'\nimport type CoursesItemController from '../CoursesItemController'\nimport type CoursesItemStateController from '../CoursesItemStateController'\nimport type CoursesItemCurrentStatesController from './CoursesItemCurrentStatesController'\n\nexport interface LandingNavItem {\n label: string\n hash: string\n}\n\nconst CoursesItemLandingController = (\n courseController: ReturnType,\n stateController: ReturnType,\n currentStatesController: ReturnType\n) => {\n // Computed\n const course = computed(() => courseController.data.value)\n const state = computed(() => stateController.data.value)\n const states = computed(() => currentStatesController.items.value)\n\n const _currentFlowsIds = computed(() => states.value.map(s => s.flow.id))\n\n // доступные для записи потоки\n const signupFlowsOptions = computed(\n () =>\n course.value?.flows\n .filter(f => !f.isFinished)\n .filter(f => !_currentFlowsIds.value.includes(f.id))\n .map(f => ({\n label: `${f.name}: ${f.datesFormatted}`,\n value: f.id\n })) ?? []\n )\n\n const canSignup = computed(\n () => !state.value || (state.value.accessNone && !state.value.isPermitted)\n )\n // Можно записаться только если курс не начат\n // Если курс завершен или провален, то записаться на другой поток нельзя\n\n const isSignupFlowsShown = computed(() => canSignup.value && signupFlowsOptions.value.length > 0)\n const isStatesShown = computed(() => states.value.length > 1)\n\n // Navigation Items\n const navigationItems = computed(() => {\n const items = []\n if (isStatesShown.value) items.push({ label: 'Ваше обучение', hash: 'states' })\n if (course.value?.descriptionFull) items.push({ label: 'Чему научитесь', hash: 'description' })\n items.push({ label: 'Программа', hash: 'program' })\n if (course.value?.authors.length) items.push({ label: 'Лекторы курса', hash: 'authors' })\n if (course.value?.reviews.length) items.push({ label: 'Отзывы', hash: 'reviews' })\n return items\n })\n\n // Actions\n const onSignupHandler = (flowId: number) => {\n if (courseController.isSigningUp.value) return\n courseController.signup(flowId)\n }\n\n return {\n // controllers\n courseController,\n stateController,\n currentStatesController,\n\n // data\n course,\n state,\n states,\n\n navigationItems,\n canSignup,\n isSignupFlowsShown,\n signupFlowsOptions,\n isStatesShown,\n\n // actions\n onSignupHandler\n }\n}\n\nexport default CoursesItemLandingController\n","\n.coursesItemLandingPage\n //- test-component(\n //- :course-controller=\"courseController\"\n //- :state-controller=\"stateController\"\n //- :current-states-controller=\"currentStatesController\"\n //- :landing-controller=\"landingController\"\n //- )\n\n course-item-landing(\n :controller=\"landingController\"\n )\n\n\n\n"],"names":["computed"],"mappings":"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"}