{"version":3,"sources":["wwwroot/scripts/widgets/dynamicCourses.js"],"names":["coursesApp","Vue","createApp","data","courses","coursePage","coursePerPage","numberOfCoursesPerPage","coursePages","totalNumberofCoursePages","deliveryChannels","selectedDelivery","topics","selectedTopic","methods","setCoursePages","this","Math","ceil","length","pagination","paginate","items","page","perPage","slice","setDeliveryChannel","courseDelivery","forEach","course","concat","productType","filter","item","i","ar","indexOf","setTopics","courseTopic","practiceArea","resetPages","onTopicChange","onDeliveryChange","computed","displayedCourses","filteredCourses","some","includes","watch","val","scrollOnPagination","created","setTimeout","$","prop","filters","trimWords","value","split","splice","join","coursesMountedApp","mount","document","querySelectorAll","t","addEventListener","event","targetClass","target","dataset","panes","sibling","classList","remove","pane","add"],"mappings":"AAAA,IAAAA,WAAAC,IAAAC,UAAA,CACAC,OACA,MAAA,CACAC,QAAAA,QACAC,WAAA,EACAC,cAAA,aAAA,OAAA,uBAAAC,uBAAA,EACAC,YAAA,GACAC,yBAAA,EACAC,iBAAA,GACAC,iBAAA,GACAC,OAAA,GACAC,cAAA,EACA,CACA,EACAC,QAAA,CACAC,eAAAX,GACAY,KAAAR,YAAA,GACAQ,KAAAP,yBAAAQ,KAAAC,KAAAd,EAAAe,OAAAH,KAAAV,aAAA,EACAU,KAAAR,YAAAY,WAAAJ,KAAAX,WAAAW,KAAAP,wBAAA,CACA,EAEAY,SAAAC,EAAAC,EAAAC,GAGA,OAAAF,EAAAG,MAFAF,EAAAC,EAAAA,EACAD,EAAAC,CACA,CACA,EAEAE,qBACA,IAAAC,EAAA,GACAX,KAAAZ,QAAAwB,QAAA,SAAAC,GACAF,EAAAA,EAAAG,OAAAD,EAAAE,WAAA,CACA,CAAA,EAEAf,KAAAN,iBAAAiB,EAAAK,OAAA,CAAAC,EAAAC,EAAAC,IAAAA,EAAAC,QAAAH,CAAA,IAAAC,CAAA,CACA,EAEAG,YACA,IAAAC,EAAA,GACAtB,KAAAZ,QAAAwB,QAAA,SAAAC,GACAS,EAAAA,EAAAR,OAAAD,EAAAU,YAAA,CACA,CAAA,EAEAvB,KAAAJ,OAAA0B,EAAAN,OAAA,CAAAC,EAAAC,EAAAC,IAAAA,EAAAC,QAAAH,CAAA,IAAAC,CAAA,CACA,EAEAM,aACAxB,KAAAX,WAAA,CACA,EAEAoC,gBACAzB,KAAAwB,WAAA,CACA,EAEAE,mBACA1B,KAAAwB,WAAA,CACA,CACA,EACAG,SAAA,CACAC,mBACA,IAAAC,EAAA7B,KAAAZ,QAAA4B,OAAA,SAAAC,GACA,OAAAjB,KAAAL,iBAAAmC,KAAAZ,GAAAD,EAAAF,YAAAgB,SAAAb,CAAA,CAAA,GAAA,IAAAlB,KAAAL,oBAAAsB,EAAAM,aAAAQ,SAAA/B,KAAAH,aAAA,GAAA,IAAAG,KAAAH,cACA,EAAAG,IAAA,EAEA,OADAA,KAAAD,eAAA8B,CAAA,EACA7B,KAAAK,SAAAwB,EAAA7B,KAAAX,WAAAW,KAAAV,aAAA,CACA,CACA,EACA0C,MAAA,CACA5C,UACAY,KAAAD,eAAA,CACA,EAEAV,WAAA,SAAA4C,GACAC,mBAAA,aAAA,CACA,CACA,EAEAC,UACAnC,KAAAU,mBAAA,EACAV,KAAAqB,UAAA,EACAe,WAAA,WACAC,EAAA,gCAAA,EAAAC,KAAA,UAAA,CAAA,CAAA,CACA,EAAA,GAAA,CACA,EACAC,QAAA,CACAC,UAAAC,GACA,OAAAA,EAAAC,MAAA,GAAA,EAAAC,OAAA,EAAA,EAAA,EAAAC,KAAA,GAAA,EAAA,KACA,CACA,CACA,CAAA,EAEAC,kBAAA7D,WAAA8D,MAAA,UAAA,EAEAC,SAAAC,iBAAA,8BAAA,EAAApC,QAAA,CAAAqC,EAAA/B,KACA+B,EAAAC,iBAAA,cAAA,SAAAC,GACAC,EAAAD,EAAAE,OAAAC,QAAA,SACAC,EAAAR,SAAAC,iBAAAI,CAAA,EACAL,SAAAC,iBAAA,uCAAA,EAEApC,QAAA,SAAA4C,GACAA,EAAAC,UAAAC,OAAA,MAAA,EACAF,EAAAC,UAAAC,OAAA,QAAA,CACA,CAAA,EAEAH,EAAA3C,QAAA,SAAA+C,GACAA,EAAAF,UAAAG,IAAA,MAAA,EACAD,EAAAF,UAAAG,IAAA,QAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA","file":"dynamicCourses.min.js","sourcesContent":["const coursesApp = Vue.createApp({\r\n data() {\r\n return {\r\n courses: courses,\r\n coursePage: 1,\r\n coursePerPage: typeof (numberOfCoursesPerPage) != \"undefined\" ? numberOfCoursesPerPage : 4,\r\n coursePages: [],\r\n totalNumberofCoursePages: 0,\r\n deliveryChannels: [],\r\n selectedDelivery: [],\r\n topics: [],\r\n selectedTopic: \"\"\r\n }\r\n },\r\n methods: {\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 setDeliveryChannel() {\r\n var courseDelivery = [];\r\n this.courses.forEach(function (course) {\r\n courseDelivery = courseDelivery.concat(course.productType);\r\n });\r\n\r\n this.deliveryChannels = courseDelivery.filter((item, i, ar) => ar.indexOf(item) === i);\r\n },\r\n\r\n setTopics() {\r\n var courseTopic = [];\r\n this.courses.forEach(function (course) {\r\n courseTopic = courseTopic.concat(course.practiceArea);\r\n });\r\n\r\n this.topics = courseTopic.filter((item, i, ar) => ar.indexOf(item) === i);\r\n },\r\n\r\n resetPages() {\r\n this.coursePage = 1;\r\n },\r\n\r\n onTopicChange() {\r\n this.resetPages();\r\n },\r\n\r\n onDeliveryChange() {\r\n this.resetPages();\r\n }\r\n },\r\n computed: {\r\n displayedCourses() {\r\n var filteredCourses = this.courses.filter(function (item) {\r\n return ((this.selectedDelivery.some(i => item.productType.includes(i)) || this.selectedDelivery == \"\") && (item.practiceArea.includes(this.selectedTopic) || this.selectedTopic == \"\"));\r\n }, this);\r\n this.setCoursePages(filteredCourses);\r\n return this.paginate(filteredCourses, this.coursePage, this.coursePerPage);\r\n }\r\n },\r\n watch: {\r\n courses() {\r\n this.setCoursePages();\r\n },\r\n\r\n coursePage: function (val) {\r\n scrollOnPagination(\"pgn-courses\");\r\n }\r\n },\r\n\r\n created() {\r\n this.setDeliveryChannel();\r\n this.setTopics();\r\n setTimeout(function () {\r\n $('#InPerson, #Virtual, #OnDemand').prop('checked', false);\r\n }, 500);\r\n },\r\n filters: {\r\n trimWords(value) {\r\n return value.split(\" \").splice(0, 20).join(\" \") + '...';\r\n }\r\n }\r\n});\r\n\r\nconst coursesMountedApp = coursesApp.mount('#courses');\r\n\r\ndocument.querySelectorAll('button[data-bs-toggle=\"tab\"]').forEach((t, i) => {\r\n t.addEventListener('show.bs.tab', function (event) {\r\n var targetClass = event.target.dataset[\"bsTarget\"];\r\n var panes = document.querySelectorAll(targetClass);\r\n var siblings = document.querySelectorAll('#product-tab-content .tab-pane.active');\r\n\r\n siblings.forEach(function (sibling) {\r\n sibling.classList.remove('show');\r\n sibling.classList.remove('active');\r\n });\r\n\r\n panes.forEach(function (pane) {\r\n pane.classList.add('show');\r\n pane.classList.add('active');\r\n });\r\n })\r\n})"]}