{"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.d7818a52e4dc7554a6bb.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":""}