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