{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/blocks/programCoursesCarouselBlock/js/programCoursesCarouselBlock.js"],"names":["CLS","ProgramCoursesCarouselBlock","element","_this","this","_classCallCheck","$element","$","$tplScroller","isLoggedIn","data","registerUrl","loginUrl","api","attr","selectedClass","$courseContainer","$courseSelectedIndex","$swiperObj","$swiper","find","concat","$buttonNext","$buttonPrev","$carouselItems","$initialSlide","loadTemplates","on","event","currentTarget","index","setSelectedCourse","slideTo","Swiper","speed","spaceBetween","slidesPerView","autoHeight","shortSwipes","navigation","nextEl","prevEl","initialSlide","init","each","value","hasClass","ScrollTrigger","refresh","initAnimateScrollReveal","key","programCoursesContentWidget","require","Handlebars","registerPartial","programCoursesOverviewWidget","programCoursesListWidget","programCoursesItemWidget","progressBarWidget","progressRadialCheckWidget","precompiled","Function","precompile","programCoursesContentWidgetRenderer","template","registerHelper","ifCond","_this2","arguments","length","undefined","removeClass","slide","eq","programId","params","addClass","fetch","then","response","json","programCoursesContentWidgetModel","program","wg","ns","html","$programCoursesListWidget","ProgramCoursesListWidget","$programCoursesItemWidget","$course","ProgramCoursesItemWidget","$progressBarWidget","ProgressBarWidget","$progressRadialCheckWidget","ProgressRadialCheckWidget","Object","assign","prototype","animateScrollRevealMixinBlock"],"mappings":"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","file":"block-51.2f662a3aa586e55a56ca.js","sourcesContent":["import Handlebars from 'handlebars';\nimport Swiper from 'swiper/swiper-bundle.js';\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger.js';\n// import { scrollTo } from 'scroll-js';\n\nimport { animateScrollRevealMixinBlock } from '../../mixins/animateScrollRevealMixinBlock/animateScrollRevealMixinBlock';\nimport { ProgressRadialCheckWidget } from '../../../widgets/progressRadialCheckWidget/js/progressRadialCheckWidget';\nimport { ProgramCoursesListWidget } from '../../../widgets/programCoursesListWidget/js/programCoursesListWidget';\nimport { ProgramCoursesItemWidget } from '../../../widgets/programCoursesItemWidget/js/programCoursesItemWidget';\nimport { ProgressBarWidget } from '../../../widgets/progressBarWidget/js/progressBarWidget';\nimport { ifCond } from '../../../../../handlebarsHelpers';\n\nconst NS = 'ProgramCoursesCarouselBlock';\nconst CLS = 'programCoursesCarouselBlock';\n\nexport class ProgramCoursesCarouselBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.$tplScroller = $('.tpl-scroller');\n\t\tthis.isLoggedIn = this.$element.data('loggedIn');\n\t\tthis.registerUrl = this.$element.data('registerUrl');\n\t\tthis.loginUrl = this.$element.data('loginUrl');\n\t\tthis.api = this.$element.attr('data-api');\n\t\tthis.selectedClass = 'selected';\n\t\tthis.$courseContainer = $(`#programCoursesContainer`);\n\t\tthis.$courseSelectedIndex = null;\n\n\t\tthis.$swiperObj = null;\n\t\tthis.$swiper = this.$element.find(`.${CLS}-swiper`);\n\t\tthis.$buttonNext = this.$element.find(`.${CLS}-swiper-button-next`);\n\t\tthis.$buttonPrev = this.$element.find(`.${CLS}-swiper-button-prev`);\n\t\tthis.$carouselItems = this.$element.find(`.programCardBlock-card`);\n\t\tthis.$initialSlide = 0;\n\n\t\t// Load Templates (existing)\n\t\tthis.loadTemplates();\n\n\t\t// Card click event (new)\n\t\tthis.$carouselItems.on('click', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tconst index = this.$carouselItems.index($element);\n\t\t\tthis.setSelectedCourse(index);\n\t\t\tthis.$swiperObj.slideTo(index);\n\t\t});\n\n\t\t// Initial index (existing)\n\t\tlet setInitialIndex = () => {\n\t\t\tlet initialIndex = null;\n\t\t\tthis.$carouselItems.each((index, value) => {\n\t\t\t\tif($(value).hasClass('selected')) {\n\t\t\t\t\tthis.setSelectedCourse(index, true);\n\t\t\t\t\tinitialIndex = index;\n\t\t\t\t\tthis.$initialSlide = index;\n\t\t\t\t\tScrollTrigger.refresh(true);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\t// setInitialIndex();\n\n\t\t// Carousel (new)\n\t\tthis.$swiperObj = new Swiper(this.$swiper[0], {\n\t\t\tspeed: 700,\n\t\t\tspaceBetween: 0,\n\t\t\tslidesPerView: 'auto', // scroll 3 at a time instead of 1\n\t\t\t// slidesPerGroupAuto: true, // scroll 3 at a time instead of 1\n\t\t\tautoHeight: false,\n\t\t\tshortSwipes: false,\n\t\t\tnavigation: {\n\t\t\t\tnextEl: this.$buttonNext[0],\n\t\t\t\tprevEl: this.$buttonPrev[0]\n\t\t\t},\n\t\t\tinitialSlide: this.$initialSlide,\n\t\t\ton: {\n\t\t\t\tinit: function() {\n\t\t\t\t\t// setTimeout(function() {\n\t\t\t\t\t\tsetInitialIndex();\n\t\t\t\t\t// }, 100);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Scroll animation\n\t\tthis.initAnimateScrollReveal(this, CLS);\n\t}\n\n\t// Load Templates (existing)\n\tloadTemplates() {\n\t\tlet programCoursesContentWidget = require('../../../widgets/programCoursesContentWidget/tmpl/programCoursesContentWidget.hbs');\n\t\tHandlebars.registerPartial('programCoursesContentWidget', programCoursesContentWidget);\n\n\t\tlet programCoursesOverviewWidget = require('../../../widgets/programCoursesOverviewWidget/tmpl/programCoursesOverviewWidget.hbs');\n\t\tHandlebars.registerPartial('programCoursesOverviewWidget', programCoursesOverviewWidget);\n\n\t\tlet programCoursesListWidget = require('../../../widgets/programCoursesListWidget/tmpl/programCoursesListWidget.hbs');\n\t\tHandlebars.registerPartial('programCoursesListWidget', programCoursesListWidget);\n\n\t\tlet programCoursesItemWidget = require('../../../widgets/programCoursesItemWidget/tmpl/programCoursesItemWidget.hbs');\n\t\tHandlebars.registerPartial('programCoursesItemWidget', programCoursesItemWidget);\n\n\t\tlet progressBarWidget = require('../../../widgets/progressBarWidget/tmpl/progressBarWidget.hbs');\n\t\tHandlebars.registerPartial('progressBarWidget', progressBarWidget);\n\n\t\tlet progressRadialCheckWidget = require('../../../widgets/progressRadialCheckWidget/tmpl/progressRadialCheckWidget.hbs');\n\t\tHandlebars.registerPartial('progressRadialCheckWidget', progressRadialCheckWidget);\n\n\t\tlet template = `\n\t\t\t{{> programCoursesContentWidget\n\t\t\t\twg=\"programCoursesContentWidget\"\n\t\t\t\tns=\"ProgramCoursesContentWidget\"\n\t\t\t}}\n\t\t`;\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\tthis.programCoursesContentWidgetRenderer = Handlebars.template(precompiled);\n\n\t\tHandlebars.registerHelper('ifCond', ifCond);\n\t}\n\n\t// Set Selected Course (existing)\n\tsetSelectedCourse(index, dontAnimateSlide = false) {\n\t\tif(this.$courseSelectedIndex !== index) {\n\t\t\tthis.$carouselItems.removeClass(this.selectedClass);\n\t\t\t// this.$carouselSlider[0].slick.slickGoTo(index, dontAnimateSlide);\n\n\t\t\tthis.$courseSelectedIndex = index;\n\t\t\tconst slide = this.$carouselItems.eq(this.$courseSelectedIndex);\n\t\t\tconst programId = slide.attr('data-program-id');\n\t\t\tconst params = `?id=${programId}`;\n\t\t\tslide.addClass(this.selectedClass);\n\n\t\t\tfetch(this.api + params)\n\t\t\t\t.then((response) => response.json())\n\t\t\t\t.then((json) => {\n\t\t\t\t\tlet programCoursesContentWidgetModel = {\n\t\t\t\t\t\tisLoggedIn: this.isLoggedIn,\n\t\t\t\t\t\tregisterUrl: this.registerUrl,\n\t\t\t\t\t\tloginUrl: this.loginUrl,\n\t\t\t\t\t\t// rippleSrc: this.rippleSrc,\n\t\t\t\t\t\tprogram: json,\n\t\t\t\t\t\tprogramCoursesOverviewWidget: {\n\t\t\t\t\t\t\twg: 'programCoursesOverviewWidget',\n\t\t\t\t\t\t\tns: 'ProgramCoursesOverviewWidget'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprogramCoursesListWidget: {\n\t\t\t\t\t\t\twg: 'programCoursesListWidget',\n\t\t\t\t\t\t\tns: 'ProgramCoursesListWidget',\n\t\t\t\t\t\t\tprogramCoursesItemWidget: {\n\t\t\t\t\t\t\t\twg: 'programCoursesItemWidget',\n\t\t\t\t\t\t\t\tns: 'ProgramCoursesItemWidget',\n\t\t\t\t\t\t\t\tprogressBarWidget: {\n\t\t\t\t\t\t\t\t\twg: 'progressBarWidget',\n\t\t\t\t\t\t\t\t\tns: 'ProgressBarWidget'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tprogressRadialCheckWidget: {\n\t\t\t\t\t\t\t\t\twg: 'progressRadialCheckWidget',\n\t\t\t\t\t\t\t\t\tns: 'ProgressRadialCheckWidget'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.$courseContainer.html(this.programCoursesContentWidgetRenderer(programCoursesContentWidgetModel));\n\n\t\t\t\t\tlet $programCoursesListWidget = this.$courseContainer.find(`[data-wg=\"ProgramCoursesListWidget\"]`);\n\t\t\t\t\tif($programCoursesListWidget && $programCoursesListWidget.length > 0) {\n\t\t\t\t\t\tnew ProgramCoursesListWidget($programCoursesListWidget[0]);\n\n\t\t\t\t\t\tlet $programCoursesItemWidget = $programCoursesListWidget.find(`[data-wg=\"ProgramCoursesItemWidget\"]`);\n\n\t\t\t\t\t\tif($programCoursesItemWidget && $programCoursesItemWidget.length > 0) {\n\t\t\t\t\t\t\t$programCoursesItemWidget.each((index, element) => {\n\t\t\t\t\t\t\t\tlet $course = $(element);\n\t\t\t\t\t\t\t\tnew ProgramCoursesItemWidget($course[0]);\n\n\t\t\t\t\t\t\t\tlet $progressBarWidget = $course.find('[data-wg=\"ProgressBarWidget\"]');\n\t\t\t\t\t\t\t\tif($progressBarWidget[0]) {\n\t\t\t\t\t\t\t\t\tnew ProgressBarWidget($progressBarWidget[0]);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tlet $progressRadialCheckWidget = $course.find('[data-wg=\"ProgressRadialCheckWidget\"]');\n\t\t\t\t\t\t\t\tif($progressRadialCheckWidget[0]) {\n\t\t\t\t\t\t\t\t\tnew ProgressRadialCheckWidget($progressRadialCheckWidget[0]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// scrollTo(this.$tplScroller[0], { top: this.$courseContainer[0].offsetTop, duration: 500, easing: 'ease-in-out' });\n\t\t\t\t});\n\t\t}\n\t}\n}\n\nObject.assign(ProgramCoursesCarouselBlock.prototype, animateScrollRevealMixinBlock);\n"],"sourceRoot":""}