{"version":3,"file":"wsol.accordion.e72ff418.js","sources":["../../node_modules/@wearediagram/wsol.accordion/js/wsol.accordion.js"],"sourcesContent":["/**\n * wsol.accordion.js 6.0.3\n * http://github.com/websolutions/accordion\n */\n \n ;(function(factory) {\n  if (typeof module === 'object' && typeof module.exports === 'object') {\n    factory(require('jquery'), window, document);\n  } else {\n    factory(jQuery, window, document);\n  }\n}(function ($, window, document, undefined) {\n    if (!$.wsol) {\n        $.wsol = {};\n    }\n\n    /**\n     * Accordion Item\n     */\n    $.wsol.accordionItem = function (el, options) {\n        var base = this,\n            uniqueId = Math.round( performance.now() * Date.now() * Math.random() ),\n            counter = 1\n            ;\n\n        base.$el = $(el);\n        base.el = el;\n\n        base.$el.data(\"wsol.accordionItem\", base);\n\n        base.init = function () {\n            var itemId = uniqueId + '-' + counter;\n            base.options = $.extend({}, $.wsol.accordionItem.defaultOptions, options);\n\n            base.$header = base.$el.find(base.options.headerSelector);\n            base.$body = base.$el.find(base.options.bodySelector);\n            base.$spriteContainer = base.$el.find(base.options.spriteContainer);\n            base.$sprite = $(\"<div />\").addClass(base.options.spriteClass).appendTo(base.$spriteContainer);\n            \n            if (base.$header.find('.expandable-header-wrap').length) {\n                base.$header.wrapInner(\"<button class='accordion-button' type='button'></button>\");\n            } else {\n                base.$header.wrapInner(\"<button class='accordion-button' type='button'><span class='expandable-header-wrap'></span></button>\");\n            }\n            base.$headerButton = base.$header.find('button');\n            base.$headerButton.attr('id', itemId).attr('aria-expanded', false);\n                        \n            base.$body.attr('aria-labelledby', itemId);\n\n            if (base.$body.attr('id') !== undefined) {\n                itemId = base.$body.attr('id');\n                base.$headerButton.attr('aria-controls', itemId);\n            } else {\n                base.$body.attr('id', itemId + '-' + 1 );\n                base.$headerButton.attr('aria-controls', itemId + '-' + 1 );\n            }     \n\n            // Handle events\n            base.$headerButton.on(base.options.triggerEvent + \".wsol.accordionItem\", base._triggerHandler);\n        };\n\n        base._rebuildSprite = function () {\n            if (base.options.customSprite != null) {\n                base.$sprite.html(base.options.customSprite.call(base, base));\n            }\n        };\n\n        base._triggerHandler = function (event) {\n            event.preventDefault();\n\n            base.toggle();\n        };\n\n        base.toggle = function (state) {\n            state = typeof state !== 'undefined' ? state : !base.active;\n\n            if (state) {\n                base.open();\n            } else {\n                base.close();\n            }\n        };\n\n        base.open = function () {\n            base.active = true;\n            if (base.options.beforeOpen != null) {\n                base.options.beforeOpen.call(base, base);\n            }\n\n            base.$el\n                .removeClass(base.options.closeClass)\n                .addClass(base.options.openClass);\n\n            base.$headerButton.attr('aria-expanded', true);\n\n            base.$body.stop().slideDown(base.options.toggleSpeed, function () {\n                base.$body.height('');\n                if (base.options.afterOpen != null) {\n                    base.options.afterOpen.call(base, base);\n                }\n            });\n\n            base._rebuildSprite();\n        };\n\n        base.close = function () {\n            base.active = false;\n            if (base.options.beforeClose != null) {\n                base.options.beforeClose.call(base, base);\n            }\n\n            base.$el\n                .removeClass(base.options.openClass)\n                .addClass(base.options.closeClass);\n\n            base.$headerButton.attr('aria-expanded', false);\n\n            base.$body.stop().slideUp(base.options.toggleSpeed, function () {\n                base.$body.height('');\n                if (base.options.afterClose != null) {\n                    base.options.afterClose.call(base, base);\n                }\n            });\n\n            base._rebuildSprite();\n        };\n\n        base.destroy = function () {\n            base.$sprite.remove();\n            base.$body.stop().css(\"display\", \"\").attr('style', '').removeAttr('aria-labelledby');\n            base.$headerButton.find('.expandable-header-wrap').unwrap();\n\n            // Remove events\n            base.$header.off(\".wsol.accordionItem\");\n        };\n\n        base.init();\n    };\n\n    $.wsol.accordionItem.defaultOptions = {\n        headerSelector: \".header\",\n        bodySelector: \".more\",\n        openClass: \"open\",\n        closeClass: \"close\",\n        startCollapsed: true,\n        toggleSpeed: 500,\n        triggerEvent: \"click\",\n        spriteContainer: \".sprite-container\",\n        spriteClass: \"sprite\",\n        customSprite: function (item) {\n            return \"<i>\" + (item.active ? \"-\" : \"+\") + \"</i>\";\n        },\n        beforeOpen: null,\n        beforeClose: null,\n        afterOpen: null,\n        afterClose: null\n    };\n\n    $.fn.wsol_accordionItem = function (options) {\n        return this.each(function () {\n            new $.wsol.accordionItem(this, options);\n        });\n    };\n\n    /**\n     * Accordion\n     */\n    $.wsol.accordion = function (el, options) {\n        var base = this;\n\n        base.$el = $(el);\n        base.el = el;\n\n        base.$el.data(\"wsol.accordion\", base);\n\n        base.init = function () {\n            base.options = $.extend(\n                {},\n                $.wsol.accordionItem.defaultOptions,\n                $.wsol.accordion.defaultOptions,\n                options\n            );\n            base.items = base.$el.find(base.options.itemSelector)\n                .wsol_accordionItem($.extend({}, base.options, {\n                    beforeOpen: base._openHandler,\n                    beforeClose: base._closeHandler\n                }))\n                .map(function () { return $(this).data(\"wsol.accordionItem\") });\n\n            if (base.options.startCollapsed) {\n                base.items.each(function() {\n                    this.close();\n                })\n                if (base.options.startFirstOpen) {\n                    base.items[0].open();\n                }\n            } else {\n                var tempAuto =  base.options.autoCollapse\n                    , tempFirst = base.options.startFirstOpen\n                    ;\n                base.options.autoCollapse = false;\n                base.options.startFirstOpen = true;\n                base.items.each(function() {\n                    this.open();\n                })\n                base.options.autoCollapse = tempAuto;\n                base.options.startFirstOpen = tempFirst;\n            }\n            \n        };\n\n        base._openHandler = function (item) {\n            if (base.options.autoCollapse) {\n                base.items.each(function () {\n                    if (this !== item) {\n                        this.close();\n                    }\n                });\n            }\n\n            if (base.options.beforeOpen != null) {\n                base.options.beforeOpen.call(base, item);\n            }\n        };\n\n        base._closeHandler = function (item) {\n            if (base.options.beforeClose != null) {\n                base.options.beforeClose.call(base, item);\n            }\n        };\n\n        base.destroy = function () {\n            base.items.each(function () {\n                this.destroy();\n            });\n        };\n\n        base.init();\n    };\n\n    $.wsol.accordion.defaultOptions = {\n        itemSelector: \"> .item\",\n        autoCollapse: true,\n        startFirstOpen: false\n    };\n\n    $.fn.wsol_accordion = function (options) {\n        return this.each(function () {\n            new $.wsol.accordion(this, options);\n        });\n    };\n\n}));\n"],"names":["factory","require$$0","$","window","document","undefined","el","options","base","uniqueId","counter","itemId","event","state","item","tempAuto","tempFirst"],"mappings":"qDAKG,SAASA,EAAS,CAEjBA,EAAQC,EAAiB,QAAE,OAAQ,QAAQ,CAI/C,GAAE,SAAUC,EAAGC,EAAQC,EAAUC,EAAW,CACnCH,EAAE,OACHA,EAAE,KAAO,IAMbA,EAAE,KAAK,cAAgB,SAAUI,EAAIC,EAAS,CAC1C,IAAIC,EAAO,KACPC,EAAW,KAAK,MAAO,YAAY,IAAG,EAAK,KAAK,IAAK,EAAG,KAAK,QAAU,EACvEC,EAAU,EAGdF,EAAK,IAAMN,EAAEI,CAAE,EACfE,EAAK,GAAKF,EAEVE,EAAK,IAAI,KAAK,qBAAsBA,CAAI,EAExCA,EAAK,KAAO,UAAY,CACpB,IAAIG,EAASF,EAAW,IAAMC,EAC9BF,EAAK,QAAUN,EAAE,OAAO,CAAE,EAAEA,EAAE,KAAK,cAAc,eAAgBK,CAAO,EAExEC,EAAK,QAAUA,EAAK,IAAI,KAAKA,EAAK,QAAQ,cAAc,EACxDA,EAAK,MAAQA,EAAK,IAAI,KAAKA,EAAK,QAAQ,YAAY,EACpDA,EAAK,iBAAmBA,EAAK,IAAI,KAAKA,EAAK,QAAQ,eAAe,EAClEA,EAAK,QAAUN,EAAE,SAAS,EAAE,SAASM,EAAK,QAAQ,WAAW,EAAE,SAASA,EAAK,gBAAgB,EAEzFA,EAAK,QAAQ,KAAK,yBAAyB,EAAE,OAC7CA,EAAK,QAAQ,UAAU,0DAA0D,EAEjFA,EAAK,QAAQ,UAAU,sGAAsG,EAEjIA,EAAK,cAAgBA,EAAK,QAAQ,KAAK,QAAQ,EAC/CA,EAAK,cAAc,KAAK,KAAMG,CAAM,EAAE,KAAK,gBAAiB,EAAK,EAEjEH,EAAK,MAAM,KAAK,kBAAmBG,CAAM,EAErCH,EAAK,MAAM,KAAK,IAAI,IAAMH,GAC1BM,EAASH,EAAK,MAAM,KAAK,IAAI,EAC7BA,EAAK,cAAc,KAAK,gBAAiBG,CAAM,IAE/CH,EAAK,MAAM,KAAK,KAAMG,EAAS,IAAM,GACrCH,EAAK,cAAc,KAAK,gBAAiBG,EAAS,IAAM,IAI5DH,EAAK,cAAc,GAAGA,EAAK,QAAQ,aAAe,sBAAuBA,EAAK,eAAe,CACzG,EAEQA,EAAK,eAAiB,UAAY,CAC1BA,EAAK,QAAQ,cAAgB,MAC7BA,EAAK,QAAQ,KAAKA,EAAK,QAAQ,aAAa,KAAKA,EAAMA,CAAI,CAAC,CAE5E,EAEQA,EAAK,gBAAkB,SAAUI,EAAO,CACpCA,EAAM,eAAc,EAEpBJ,EAAK,OAAM,CACvB,EAEQA,EAAK,OAAS,SAAUK,EAAO,CAC3BA,EAAQ,OAAOA,GAAU,YAAcA,EAAQ,CAACL,EAAK,OAEjDK,EACAL,EAAK,KAAI,EAETA,EAAK,MAAK,CAE1B,EAEQA,EAAK,KAAO,UAAY,CACpBA,EAAK,OAAS,GACVA,EAAK,QAAQ,YAAc,MAC3BA,EAAK,QAAQ,WAAW,KAAKA,EAAMA,CAAI,EAG3CA,EAAK,IACA,YAAYA,EAAK,QAAQ,UAAU,EACnC,SAASA,EAAK,QAAQ,SAAS,EAEpCA,EAAK,cAAc,KAAK,gBAAiB,EAAI,EAE7CA,EAAK,MAAM,KAAM,EAAC,UAAUA,EAAK,QAAQ,YAAa,UAAY,CAC9DA,EAAK,MAAM,OAAO,EAAE,EAChBA,EAAK,QAAQ,WAAa,MAC1BA,EAAK,QAAQ,UAAU,KAAKA,EAAMA,CAAI,CAE1D,CAAa,EAEDA,EAAK,eAAc,CAC/B,EAEQA,EAAK,MAAQ,UAAY,CACrBA,EAAK,OAAS,GACVA,EAAK,QAAQ,aAAe,MAC5BA,EAAK,QAAQ,YAAY,KAAKA,EAAMA,CAAI,EAG5CA,EAAK,IACA,YAAYA,EAAK,QAAQ,SAAS,EAClC,SAASA,EAAK,QAAQ,UAAU,EAErCA,EAAK,cAAc,KAAK,gBAAiB,EAAK,EAE9CA,EAAK,MAAM,KAAM,EAAC,QAAQA,EAAK,QAAQ,YAAa,UAAY,CAC5DA,EAAK,MAAM,OAAO,EAAE,EAChBA,EAAK,QAAQ,YAAc,MAC3BA,EAAK,QAAQ,WAAW,KAAKA,EAAMA,CAAI,CAE3D,CAAa,EAEDA,EAAK,eAAc,CAC/B,EAEQA,EAAK,QAAU,UAAY,CACvBA,EAAK,QAAQ,SACbA,EAAK,MAAM,OAAO,IAAI,UAAW,EAAE,EAAE,KAAK,QAAS,EAAE,EAAE,WAAW,iBAAiB,EACnFA,EAAK,cAAc,KAAK,yBAAyB,EAAE,OAAM,EAGzDA,EAAK,QAAQ,IAAI,qBAAqB,CAClD,EAEQA,EAAK,KAAI,CACjB,EAEIN,EAAE,KAAK,cAAc,eAAiB,CAClC,eAAgB,UAChB,aAAc,QACd,UAAW,OACX,WAAY,QACZ,eAAgB,GAChB,YAAa,IACb,aAAc,QACd,gBAAiB,oBACjB,YAAa,SACb,aAAc,SAAUY,EAAM,CAC1B,MAAO,OAASA,EAAK,OAAS,IAAM,KAAO,MAC9C,EACD,WAAY,KACZ,YAAa,KACb,UAAW,KACX,WAAY,IACpB,EAEIZ,EAAE,GAAG,mBAAqB,SAAUK,EAAS,CACzC,OAAO,KAAK,KAAK,UAAY,CACzB,IAAIL,EAAE,KAAK,cAAc,KAAMK,CAAO,CAClD,CAAS,CACT,EAKIL,EAAE,KAAK,UAAY,SAAUI,EAAIC,EAAS,CACtC,IAAIC,EAAO,KAEXA,EAAK,IAAMN,EAAEI,CAAE,EACfE,EAAK,GAAKF,EAEVE,EAAK,IAAI,KAAK,iBAAkBA,CAAI,EAEpCA,EAAK,KAAO,UAAY,CAcpB,GAbAA,EAAK,QAAUN,EAAE,OACb,CAAE,EACFA,EAAE,KAAK,cAAc,eACrBA,EAAE,KAAK,UAAU,eACjBK,CAChB,EACYC,EAAK,MAAQA,EAAK,IAAI,KAAKA,EAAK,QAAQ,YAAY,EAC/C,mBAAmBN,EAAE,OAAO,CAAA,EAAIM,EAAK,QAAS,CAC3C,WAAYA,EAAK,aACjB,YAAaA,EAAK,aACtC,CAAiB,CAAC,EACD,IAAI,UAAY,CAAE,OAAON,EAAE,IAAI,EAAE,KAAK,oBAAoB,CAAC,CAAE,EAE9DM,EAAK,QAAQ,eACbA,EAAK,MAAM,KAAK,UAAW,CACvB,KAAK,MAAK,CAC9B,CAAiB,EACGA,EAAK,QAAQ,gBACbA,EAAK,MAAM,GAAG,KAAI,MAEnB,CACH,IAAIO,EAAYP,EAAK,QAAQ,aACvBQ,EAAYR,EAAK,QAAQ,eAE/BA,EAAK,QAAQ,aAAe,GAC5BA,EAAK,QAAQ,eAAiB,GAC9BA,EAAK,MAAM,KAAK,UAAW,CACvB,KAAK,KAAI,CAC7B,CAAiB,EACDA,EAAK,QAAQ,aAAeO,EAC5BP,EAAK,QAAQ,eAAiBQ,CACjC,CAEb,EAEQR,EAAK,aAAe,SAAUM,EAAM,CAC5BN,EAAK,QAAQ,cACbA,EAAK,MAAM,KAAK,UAAY,CACpB,OAASM,GACT,KAAK,MAAK,CAElC,CAAiB,EAGDN,EAAK,QAAQ,YAAc,MAC3BA,EAAK,QAAQ,WAAW,KAAKA,EAAMM,CAAI,CAEvD,EAEQN,EAAK,cAAgB,SAAUM,EAAM,CAC7BN,EAAK,QAAQ,aAAe,MAC5BA,EAAK,QAAQ,YAAY,KAAKA,EAAMM,CAAI,CAExD,EAEQN,EAAK,QAAU,UAAY,CACvBA,EAAK,MAAM,KAAK,UAAY,CACxB,KAAK,QAAO,CAC5B,CAAa,CACb,EAEQA,EAAK,KAAI,CACjB,EAEIN,EAAE,KAAK,UAAU,eAAiB,CAC9B,aAAc,UACd,aAAc,GACd,eAAgB,EACxB,EAEIA,EAAE,GAAG,eAAiB,SAAUK,EAAS,CACrC,OAAO,KAAK,KAAK,UAAY,CACzB,IAAIL,EAAE,KAAK,UAAU,KAAMK,CAAO,CAC9C,CAAS,CACT,CAEA,CAAC"}