{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/widgets/siteSubheaderTopicDropdownWidget/js/siteSubheaderTopicDropdownWidget.js"],"names":["CLS","SiteSubheaderTopicDropdownWidget","_createClass","element","_this","this","_classCallCheck","$element","$","$items","find","concat","$selectedItem","$itemContentAnimationDuration","$temHeadingIconAnimationDuration","$itemHeadingIconRotationDegree","each","index","$program","parent","attr","show","on","e","activate","item","slideDown","duration","rotateIcon","deactivate","slideUp","initialDegree","degree","$elem","deg","animate","step","now","css","transform","$itemToBeSelected","currentTarget","offsetTop","Math","floor","offset","top","maxHeight"],"mappings":"64BAAA,IACMA,EAAM,mCAECC,4GAAgCC,CAC5C,SAAAD,EAAYE,GAAS,IAAAC,EAAAC,kGAAAC,CAAAD,KAAAJ,GACpBI,KAAKF,QAAUA,EACfE,KAAKE,SAAWC,EAAEL,GACZE,KAAKI,OAASJ,KAAKE,SAASG,KAAI,IAAAC,OAAKX,EAAG,qBAExCK,KAAKO,cAAgB,KACrBP,KAAKQ,8BAAgC,IACrCR,KAAKS,iCAAmC,IACxCT,KAAKU,+BAAiC,IAEtCV,KAAKI,OAAOO,KAAK,SAACC,EAAOd,GACrB,IAEIe,EAFQV,EAAEL,GAEOgB,OAAM,IAAAR,OAAKX,EAAG,aACC,SAAjCkB,EAASE,KAAK,iBACbF,EAASR,KAAI,IAAAC,OAAKX,EAAG,qBAAoBqB,OACzCjB,EAAKQ,cAAgBM,KAI7Bb,KAAKI,OAAOa,GAAG,QAAS,SAACC,GACrB,IAAIC,EAAW,SAACC,GACZA,EAAKf,KAAI,IAAAC,OAAKX,EAAG,qBAAoB0B,WACjCC,SAAUvB,EAAKS,gCAEnBe,EAAWH,EAAM,EAAGrB,EAAKW,gCACzBU,EAAKL,KAAK,eAAe,GACzBhB,EAAKQ,cAAgBa,GAGrBI,EAAa,SAACJ,GACdA,EAAKf,KAAI,IAAAC,OAAKX,EAAG,qBAAoB8B,SACjCH,SAAUvB,EAAKS,gCAEnBe,EAAWH,EAAMrB,EAAKW,+BAAgC,GACtDU,EAAKL,KAAK,eAAe,GACzBhB,EAAKQ,cAAgB,MAGrBgB,EAAa,SAACH,EAAMM,EAAeC,GACnC,IAAIC,EAAQR,EAAKf,KAAI,IAAAC,OAAKX,EAAG,0BAE7BQ,GAAI0B,IAAKH,IAAiBI,SAAUD,IAAKF,IACrCL,SAAUvB,EAAKU,iCACfsB,KAAM,SAACC,GACHJ,EAAMK,KACFC,UAAS,UAAA5B,OAAY0B,EAAG,cAMpCG,EAAoBhC,EAAEe,EAAEkB,eAAetB,OAAM,IAAAR,OAAKX,EAAG,aAErDI,EAAKQ,cAGDR,EAAKQ,cAAcQ,KAAK,QAAUoB,EAAkBpB,KAAK,MAC1DhB,EAAKQ,cAAcQ,KAAK,gBACvBS,EAAWW,GAGXpC,EAAKQ,cAAcQ,KAAK,QAAUoB,EAAkBpB,KAAK,QAC7DS,EAAWzB,EAAKQ,eAChBY,EAASgB,IATThB,EAASgB,GAab,IAAIE,EAAYC,KAAKC,MAAMxC,EAAKG,SAASsC,SAASC,KAClD1C,EAAKG,SAAS+B,KACVS,UAAS,gBAAApC,OAAkB+B,EAAS","file":"widget-26.2f662a3aa586e55a56ca.js","sourcesContent":["const NS = 'SiteSubheaderTopicDropdownWidget';\nconst CLS = 'siteSubheaderTopicDropdownWidget';\n\nexport class SiteSubheaderTopicDropdownWidget {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n this.$items = this.$element.find(`.${CLS}-program-heading`);\n\n this.$selectedItem = null;\n this.$itemContentAnimationDuration = 350;\n this.$temHeadingIconAnimationDuration = 250;\n this.$itemHeadingIconRotationDegree = 180;\n\n this.$items.each((index, element) => {\n let $item = $(element);\n\n let $program = $item.parent(`.${CLS}-program`);\n if($program.attr('data-active') === 'true') {\n $program.find(`.${CLS}-program-content`).show();\n this.$selectedItem = $program;\n }\n });\n\n this.$items.on('click', (e) => {\n let activate = (item) => {\n item.find(`.${CLS}-program-content`).slideDown({\n duration: this.$itemContentAnimationDuration\n });\n rotateIcon(item, 0, this.$itemHeadingIconRotationDegree);\n item.attr('data-active', true);\n this.$selectedItem = item;\n };\n\n let deactivate = (item) => {\n item.find(`.${CLS}-program-content`).slideUp({\n duration: this.$itemContentAnimationDuration\n });\n rotateIcon(item, this.$itemHeadingIconRotationDegree, 0);\n item.attr('data-active', false);\n this.$selectedItem = null;\n };\n\n let rotateIcon = (item, initialDegree, degree) => {\n let $elem = item.find(`.${CLS}-program-heading-icon`);\n\n $({ deg: initialDegree }).animate({ deg: degree }, {\n duration: this.$temHeadingIconAnimationDuration,\n step: (now) => {\n $elem.css({\n transform: `rotate(${now}deg)`\n });\n }\n });\n };\n\n let $itemToBeSelected = $(e.currentTarget).parent(`.${CLS}-program`);\n\n if(!this.$selectedItem) {\n activate($itemToBeSelected);\n }\n else if(this.$selectedItem.attr('id') === $itemToBeSelected.attr('id')) {\n if(this.$selectedItem.attr('data-active')) {\n deactivate($itemToBeSelected);\n }\n }\n else if(this.$selectedItem.attr('id') !== $itemToBeSelected.attr('id')) {\n deactivate(this.$selectedItem);\n activate($itemToBeSelected);\n }\n\n // Adjust every time the dropdown is toggled\n let offsetTop = Math.floor(this.$element.offset().top);\n this.$element.css({\n maxHeight: `calc(100vh - ${offsetTop}px)`\n });\n });\n\t}\n}\n"],"sourceRoot":""}