{"version":3,"sources":["webpack:///./src/services/Tutorials/GetTutorialList.js","webpack:///./src/services/Contents/PostClaimsList.js","webpack:///./src/services/YoutubeChannelInformation/PostYoutubeChannelInformation.js","webpack:///./src/store/youtubeStore.js","webpack:///./src/views/VVVNew/VVVTutorialsNew.vue","webpack:///./src/views/VVVNew/VVVTutorialsNew.vue?7c6a","webpack:///./node_modules/vuejs-paginate-next/dist/vuejs-paginate-next.es.js","webpack:///./src/helpers/youtubeScraper.js","webpack:///./src/views/VVVNew/VVVTutorialsNew.vue?6f51","webpack:///./src/assets/VVV/vvv-loader.png"],"names":["GetVideoTutorialList","async","pageNumber","data","HttpClient","get","params","Promise","resolve","err","reject","PostClaimsList","post","claimsList","PostYoutubeChannelInformation","channelInfo","useYoutubeStore","defineStore","userDetailStore","useUserDetailStore","userDetail","storeToRefs","youtubeVideo","ref","id","url","title","thumbnail","thumbnailWidth","viewCount","channelId","channelName","channelThumbnail","youtubeChannelList","selectedYoutubeChannelId","setYoutubeVideo","videoResponse","fetchVideoDetails","videoUrl","channelDetails","fetchChannelDetails","value","videoId","thumbnailUrl","channelTitle","resetYoutubeVideo","resetYoutubeChannel","resetClipList","clipList","clipTitle","startTime","endTime","clipURL","description","class","errorMessage","displayText","ifHasUnsavedChanges","computed","getChannelNameFromSelection","find","channel","submitVideo","parseClipList","map","claim","TimeStamp","clipLink","postBody","youtubeChannel","name","youtubeUrl","AssetLabel","assetLabelName","claims","submitResponse","isAdded","youtubeVideoDuration","convertToMinutes","timeString","parts","split","Number","totalMinutes","length","hours","minutes","seconds","hasHour","videoDuration","useTitle","isAdmin","isSuperAdmin","youtubeStore","isLoading","toastObject","state","message","color","icon","tutorialList","tutorialListPagination","currentPage","handlePage","currentPageValue","getVideoTutorialList","response","tutorial","showOptions","pagination","error","console","onMounted","previewVideo","ytLink","isYouTubeUrl","youtubeVideoIframe","getYoutubeVideoIframe","videoLink","extractVideoId","tutorialModal","addVideoTutorial","tutorialData","link","axios","status","toggleOptions","index","deleteModal","tutorialToDelete","openDeleteModal","deleteTutorial","patch","editTutorialModal","editVideoUrl","editDescription","currentTutorialId","openEditModal","updateVideoTutorial","updatedData","isMobile","window","innerWidth","updateResolution","addEventListener","onBeforeUnmount","removeEventListener","viewTutorialModal","viewDescription","openVideoModal","videoDescription","watch","addModalValue","editModalValue","viewModalValue","__exports__","_export_sfc","sfc","props","target","__vccOpts","key","val","_sfc_main","innerValue","modelValue","type","pageCount","required","initialPage","default","forcePage","clickHandler","Function","pageRange","marginPages","prevText","String","nextText","breakViewText","containerClass","pageClass","pageLinkClass","prevClass","prevLinkClass","nextClass","nextLinkClass","breakViewClass","breakViewLinkClass","activeClass","disabledClass","noLiSurround","Boolean","firstLastButton","firstButtonText","lastButtonText","hidePrevNext","selected","this","set","newValue","pages","items","page","content","halfPageRange","Math","floor","setPageItem","setBreakView","breakView","disabled","i","selectedRangeLow","selectedRangeHigh","methods","$emit","handlePageSelected","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","onClick","$event","selectFirstPage","onKeyup","firstPageSelected","tabindex","innerHTML","prevPage","$slots","lastPageSelected","nextPage","selectLastPage","Paginate","apiKey","youtubePattern","test","urlObj","URL","hostname","toLowerCase","pathname","substring","searchParams","videoIdPattern","match","videoDetails","snippet","thumbnails","high","width","duration","convertYTVideoDuration","contentDetails","formatCount","statistics","subscriberCount","toFixed","toString","hoursMatch","minutesMatch","secondsMatch","parseInt","pad","num","padStart","formattedDuration","fetchChannelIdFromUrl","youtubeChannelUrl","fetchChannelDetailsDirectly","channelData","channelUsername","customUrl","fetchChannelDetailsBatch","channelIds","join","module","exports"],"mappings":"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","file":"js/chunk-a36071ea.d0516737.js","sourcesContent":["import { HttpClient } from \"../HttpClient\";\r\n\r\nexport const GetVideoTutorialList = async (pageNumber = 1) => {\r\n try {\r\n const { data } = await HttpClient.get(`api/Tutorials/List`, {\r\n params: { pageNumber },\r\n });\r\n return await Promise.resolve(data);\r\n } catch (err) {\r\n return Promise.reject(err);\r\n }\r\n};\r\n","import { HttpClient } from \"../HttpClient\";\r\n/**\r\n * * Post Claims List\r\n */\r\nexport const PostClaimsList = async (claimsList) => {\r\n try {\r\n const { data } = await HttpClient.post(\"api/contents/ClaimsList\", {\r\n ...claimsList,\r\n });\r\n return await Promise.resolve(data);\r\n } catch (err) {\r\n return Promise.reject(err);\r\n }\r\n};\r\n","import { HttpClient } from \"../HttpClient\";\r\n/**\r\n * * Post Youtube Channel Information\r\n */\r\nexport const PostYoutubeChannelInformation = async (channelInfo) => {\r\n try {\r\n const { data } = await HttpClient.post(`api/YoutubeChannelInformation`, {\r\n ...channelInfo,\r\n });\r\n return await Promise.resolve(data);\r\n } catch (err) {\r\n return Promise.reject(err);\r\n }\r\n};\r\n","import { defineStore, storeToRefs } from \"pinia\";\r\nimport { computed, ref } from \"vue\";\r\nimport {\r\n fetchVideoDetails,\r\n fetchChannelDetails,\r\n} from \"@/helpers/youtubeScraper\";\r\nimport { PostClaimsList } from \"../services/Contents/PostClaimsList\";\r\nimport { useUserDetailStore } from \"@/store/userDetailStore\";\r\nimport { PostYoutubeChannelInformation } from \"@/services/YoutubeChannelInformation/PostYoutubeChannelInformation\";\r\n\r\nexport const useYoutubeStore = defineStore(\"youtube\", () => {\r\n const userDetailStore = useUserDetailStore();\r\n const { userDetail } = storeToRefs(userDetailStore);\r\n\r\n const youtubeVideo = ref({\r\n id: \"\",\r\n url: \"\",\r\n title: \"\",\r\n thumbnail: \"\",\r\n thumbnailWidth: \"\",\r\n viewCount: null,\r\n channelId: \"\",\r\n channelName: \"\",\r\n channelThumbnail: \"\",\r\n });\r\n const youtubeChannelList = ref([]);\r\n const selectedYoutubeChannelId = ref(\"GetFromVideo\");\r\n const setYoutubeVideo = async (videoUrl) => {\r\n const videoResponse = await fetchVideoDetails(videoUrl);\r\n const channelDetails = await fetchChannelDetails(\r\n videoResponse.channelId\r\n );\r\n youtubeVideo.value = {\r\n id: videoResponse.videoId,\r\n url: videoUrl,\r\n title: videoResponse.title,\r\n thumbnail: videoResponse.thumbnailUrl,\r\n thumbnailWidth: videoResponse.thumbnailWidth,\r\n viewCount: videoResponse.viewCount,\r\n channelId: videoResponse.channelId,\r\n channelName: videoResponse.channelTitle,\r\n channelThumbnail: channelDetails.thumbnail,\r\n };\r\n };\r\n const resetYoutubeVideo = () => {\r\n youtubeVideo.value = {\r\n id: \"\",\r\n url: \"\",\r\n title: \"\",\r\n thumbnail: \"\",\r\n thumbnailWidth: \"\",\r\n viewCount: null,\r\n channelId: \"\",\r\n };\r\n };\r\n const resetYoutubeChannel = () => {\r\n selectedYoutubeChannelId.value = null;\r\n };\r\n const resetClipList = () => {\r\n clipList.value = [\r\n {\r\n clipTitle: \"\",\r\n startTime: \"\",\r\n endTime: \"\",\r\n clipURL: \"\",\r\n description: \"\",\r\n class: {\r\n clipTitle: \"form-control\",\r\n startTime: \"form-control\",\r\n endTime: \"form-control\",\r\n clipURL: \"form-control\",\r\n },\r\n errorMessage: {\r\n clipTitle: { class: \"d-none\", displayText: \"\" },\r\n startTime: { class: \"d-none\", displayText: \"\" },\r\n endTime: { class: \"d-none\", displayText: \"\" },\r\n clipURL: { class: \"d-none\", displayText: \"\" },\r\n },\r\n },\r\n ];\r\n };\r\n const ifHasUnsavedChanges = computed(\r\n () =>\r\n youtubeVideo.value.id !== \"\" ||\r\n youtubeVideo.value.url !== \"\" ||\r\n youtubeVideo.value.title !== \"\" ||\r\n youtubeVideo.value.thumbnail !== \"\" ||\r\n youtubeVideo.value.thumbnailWidth !== \"\" ||\r\n youtubeVideo.value.viewCount !== null\r\n );\r\n const clipList = ref([\r\n {\r\n clipTitle: \"\",\r\n startTime: \"\",\r\n endTime: \"\",\r\n clipURL: \"\",\r\n description: \"\",\r\n class: {\r\n clipTitle: \"form-control\",\r\n startTime: \"form-control\",\r\n endTime: \"form-control\",\r\n clipURL: \"form-control\",\r\n },\r\n errorMessage: {\r\n clipTitle: { class: \"d-none\", displayText: \"\" },\r\n startTime: { class: \"d-none\", displayText: \"\" },\r\n endTime: { class: \"d-none\", displayText: \"\" },\r\n clipURL: { class: \"d-none\", displayText: \"\" },\r\n },\r\n },\r\n ]);\r\n const getChannelNameFromSelection = computed(() => {\r\n return youtubeChannelList.value.find(\r\n (channel) => channel.channelId == selectedYoutubeChannelId.value\r\n );\r\n });\r\n const submitVideo = async () => {\r\n const parseClipList = clipList.value.map((claim) => {\r\n return {\r\n TimeStamp: `${claim.startTime}-${claim.endTime}`,\r\n clipLink: claim.clipURL,\r\n clipTitle: claim.clipTitle,\r\n };\r\n });\r\n const postBody = {\r\n youtubeChannel:\r\n selectedYoutubeChannelId.value == \"GetFromVideo\"\r\n ? youtubeVideo.value.channelName\r\n : getChannelNameFromSelection.value.name,\r\n youtubeUrl: youtubeVideo.value.url,\r\n AssetLabel: userDetail.value.assetLabelName,\r\n claims: parseClipList,\r\n };\r\n const submitResponse = await PostClaimsList(postBody);\r\n if (submitResponse) {\r\n if (selectedYoutubeChannelId.value == \"GetFromVideo\") {\r\n await PostYoutubeChannelInformation({\r\n channelId: youtubeVideo.value.channelId,\r\n name: youtubeVideo.value.channelName,\r\n thumbnail: youtubeVideo.value.channelThumbnail,\r\n });\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n const isAdded = ref(false);\r\n const youtubeVideoDuration = ref(null);\r\n const convertToMinutes = (timeString) => {\r\n const parts = timeString.split(\":\").map(Number);\r\n let totalMinutes = 0;\r\n\r\n if (parts.length === 3) {\r\n const [hours, minutes, seconds] = parts;\r\n totalMinutes = hours * 60 + minutes + seconds / 60;\r\n } else if (parts.length === 2) {\r\n const [minutes, seconds] = parts;\r\n totalMinutes = minutes + seconds / 60;\r\n } else if (parts.length === 1) {\r\n const [seconds] = parts;\r\n totalMinutes = seconds / 60;\r\n }\r\n\r\n return totalMinutes;\r\n };\r\n const hasHour = (videoDuration) => {\r\n return videoDuration.split(\":\").length === 3;\r\n };\r\n return {\r\n youtubeVideo,\r\n youtubeChannelList,\r\n selectedYoutubeChannelId,\r\n setYoutubeVideo,\r\n resetYoutubeVideo,\r\n resetYoutubeChannel,\r\n resetClipList,\r\n ifHasUnsavedChanges,\r\n clipList,\r\n submitVideo,\r\n isAdded,\r\n youtubeVideoDuration,\r\n convertToMinutes,\r\n hasHour,\r\n };\r\n});\r\n","\r\n\r\n\r\n\r\n\r\n","import script from \"./VVVTutorialsNew.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./VVVTutorialsNew.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./VVVTutorialsNew.vue?vue&type=style&index=0&id=725c5acb&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\CSD.SPA\\\\ClientApp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-725c5acb\"]])\n\nexport default __exports__","import { openBlock, createElementBlock, normalizeClass, createElementVNode, withKeys, createCommentVNode, Fragment, renderList, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main = {\n data() {\n return {\n innerValue: 1\n };\n },\n props: {\n modelValue: {\n type: Number\n },\n pageCount: {\n type: Number,\n required: true\n },\n initialPage: {\n type: Number,\n default: 1\n },\n forcePage: {\n type: Number\n },\n clickHandler: {\n type: Function,\n default: () => {\n }\n },\n pageRange: {\n type: Number,\n default: 3\n },\n marginPages: {\n type: Number,\n default: 1\n },\n prevText: {\n type: String,\n default: \"Prev\"\n },\n nextText: {\n type: String,\n default: \"Next\"\n },\n breakViewText: {\n type: String,\n default: \"\\u2026\"\n },\n containerClass: {\n type: String,\n default: \"pagination\"\n },\n pageClass: {\n type: String,\n default: \"page-item\"\n },\n pageLinkClass: {\n type: String,\n default: \"page-link\"\n },\n prevClass: {\n type: String,\n default: \"page-item\"\n },\n prevLinkClass: {\n type: String,\n default: \"page-link\"\n },\n nextClass: {\n type: String,\n default: \"page-item\"\n },\n nextLinkClass: {\n type: String,\n default: \"page-link\"\n },\n breakViewClass: {\n type: String\n },\n breakViewLinkClass: {\n type: String\n },\n activeClass: {\n type: String,\n default: \"active\"\n },\n disabledClass: {\n type: String,\n default: \"disabled\"\n },\n noLiSurround: {\n type: Boolean,\n default: false\n },\n firstLastButton: {\n type: Boolean,\n default: false\n },\n firstButtonText: {\n type: String,\n default: \"First\"\n },\n lastButtonText: {\n type: String,\n default: \"Last\"\n },\n hidePrevNext: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n selected: {\n get: function() {\n return this.modelValue || this.innerValue;\n },\n set: function(newValue) {\n this.innerValue = newValue;\n }\n },\n pages: function() {\n let items = {};\n if (this.pageCount <= this.pageRange) {\n for (let index = 0; index < this.pageCount; index++) {\n let page = {\n index,\n content: index + 1,\n selected: index === this.selected - 1\n };\n items[index] = page;\n }\n } else {\n const halfPageRange = Math.floor(this.pageRange / 2);\n let setPageItem = (index) => {\n let page = {\n index,\n content: index + 1,\n selected: index === this.selected - 1\n };\n items[index] = page;\n };\n let setBreakView = (index) => {\n let breakView = {\n disabled: true,\n breakView: true\n };\n items[index] = breakView;\n };\n for (let i = 0; i < this.marginPages; i++) {\n setPageItem(i);\n }\n let selectedRangeLow = 0;\n if (this.selected - halfPageRange > 0) {\n selectedRangeLow = this.selected - 1 - halfPageRange;\n }\n let selectedRangeHigh = selectedRangeLow + this.pageRange - 1;\n if (selectedRangeHigh >= this.pageCount) {\n selectedRangeHigh = this.pageCount - 1;\n selectedRangeLow = selectedRangeHigh - this.pageRange + 1;\n }\n for (let i = selectedRangeLow; i <= selectedRangeHigh && i <= this.pageCount - 1; i++) {\n setPageItem(i);\n }\n if (selectedRangeLow > this.marginPages) {\n setBreakView(selectedRangeLow - 1);\n }\n if (selectedRangeHigh + 1 < this.pageCount - this.marginPages) {\n setBreakView(selectedRangeHigh + 1);\n }\n for (let i = this.pageCount - 1; i >= this.pageCount - this.marginPages; i--) {\n setPageItem(i);\n }\n }\n return items;\n }\n },\n methods: {\n handlePageSelected(selected) {\n if (this.selected === selected)\n return;\n this.innerValue = selected;\n this.$emit(\"update:modelValue\", selected);\n this.clickHandler(selected);\n },\n prevPage() {\n if (this.selected <= 1)\n return;\n this.handlePageSelected(this.selected - 1);\n },\n nextPage() {\n if (this.selected >= this.pageCount)\n return;\n this.handlePageSelected(this.selected + 1);\n },\n firstPageSelected() {\n return this.selected === 1;\n },\n lastPageSelected() {\n return this.selected === this.pageCount || this.pageCount === 0;\n },\n selectFirstPage() {\n if (this.selected <= 1)\n return;\n this.handlePageSelected(1);\n },\n selectLastPage() {\n if (this.selected >= this.pageCount)\n return;\n this.handlePageSelected(this.pageCount);\n }\n },\n beforeMount() {\n this.innerValue = this.initialPage;\n },\n beforeUpdate() {\n if (this.forcePage === void 0)\n return;\n if (this.forcePage !== this.selected) {\n this.selected = this.forcePage;\n }\n }\n};\nconst _hoisted_1 = [\"tabindex\", \"innerHTML\"];\nconst _hoisted_2 = [\"tabindex\", \"innerHTML\"];\nconst _hoisted_3 = [\"onClick\", \"onKeyup\"];\nconst _hoisted_4 = [\"tabindex\", \"innerHTML\"];\nconst _hoisted_5 = [\"tabindex\", \"innerHTML\"];\nconst _hoisted_6 = [\"innerHTML\"];\nconst _hoisted_7 = [\"innerHTML\"];\nconst _hoisted_8 = [\"onClick\", \"onKeyup\"];\nconst _hoisted_9 = [\"innerHTML\"];\nconst _hoisted_10 = [\"innerHTML\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return !$props.noLiSurround ? (openBlock(), createElementBlock(\"ul\", {\n key: 0,\n class: normalizeClass($props.containerClass)\n }, [\n $props.firstLastButton ? (openBlock(), createElementBlock(\"li\", {\n key: 0,\n class: normalizeClass([$props.pageClass, $options.firstPageSelected() ? $props.disabledClass : \"\"])\n }, [\n createElementVNode(\"a\", {\n onClick: _cache[0] || (_cache[0] = ($event) => $options.selectFirstPage()),\n onKeyup: _cache[1] || (_cache[1] = withKeys(($event) => $options.selectFirstPage(), [\"enter\"])),\n class: normalizeClass($props.pageLinkClass),\n tabindex: $options.firstPageSelected() ? -1 : 0,\n innerHTML: $props.firstButtonText\n }, null, 42, _hoisted_1)\n ], 2)) : createCommentVNode(\"\", true),\n !($options.firstPageSelected() && $props.hidePrevNext) ? (openBlock(), createElementBlock(\"li\", {\n key: 1,\n class: normalizeClass([$props.prevClass, $options.firstPageSelected() ? $props.disabledClass : \"\"])\n }, [\n createElementVNode(\"a\", {\n onClick: _cache[2] || (_cache[2] = ($event) => $options.prevPage()),\n onKeyup: _cache[3] || (_cache[3] = withKeys(($event) => $options.prevPage(), [\"enter\"])),\n class: normalizeClass($props.prevLinkClass),\n tabindex: $options.firstPageSelected() ? -1 : 0,\n innerHTML: $props.prevText\n }, null, 42, _hoisted_2)\n ], 2)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.pages, (page) => {\n return openBlock(), createElementBlock(\"li\", {\n key: page.index,\n class: normalizeClass([$props.pageClass, page.selected ? $props.activeClass : \"\", page.disabled ? $props.disabledClass : \"\", page.breakView ? $props.breakViewClass : \"\"])\n }, [\n page.breakView ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: normalizeClass([$props.pageLinkClass, $props.breakViewLinkClass]),\n tabindex: \"0\"\n }, [\n renderSlot(_ctx.$slots, \"breakViewContent\", {}, () => [\n createTextVNode(toDisplayString($props.breakViewText), 1)\n ])\n ], 2)) : page.disabled ? (openBlock(), createElementBlock(\"a\", {\n key: 1,\n class: normalizeClass($props.pageLinkClass),\n tabindex: \"0\"\n }, toDisplayString(page.content), 3)) : (openBlock(), createElementBlock(\"a\", {\n key: 2,\n onClick: ($event) => $options.handlePageSelected(page.index + 1),\n onKeyup: withKeys(($event) => $options.handlePageSelected(page.index + 1), [\"enter\"]),\n class: normalizeClass($props.pageLinkClass),\n tabindex: \"0\"\n }, toDisplayString(page.content), 43, _hoisted_3))\n ], 2);\n }), 128)),\n !($options.lastPageSelected() && $props.hidePrevNext) ? (openBlock(), createElementBlock(\"li\", {\n key: 2,\n class: normalizeClass([$props.nextClass, $options.lastPageSelected() ? $props.disabledClass : \"\"])\n }, [\n createElementVNode(\"a\", {\n onClick: _cache[4] || (_cache[4] = ($event) => $options.nextPage()),\n onKeyup: _cache[5] || (_cache[5] = withKeys(($event) => $options.nextPage(), [\"enter\"])),\n class: normalizeClass($props.nextLinkClass),\n tabindex: $options.lastPageSelected() ? -1 : 0,\n innerHTML: $props.nextText\n }, null, 42, _hoisted_4)\n ], 2)) : createCommentVNode(\"\", true),\n $props.firstLastButton ? (openBlock(), createElementBlock(\"li\", {\n key: 3,\n class: normalizeClass([$props.pageClass, $options.lastPageSelected() ? $props.disabledClass : \"\"])\n }, [\n createElementVNode(\"a\", {\n onClick: _cache[6] || (_cache[6] = ($event) => $options.selectLastPage()),\n onKeyup: _cache[7] || (_cache[7] = withKeys(($event) => $options.selectLastPage(), [\"enter\"])),\n class: normalizeClass($props.pageLinkClass),\n tabindex: $options.lastPageSelected() ? -1 : 0,\n innerHTML: $props.lastButtonText\n }, null, 42, _hoisted_5)\n ], 2)) : createCommentVNode(\"\", true)\n ], 2)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: normalizeClass($props.containerClass)\n }, [\n $props.firstLastButton ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n onClick: _cache[8] || (_cache[8] = ($event) => $options.selectFirstPage()),\n onKeyup: _cache[9] || (_cache[9] = withKeys(($event) => $options.selectFirstPage(), [\"enter\"])),\n class: normalizeClass([$props.pageLinkClass, $options.firstPageSelected() ? $props.disabledClass : \"\"]),\n tabindex: \"0\",\n innerHTML: $props.firstButtonText\n }, null, 42, _hoisted_6)) : createCommentVNode(\"\", true),\n !($options.firstPageSelected() && $props.hidePrevNext) ? (openBlock(), createElementBlock(\"a\", {\n key: 1,\n onClick: _cache[10] || (_cache[10] = ($event) => $options.prevPage()),\n onKeyup: _cache[11] || (_cache[11] = withKeys(($event) => $options.prevPage(), [\"enter\"])),\n class: normalizeClass([$props.prevLinkClass, $options.firstPageSelected() ? $props.disabledClass : \"\"]),\n tabindex: \"0\",\n innerHTML: $props.prevText\n }, null, 42, _hoisted_7)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.pages, (page) => {\n return openBlock(), createElementBlock(Fragment, null, [\n page.breakView ? (openBlock(), createElementBlock(\"a\", {\n key: page.index,\n class: normalizeClass([$props.pageLinkClass, $props.breakViewLinkClass, page.disabled ? $props.disabledClass : \"\"]),\n tabindex: \"0\"\n }, [\n renderSlot(_ctx.$slots, \"breakViewContent\", {}, () => [\n createTextVNode(toDisplayString($props.breakViewText), 1)\n ])\n ], 2)) : page.disabled ? (openBlock(), createElementBlock(\"a\", {\n key: page.index,\n class: normalizeClass([$props.pageLinkClass, page.selected ? $props.activeClass : \"\", $props.disabledClass]),\n tabindex: \"0\"\n }, toDisplayString(page.content), 3)) : (openBlock(), createElementBlock(\"a\", {\n key: page.index,\n onClick: ($event) => $options.handlePageSelected(page.index + 1),\n onKeyup: withKeys(($event) => $options.handlePageSelected(page.index + 1), [\"enter\"]),\n class: normalizeClass([$props.pageLinkClass, page.selected ? $props.activeClass : \"\"]),\n tabindex: \"0\"\n }, toDisplayString(page.content), 43, _hoisted_8))\n ], 64);\n }), 256)),\n !($options.lastPageSelected() && $props.hidePrevNext) ? (openBlock(), createElementBlock(\"a\", {\n key: 2,\n onClick: _cache[12] || (_cache[12] = ($event) => $options.nextPage()),\n onKeyup: _cache[13] || (_cache[13] = withKeys(($event) => $options.nextPage(), [\"enter\"])),\n class: normalizeClass([$props.nextLinkClass, $options.lastPageSelected() ? $props.disabledClass : \"\"]),\n tabindex: \"0\",\n innerHTML: $props.nextText\n }, null, 42, _hoisted_9)) : createCommentVNode(\"\", true),\n $props.firstLastButton ? (openBlock(), createElementBlock(\"a\", {\n key: 3,\n onClick: _cache[14] || (_cache[14] = ($event) => $options.selectLastPage()),\n onKeyup: _cache[15] || (_cache[15] = withKeys(($event) => $options.selectLastPage(), [\"enter\"])),\n class: normalizeClass([$props.pageLinkClass, $options.lastPageSelected() ? $props.disabledClass : \"\"]),\n tabindex: \"0\",\n innerHTML: $props.lastButtonText\n }, null, 42, _hoisted_10)) : createCommentVNode(\"\", true)\n ], 2));\n}\nvar Paginate = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport { Paginate as default };\n","import axios from \"axios\";\r\n\r\nconst apiKey = \"AIzaSyAHfRRvUqf-L2nT4nFFRVc1OyneC4D3-nE\"; // To be moved to environment variable\r\n\r\nexport const isYouTubeUrl = (url) => {\r\n const youtubePattern = /^(https?:\\/\\/)?(www\\.)?(youtube\\.com|youtu\\.be)\\/.+$/;\r\n return youtubePattern.test(url);\r\n};\r\n\r\nexport const extractVideoId = (url) => {\r\n try {\r\n const urlObj = new URL(url);\r\n const hostname = urlObj.hostname.toLowerCase();\r\n\r\n if (hostname === \"youtu.be\") {\r\n return urlObj.pathname.substring(1);\r\n }\r\n\r\n if (hostname === \"youtube.com\" || hostname === \"www.youtube.com\") {\r\n const videoId = urlObj.searchParams.get(\"v\");\r\n if (videoId) return videoId;\r\n }\r\n } catch (error) {\r\n const videoIdPattern =\r\n // eslint-disable-next-line no-useless-escape\r\n /(?:https?:\\/\\/)?(?:www\\.)?(?:youtube\\.com\\/(?:[^\\/\\n\\s]+\\/\\S+\\/|(?:v|e(?:mbed)?)\\/|\\S*?[?&]v=)|youtu\\.be\\/)([a-zA-Z0-9_-]{11})/;\r\n const match = url.match(videoIdPattern);\r\n return match ? match[1] : null;\r\n }\r\n\r\n // Return null if no method succeeds\r\n return null;\r\n};\r\n\r\nexport const fetchVideoDetails = async (videoUrl) => {\r\n if (!isYouTubeUrl(videoUrl)) {\r\n console.error(\"Invalid YouTube URL\");\r\n return;\r\n }\r\n const videoId = extractVideoId(videoUrl);\r\n if (!videoId) {\r\n console.error(\"Invalid YouTube URL\");\r\n return false;\r\n }\r\n const url = `https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=${videoId}&key=${apiKey}`;\r\n\r\n try {\r\n const response = await axios.get(url);\r\n const videoDetails = response.data.items[0];\r\n\r\n const title = videoDetails.snippet.title;\r\n const channelTitle = videoDetails.snippet.channelTitle;\r\n const channelId = videoDetails.snippet.channelId;\r\n const thumbnailUrl = videoDetails.snippet.thumbnails.high.url;\r\n const thumbnailWidth = videoDetails.snippet.thumbnails.high.width;\r\n const duration = convertYTVideoDuration(\r\n videoDetails.contentDetails.duration\r\n );\r\n const viewCount = formatCount(videoDetails.statistics.viewCount);\r\n\r\n return await Promise.resolve({\r\n videoId,\r\n title,\r\n channelTitle,\r\n channelId,\r\n thumbnailUrl,\r\n thumbnailWidth,\r\n duration,\r\n viewCount,\r\n });\r\n } catch (err) {\r\n return Promise.reject(err);\r\n }\r\n};\r\n\r\nexport const fetchChannelDetails = async (channelId) => {\r\n const url = `https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&id=${channelId}&key=${apiKey}`;\r\n\r\n try {\r\n const response = await axios.get(url);\r\n const channelDetails = response.data.items[0];\r\n const id = channelDetails.id;\r\n const title = channelDetails.snippet.title;\r\n const thumbnail = channelDetails.snippet.thumbnails.default.url;\r\n const subscriberCount = formatCount(\r\n channelDetails.statistics.subscriberCount\r\n );\r\n\r\n return await Promise.resolve({\r\n id,\r\n title,\r\n thumbnail,\r\n subscriberCount,\r\n });\r\n } catch (err) {\r\n return Promise.reject(err);\r\n }\r\n};\r\n\r\nconst formatCount = (subscriberCount) => {\r\n if (subscriberCount >= 1000000) {\r\n return (subscriberCount / 1000000).toFixed(1) + \"M\";\r\n } else if (subscriberCount >= 1000) {\r\n return (subscriberCount / 1000).toFixed(1) + \"K\";\r\n } else {\r\n return subscriberCount.toString();\r\n }\r\n};\r\n\r\nconst convertYTVideoDuration = (duration) => {\r\n let hours = 0,\r\n minutes = 0,\r\n seconds = 0;\r\n\r\n const hoursMatch = duration.match(/(\\d+)H/);\r\n const minutesMatch = duration.match(/(\\d+)M/);\r\n const secondsMatch = duration.match(/(\\d+)S/);\r\n\r\n if (hoursMatch) hours = parseInt(hoursMatch[1]);\r\n if (minutesMatch) minutes = parseInt(minutesMatch[1]);\r\n if (secondsMatch) seconds = parseInt(secondsMatch[1]);\r\n\r\n const pad = (num) => num.toString().padStart(2, \"0\");\r\n\r\n let formattedDuration;\r\n if (hours > 0) {\r\n formattedDuration = `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;\r\n } else if (minutes > 0) {\r\n formattedDuration = `${pad(minutes)}:${pad(seconds)}`;\r\n } else {\r\n formattedDuration = `${seconds}`;\r\n }\r\n\r\n return formattedDuration;\r\n};\r\n\r\nexport const fetchChannelIdFromUrl = async (youtubeChannelUrl) => {\r\n const url = `https://www.googleapis.com/youtube/v3/search?part=snippet&q=${youtubeChannelUrl}&type=channel&key=${apiKey}`;\r\n\r\n try {\r\n const response = await axios.get(url);\r\n const channel = response.data.items[0];\r\n\r\n if (channel) {\r\n return channel.id.channelId;\r\n } else {\r\n console.error(\"Channel not found for the provided username.\");\r\n return null;\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching channel ID:\", error);\r\n return [];\r\n }\r\n};\r\n\r\nexport const fetchChannelDetailsDirectly = async (youtubeChannelUrl) => {\r\n const channelId = await fetchChannelIdFromUrl(youtubeChannelUrl);\r\n\r\n if (!channelId) {\r\n console.error(\"Channel ID could not be found.\");\r\n return null;\r\n }\r\n\r\n const url = `https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&id=${channelId}&key=${apiKey}`;\r\n\r\n try {\r\n const response = await axios.get(url);\r\n const channelData = response.data.items[0];\r\n\r\n const channelDetails = {\r\n channelId: channelData.id,\r\n channelName: channelData.snippet.title,\r\n thumbnail: channelData.snippet.thumbnails.default.url,\r\n subscriberCount: formatCount(channelData.statistics.subscriberCount),\r\n channelUsername: channelData.snippet.customUrl,\r\n };\r\n\r\n return channelDetails;\r\n } catch (error) {\r\n console.error(\"Error fetching channel details:\", error);\r\n throw error;\r\n }\r\n};\r\n\r\nexport const fetchChannelDetailsBatch = async (channelIds) => {\r\n const url = `https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&id=${channelIds.join(\r\n \",\"\r\n )}&key=${apiKey}`;\r\n\r\n try {\r\n const response = await axios.get(url);\r\n if (!response.data.items || response.data.items.length === 0) {\r\n return [];\r\n }\r\n return response.data.items.map((channel) => ({\r\n channelId: channel.id,\r\n channelName: channel.snippet.title,\r\n thumbnail: channel.snippet.thumbnails.default.url,\r\n subscriberCount: formatCount(channel.statistics.subscriberCount),\r\n channelUsername: channel.snippet.customUrl,\r\n }));\r\n } catch (error) {\r\n console.error(\"Error in batch fetching channel details:\", error);\r\n return [];\r\n }\r\n};\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./VVVTutorialsNew.vue?vue&type=style&index=0&id=725c5acb&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/vvv-loader.6f59db4a.png\";"],"sourceRoot":""}