{"version":3,"sources":["collapsable_panel.js"],"names":["CollapsablePanel","$","svgIcon","options","thisCollapsablePanel","this","container","headerPanel","children","openClass","append","click","e","preventDefault","toggle","prototype","setOpen","undefined","hasClass","open","close","addClass","removeClass","name","svgTemplate"],"mappings":"AAEA,IAAAA,iBAAA,SAAAC,GACA,IAAAD,EAAAE,EAkDA,OAhDAF,EAAA,SAAAG,GACA,IAAAC,EAEAA,EAAAC,KACAA,KAAAC,UAAAL,EAAAE,EAAAG,WAEAH,EAAAI,YACAF,KAAAE,YAAAN,EAAAE,EAAAI,aAEAF,KAAAE,YAAAF,KAAAC,UAAAE,SAAA,6BAGAH,KAAAI,UAAAN,EAAAM,WAAA,yBAGAJ,KAAAE,YAAAG,OAAAR,EAAA,eACAG,KAAAE,YAAAG,OAAAR,EAAA,iBAEAG,KAAAE,YAAAI,MAAA,SAAAC,GACAA,EAAAC,iBACAT,EAAAU,QACA,EACA,GAEAC,UAAAD,OAAA,SAAAE,QACAC,IAAAD,IACAA,GAAAX,KAAAC,UAAAY,SAAAb,KAAAI,YAEAO,EACAX,KAAAc,OAEAd,KAAAe,OAEA,EAEApB,EAAAe,UAAAI,KAAA,WACAd,KAAAC,UAAAe,SAAAhB,KAAAI,UACA,EAEAT,EAAAe,UAAAK,MAAA,WACAf,KAAAC,UAAAgB,YAAAjB,KAAAI,UACA,EAEAP,EAAA,SAAAqB,GACA,OAAAC,YAAAD,EACA,EAGAvB,CACA,CApDA,CAoDAC","file":"../../javascript/collapsable_panel.js","sourceRoot":"../../../../resources/javascript","sourcesContent":["//=require tools/svg-template.js\n\nvar CollapsablePanel = (function ($) {\n    var CollapsablePanel, svgIcon;\n\n    CollapsablePanel = function (options) {\n        var container, thisCollapsablePanel;\n\n        thisCollapsablePanel = this;\n        container = this.container = $(options.container);\n\n        if (options.headerPanel) {\n            this.headerPanel = $(options.headerPanel);\n        } else {\n            this.headerPanel = this.container.children('.collapsable-panel-header');\n        }\n\n        this.openClass = options.openClass || 'collapsable-panel-open';\n\n        // inject svg icons\n        this.headerPanel.append(svgIcon('chevron-up'));\n        this.headerPanel.append(svgIcon('chevron-down'));\n\n        this.headerPanel.click(function (e) {\n            e.preventDefault();\n            thisCollapsablePanel.toggle();\n        });\n    };\n\n    CollapsablePanel.prototype.toggle = function (setOpen) {\n        if (setOpen === undefined) {\n            setOpen = !this.container.hasClass(this.openClass);\n        }\n        if (setOpen) {\n            this.open();\n        } else {\n            this.close();\n        }\n    };\n\n    CollapsablePanel.prototype.open = function () {\n        this.container.addClass(this.openClass);\n    }\n\n    CollapsablePanel.prototype.close = function () {\n        this.container.removeClass(this.openClass);\n    }\n\n    svgIcon = function (name) {\n        return svgTemplate(name);\n    };\n\n    // \"export\" it\n    return CollapsablePanel\n})($);\n"]}