{"version":3,"sources":["wwwroot/scripts/products.core.js","wwwroot/scripts/pages/gpcourses/courses.js"],"names":["initializeProductDetailsPopup","productId","let","productDetailsApp","Vue","createApp","data","mainProductId","productDetail","productCfs","isContactSponsorPopup","isLoading","showPopup","methods","getProductDetailsByBcId","bcId","getBCAccessToken","then","$","ajax","url","API","method","dataType","beforeSend","xhr","setRequestHeader","accessToken","success","result","productDetailsMountedApp","push","getWebsiteUrl","product","website_url","customer_Contact_URL__c","trim","isValidUrl","getSessionDate","start","end","text","length","closeProductDetails","this","modal","computed","created","mount","gpCoursesApp","gpCourses","globalPartnerCourses","gpCoursesSuperset","gpCourseCountries","globalPartnerCourseCountries","coursesSuperset","Set","map","f","displayName","filter","checkIfNullOrEmpty","sort","countrySuperSet","country","a","b","toLowerCase","monthsSuperset","partnersSuperset","partner","modalitySuperset","modality","shortMonths","allMonths","selectedCourse","selectedCountry","selectedMonth","selectedPartner","selectedModality","coursePage","coursePerPage","coursesPerpage","coursePages","totalNumberofCoursePages","courseSkuQuery","modalityQuery","courseNotFound","getLocation","gpCourse","city__c","state__c","country__c","join","setMonthsSuperset","months","month","sortArrayWithArray","setCoursePages","courses","Math","ceil","pagination","paginate","items","page","perPage","slice","resetPagination","scrollOnPagination","resetAllFilters","renderGlobalPartnerCourses","dummySKU","ex","includes","sortedCourses","startDate","watch","mounted","gpCoursesMountedApp"],"mappings":"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","file":"courses.min.js","sourcesContent":["\r\nfunction initializeProductDetailsPopup(productId) {\r\n let productDetailsApp = Vue.createApp({\r\n data() {\r\n return {\r\n mainProductId: productId,\r\n productDetail: [],\r\n productCfs: null,\r\n isContactSponsorPopup: false,\r\n isLoading: false,\r\n showPopup: false\r\n }\r\n },\r\n methods: {\r\n getProductDetailsByBcId(bcId) {\r\n getBCAccessToken().then((accessToken) => {\r\n $.ajax({\r\n url: API + \"/api/products/course-details/\" + bcId,\r\n method: 'GET',\r\n dataType: \"json\",\r\n beforeSend: function (xhr) {\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);\r\n },\r\n success: function (result) {\r\n productDetailsMountedApp['id_' + productId].productDetail.push(result);\r\n productDetailsMountedApp['id_' + productId].isLoading = false;\r\n }\r\n })\r\n });\r\n },\r\n\r\n getWebsiteUrl(product) {\r\n let website_url = product.customer_Contact_URL__c?.trim();\r\n if (website_url) {\r\n if (!isValidUrl(website_url)) {\r\n website_url = \"https://\" + website_url;\r\n }\r\n }\r\n\r\n return website_url;\r\n },\r\n\r\n getSessionDate(start, end) {\r\n let text = '';\r\n\r\n if (start?.trim().length > 0) {\r\n text = start;\r\n\r\n if (end?.trim().length > 0 && start !== end) {\r\n text += ` - ${end}`;\r\n }\r\n } else if (end?.trim().length > 0) {\r\n text = end;\r\n }\r\n\r\n return text;\r\n },\r\n\r\n closeProductDetails() {\r\n $(\"#productDetails_\" + this.mainProductId + \" #product-details-popup\").modal('hide');\r\n },\r\n },\r\n computed: {\r\n\r\n },\r\n created() {\r\n\r\n },\r\n });\r\n\r\n productDetailsMountedApp['id_' + productId] = productDetailsApp.mount('#productDetails_' + productId);\r\n}","let gpCoursesApp = Vue.createApp({\r\n\r\n data() {\r\n return {\r\n gpCourses: globalPartnerCourses,\r\n gpCoursesSuperset: globalPartnerCourses,\r\n gpCourseCountries: globalPartnerCourseCountries,\r\n\r\n coursesSuperset: [...new Set(globalPartnerCourses.map(f => f.displayName))].filter(f => this.checkIfNullOrEmpty(f)).sort(),\r\n countrySuperSet: [...new Set(globalPartnerCourseCountries.sort())].filter(f => this.checkIfNullOrEmpty(f.country)).sort((a, b) => a.country.toLowerCase() > b.country.toLowerCase() ? 1 : a.country.toLowerCase() < b.country.toLowerCase() ? -1 : 0),\r\n monthsSuperset: [],\r\n partnersSuperset: [...new Set(globalPartnerCourses.map(f => f.partner))].filter(f => this.checkIfNullOrEmpty(f)).sort(),\r\n modalitySuperset: [...new Set(globalPartnerCourses.map(f => f.modality))].filter(f => this.checkIfNullOrEmpty(f)).sort(),\r\n\r\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n allMonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n\r\n selectedCourse: \"\",\r\n selectedCountry: \"\",\r\n selectedMonth: \"\",\r\n selectedPartner: \"\",\r\n selectedModality: [],\r\n\r\n coursePage: 1,\r\n coursePerPage: coursesPerpage,\r\n coursePages: [],\r\n totalNumberofCoursePages: 0,\r\n\r\n courseSkuQuery: courseSkuQuery,\r\n modalityQuery: modalityQuery,\r\n courseNotFound: \"courseNotFound\"\r\n }\r\n },\r\n\r\n methods: {\r\n\r\n checkIfNullOrEmpty(f) {\r\n return f != null && f != undefined && f != \"\";\r\n },\r\n\r\n getLocation(gpCourse) {\r\n return [...new Set([gpCourse.city__c, gpCourse.state__c, gpCourse.country__c])].filter(f => this.checkIfNullOrEmpty(f)).join(\", \");\r\n },\r\n\r\n setMonthsSuperset() {\r\n let months = [...new Set(globalPartnerCourses.map(f => f.month))].filter(f => this.checkIfNullOrEmpty(f));\r\n this.monthsSuperset = sortArrayWithArray(months, this.allMonths);\r\n },\r\n\r\n setCoursePages(courses) {\r\n this.coursePages = [];\r\n this.totalNumberofCoursePages = Math.ceil(courses.length / this.coursePerPage);\r\n this.coursePages = pagination(this.coursePage, this.totalNumberofCoursePages);\r\n },\r\n\r\n paginate(items, page, perPage) {\r\n let from = (page * perPage) - perPage;\r\n let to = (page * perPage);\r\n return items.slice(from, to);\r\n },\r\n\r\n resetPagination() {\r\n this.coursePage = 1;\r\n scrollOnPagination(\"globalPartnerCourses\");\r\n },\r\n\r\n resetAllFilters() {\r\n this.selectedCourse = ''; this.selectedCountry = ''; this.selectedMonth = ''; this.selectedPartner = ''; this.selectedModality = [];\r\n }\r\n },\r\n\r\n computed: {\r\n renderGlobalPartnerCourses() {\r\n\r\n try {\r\n if (this.courseSkuQuery != \"\") {\r\n this.selectedCourse = this.gpCoursesSuperset.filter(f => f.dummySKU == this.courseSkuQuery)[0].displayName;\r\n }\r\n } catch (ex) {\r\n //throws exception when the course name in query is not available in the superset.\r\n this.selectedCourse = this.courseNotFound;\r\n } finally {\r\n this.courseSkuQuery = \"\";\r\n }\r\n\r\n try {\r\n //modality should be applied only if courseSkuQuery is available in the superset.\r\n if (this.modalityQuery != \"\" && this.modalitySuperset.includes(this.modalityQuery)\r\n && this.selectedCourse != this.courseNotFound\r\n && (this.courseSkuQuery == \"\" || this.selectedCourse != \"\")) {\r\n this.selectedModality.push(this.modalityQuery);\r\n }\r\n } catch (ex) {\r\n\r\n } finally {\r\n this.modalityQuery = \"\";\r\n }\r\n\r\n let filteredCourses = this.gpCoursesSuperset\r\n .filter(f => this.selectedCourse == \"\" || f.displayName == this.selectedCourse)\r\n .filter(f => this.selectedCountry == \"\" || f.country == this.selectedCountry.country)\r\n .filter(f => this.selectedMonth == \"\" || f.month == this.selectedMonth)\r\n .filter(f => this.selectedPartner == \"\" || f.partner == this.selectedPartner)\r\n .filter(f => this.selectedModality.length == 0 || this.selectedModality.includes(f.modality));\r\n\r\n let sortedCourses = filteredCourses.sort(function (a, b) {\r\n return (a.startDate > b.startDate) ? 1 : -1;\r\n });\r\n\r\n this.setCoursePages(sortedCourses);\r\n this.gpCourses = sortedCourses;\r\n\r\n return this.paginate(sortedCourses, this.coursePage, this.coursePerPage);\r\n },\r\n },\r\n watch: {\r\n selectedCourse: function () { this.resetPagination(); },\r\n selectedCountry: function () { this.resetPagination(); },\r\n selectedMonth: function () { this.resetPagination(); },\r\n selectedPartner: function () { this.resetPagination(); },\r\n selectedModality: function () { this.resetPagination(); },\r\n coursePage: function () { scrollOnPagination(\"globalPartnerCourses\"); },\r\n },\r\n created() {\r\n this.setMonthsSuperset();\r\n },\r\n\r\n mounted() {\r\n }\r\n});\r\n\r\nlet gpCoursesMountedApp = gpCoursesApp.mount(\"#globalPartnerCoursesPage\");"]}