{"version":3,"sources":["webpack:///./Content/javascripts/modules/header/bca/header-bca.js","webpack:///./Content/javascripts/modules/responsive/scroll-to-top.js","webpack:///./Content/javascripts/components/bdc-accordion.js","webpack:///./Content/javascripts/components/bdc-tabs.js","webpack:///./Content/javascripts/modules/enews/enews.js","webpack:///./javascript/bca/theme/index.js","webpack:///./Content/javascripts/vendor/jquery.slicknav.js"],"names":["define","globals","$","ko","HeaderViewModel","axios","lozad","duplicatedMenu","clone","find","remove","appendTo","slickNavLoaded","length","headerViewModel","applyBindings","get","slicknav","label","duration","duplicate","closedSymbol","openedSymbol","prependTo","init","prepend","contactNumber","document","querySelector","rootMargin","loaded","obj","footerEndpoint","window","location","protocol","host","then","data","footer","createElement","innerHTML","trim","insertAdjacentElement","module","getFooterData","default","observe","Modals","ReactDOM","render","ThemeProvider","theme","getElementById","toggleScrollTop","scrollTop","show","hide","ssm","getState","active","on","animate","scroll","append","$selectedAccordion","this","closest","currentChecked","val","attr","prop","each","height","outerHeight","next","defaultErrorMessage","errorMessage","validate","rules","email","required","messages","errorPlacement","error","element","parents","html","outerText","onfocusout","e","addClass","removeClass","valid","onfocusin","onkeyup","focusInvalid","preventDefault","$validator","action","server","hostname","parameters","ThanksPage","ErrorPage","UnsubscribePage","ListIdV1","exactTarget","listIdV1","MemberIdV1","memberIdV1","ListId","listId","MemberId","memberId","EmailAddress","post","param","errorCode","message","errors","showErrors","tachyonsVariables","name","backgroundColor","alert","base","container","icon","text","warning","configurator","global","choice","border","maxWidth","option","dictionaryTermBackgroundColor","dictionaryTermColor","dictionaryTermIconColor","image","withLongLabel","withoutLongLabel","selectedBorder","selectedIcon","selectedText","title","price","addsPrice","promo","summary","background","choiceValue","floatingBar","stickyTop","modal","closeButton","closeButtonHover","defaults","easingOpen","easingClose","parentTag","closeOnClick","allowParentLinks","nestedParentLinks","showChildren","removeIds","removeClasses","brand","beforeOpen","beforeClose","afterOpen","afterClose","prefix","Plugin","options","settings","extend","_defaults","_name","prototype","iconClass","menuBar","$this","menu","mobileNav","removeAttr","i","btn","join","items","item","children","a","contents","containsAnchor","nodes","is","push","wrapElement","wrapAll","parent","arrowElement","wrap","last","after","click","event","target","hasClass","_visibilityToggle","mousedown","_outlines","keyup","_menuToggle","_itemClick","keydown","keyCode","stopImmediatePropagation","el","arrow","ul","trigger","_getActionItems","slideDown","_setVisAttr","slideUp","hidden","nonHidden","not","anchors","links","add","state","css","toggle","open","close","fn","returns","args","arguments","undefined","instance","apply","Array","slice","call"],"mappings":"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","file":"78-b78ba52823f3c39e284b.js","sourcesContent":["import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { ThemeProvider } from 'styled-components';\r\nimport { theme } from '../../../../../javascript/bca/theme'\r\n\r\ndefine([\r\n \"globals\",\r\n \"jquery\",\r\n \"knockout\",\r\n \"header-view-model\",\r\n 'axios',\r\n \"lozad\",\r\n \"scroll-to-top\",\r\n \"modules/enews/enews\",\r\n \"slick-nav\",\r\n \"internal-user-sticky\",\r\n \"accordion\",\r\n \"tabs\"],\r\nfunction (globals, $, ko, HeaderViewModel, axios, lozad) {\r\n var duplicatedMenu = $(\".bdc-menu\").clone();\r\n\r\n // Remove Sales menu\r\n duplicatedMenu.find(\".bdc-menu-sale\").remove();\r\n\r\n // Remove unnecessary level on Brand Menu Item\r\n duplicatedMenu.find(\".bdc-menu-brand\").find(\".bdc-menu-3rd\").find(\"li\")\r\n .appendTo(duplicatedMenu.find(\".bdc-menu-brand\").find(\".bdc-menu-2nd\"));\r\n duplicatedMenu.find(\".bdc-menu-brand\").find(\".bdc-menu-2nd li:first-child\").remove();\r\n\r\n var slickNavLoaded = false;\r\n\r\n if ($(\".bdc-header\").length > 0) {\r\n var headerViewModel = new HeaderViewModel();\r\n ko.applyBindings(headerViewModel, $(\".bdc-header\").get(0));\r\n }\r\n\r\n duplicatedMenu.slicknav({\r\n label: \"\",\r\n duration: 100,\r\n duplicate: false,\r\n closedSymbol: \"+\",\r\n openedSymbol: \"-\",\r\n prependTo: \".bdc-header\",\r\n init: function() {\r\n if (!slickNavLoaded) {\r\n $(\"#mobile-top-header\").remove();\r\n // Clone Header Links (Only Get Help and Order Tracking)\r\n var headerLinks = $(\".bdc-header-links ul li.bdc-header-links-show-mobile\").clone();\r\n headerLinks.appendTo(\".slicknav_nav\");\r\n $(\".slicknav_menu\").prepend(\"\")\r\n .prepend(\"\")\r\n .prepend(\"\");\r\n slickNavLoaded = true;\r\n }\r\n }\r\n });\r\n\r\n lozad(document.querySelector('#bca-footer'), {\r\n rootMargin: '200px 0px',\r\n loaded: (obj) => {\r\n let footerEndpoint = `${window.location.protocol}//${window.location.host}`;\r\n footerEndpoint += '/Home/GetPageSection/?Requestedpage=~/Infopages/Sites/Blinds.ca/Partials/_footer.cshtml';\r\n axios.get(footerEndpoint).then(({ data }) => {\r\n const footer = document.createElement('div');\r\n footer.innerHTML = data.trim();\r\n obj.insertAdjacentElement('afterend', footer);\r\n import(/* webpackChunkName: 'footer_bca' */ '../../../../../javascript/bca/footer').then((module) => {\r\n const getFooterData = module.default;\r\n getFooterData();\r\n });\r\n });\r\n },\r\n }).observe();\r\n\r\n import(/* webpackChunkName: \"modals\" */ '../../../../../javascript/_shared/modals').then((module) => {\r\n const Modals = module.default;\r\n ReactDOM.render(, document.getElementById('bca-modals'));\r\n });\r\n\r\n});\r\n","define([\r\n \"globals\",\r\n \"jquery\"],\r\nfunction(globals, $) {\r\n\r\n var toggleScrollTop = function () {\r\n if ($(window).scrollTop() > 700) {\r\n $(\".bdc-btn-scroll-top\").show();\r\n } else {\r\n $(\".bdc-btn-scroll-top\").hide();\r\n }\r\n };\r\n\r\n // Toggles \"Scroll To Top\" button on mobile\r\n if (globals.ssm.getState(\"mobile\").active) {\r\n toggleScrollTop();\r\n $(document).on(\"click\", \".bdc-btn-scroll-top\", function () {\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"fast\");\r\n });\r\n $(window).scroll(function () {\r\n toggleScrollTop();\r\n });\r\n }\r\n\r\n});\r\n","define([\r\n \"jquery\"],\r\nfunction ($) {\r\n\r\n \"use strict\";\r\n\r\n /**\r\n * The accordion component used in Blinds.com is 100% CSS using the input[type=radio]\r\n * element to mimic its visual behavior. However, this CSS approach does not allow\r\n * the user to close one accordion item once it's opened. To make that work, these\r\n * few lines of JavaScript are needed.\r\n */\r\n $(\".bdc-accordion\").append(\"\");\r\n $(\".bdc-accordion-item-radio\").on(\"click\", function () {\r\n var $selectedAccordion = $(this).closest(\".bdc-accordion\").find(\".bdc-accordion-selected\");\r\n var currentChecked = $selectedAccordion.val();\r\n $selectedAccordion.val($(this).attr(\"id\"));\r\n if (currentChecked === $(this).attr(\"id\")) {\r\n $(this).prop(\"checked\", false);\r\n $selectedAccordion.val(\"\");\r\n }\r\n });\r\n\r\n});\r\n","define([\r\n \"jquery\"],\r\nfunction ($) {\r\n\r\n \"use strict\";\r\n\r\n $(function() {\r\n $(\".bdc-tabs\").each(function() {\r\n $(this).height($(this).find(\"li:first\").outerHeight() + $(this).find(\".bdc-tabs-content:visible\").outerHeight());\r\n });\r\n $(\"body\").on(\"click\", \".bdc-tabs-head\", function() {\r\n var tabElement = $(this).closest(\".bdc-tabs\");\r\n tabElement.height($(this).next().outerHeight() + $(this).next().next().outerHeight());\r\n });\r\n });\r\n\r\n});\r\n","define([\r\n \"jquery\",\r\n \"globals\",\r\n \"jquery-validate\"],\r\nfunction ($, globals) {\r\n var defaultErrorMessage = 'Please enter a valid email address.'\r\n var errorMessage = defaultErrorMessage\r\n $(function() {\r\n $('.gcc-enews').validate({\r\n rules: {\r\n email: {\r\n required: true,\r\n email: true\r\n }\r\n },\r\n messages: {\r\n email: {\r\n required: defaultErrorMessage,\r\n email: defaultErrorMessage\r\n }\r\n },\r\n errorPlacement: function(error, element) {\r\n element.parents('.gcc-enews').find('.gcc-input-help').html(error[0].outerText)\r\n },\r\n onfocusout: function(e) {\r\n this.element(e)\r\n if ($(e).val().trim() !== '') {\r\n $(e).addClass('filled')\r\n } else {\r\n $(e).removeClass('filled')\r\n $(e).parents('.gcc-enews').find('.gcc-input-help').html('')\r\n }\r\n if (this.valid()) {\r\n $(e).parents('.gcc-enews').find('.gcc-input-help').html('')\r\n $(e).parents('.gcc-enews').find('button').prop('disabled', false)\r\n } else {\r\n $(e).parents('.gcc-enews').find('button').prop('disabled', true)\r\n }\r\n },\r\n onfocusin: function(element) {\r\n if ($(element).val() === defaultErrorMessage || $(element).val() === errorMessage) {\r\n $(element).val('')\r\n }\r\n },\r\n onkeyup: function(e) {\r\n this.element(e)\r\n if ($(e).val().trim() !== '') {\r\n $(e).addClass('filled')\r\n } else {\r\n $(e).removeClass('filled')\r\n $(e).parents('.gcc-enews').find('.gcc-input-help').html('')\r\n }\r\n $(e).parents('.gcc-enews').find('.gcc-input-help').html('')\r\n if (this.valid()) {\r\n $(e).parents('.gcc-enews').find('button').prop('disabled', false)\r\n } else {\r\n $(e).parents('.gcc-enews').find('button').prop('disabled', true)\r\n }\r\n },\r\n focusInvalid: false\r\n })\r\n $('.gcc-enews').on('submit', function(e) {\r\n e.preventDefault()\r\n if ($(this).valid()) {\r\n $('.gcc-enews').find('button').prop('disabled', true)\r\n var $validator = $(this).validate()\r\n var action = $(this).attr('action')\r\n var server = location.protocol + '//' + location.hostname\r\n var parameters = {\r\n ThanksPage: server + '/infopage/enews-confirm',\r\n ErrorPage: server + '/infopage/enews-error-footer',\r\n UnsubscribePage: server + '/infopage/unsubemail',\r\n ListIdV1: globals.exactTarget.listIdV1,\r\n MemberIdV1: globals.exactTarget.memberIdV1,\r\n ListId: globals.exactTarget.listId,\r\n MemberId: globals.exactTarget.memberId,\r\n EmailAddress: $('#gcc-enews-email').val()\r\n }\r\n $.post(action, $.param(parameters), function(data) {\r\n if (data.errorCode) {\r\n errorMessage = data.message\r\n var errors = {\r\n email: data.message\r\n }\r\n $validator.showErrors(errors)\r\n } else {\r\n $('.gcc-input-help').html(data.message)\r\n }\r\n }, 'json')\r\n }\r\n })\r\n })\r\n})\r\n","/* eslint-disable import/prefer-default-export */\r\n\r\nexport const tachyonsVariables = `\r\n :root {\r\n --sans-serif:\r\n -apple-system, BlinkMacSystemFont,\r\n 'avenir next', avenir,\r\n helvetica, 'helvetica neue',\r\n ubuntu,\r\n noto,\r\n 'segoe ui',\r\n arial,\r\n sans-serif;\r\n --serif: georgia, serif;\r\n --code: consolas, monaco, monospace;\r\n\r\n --font-size-headline: 6rem;\r\n --font-size-subheadline: 5rem;\r\n --font-size-1: 3rem;\r\n --font-size-2: 2.25rem;\r\n --font-size-3: 1.5rem;\r\n --font-size-4: 1.25rem;\r\n --font-size-5: 1rem;\r\n --font-size-6: .875rem;\r\n\r\n --letter-spacing-tight:-.05em;\r\n --letter-spacing-1:.1em;\r\n --letter-spacing-2:.25em;\r\n\r\n --line-height-solid: 1;\r\n --line-height-title: 1.25;\r\n --line-height-copy: 1.5;\r\n\r\n --measure: 30em;\r\n --measure-narrow: 20em;\r\n --measure-wide: 34em;\r\n\r\n --spacing-none: 0;\r\n --spacing-extra-small: .25rem;\r\n --spacing-small: .5rem;\r\n --spacing-medium: 1rem;\r\n --spacing-large: 2rem;\r\n --spacing-extra-large: 4rem;\r\n --spacing-extra-extra-large: 8rem;\r\n --spacing-extra-extra-extra-large: 16rem;\r\n\r\n --height-1: 1rem;\r\n --height-2: 2rem;\r\n --height-3: 4rem;\r\n --height-4: 8rem;\r\n --height-5: 16rem;\r\n\r\n --width-1: 1rem;\r\n --width-2: 2rem;\r\n --width-3: 4rem;\r\n --width-4: 8rem;\r\n --width-5: 16rem;\r\n\r\n --max-width-1: 1rem;\r\n --max-width-2: 2rem;\r\n --max-width-3: 4rem;\r\n --max-width-4: 8rem;\r\n --max-width-5: 16rem;\r\n --max-width-6: 32rem;\r\n --max-width-7: 48rem;\r\n --max-width-8: 64rem;\r\n --max-width-9: 96rem;\r\n\r\n --border-radius-none: 0;\r\n --border-radius-1: .125rem;\r\n --border-radius-2: .25rem;\r\n --border-radius-3: .5rem;\r\n --border-radius-4: 1rem;\r\n --border-radius-circle: 100%;\r\n --border-radius-pill: 9999px;\r\n\r\n --border-width-none: 0;\r\n --border-width-1: .125rem;\r\n --border-width-2: .25rem;\r\n --border-width-3: .5rem;\r\n --border-width-4: 1rem;\r\n --border-width-5: 2rem;\r\n\r\n --box-shadow-1: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 );\r\n --box-shadow-2: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 );\r\n --box-shadow-3: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 );\r\n --box-shadow-4: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 );\r\n --box-shadow-5: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 );\r\n\r\n --black: #43474d;\r\n --near-black: #1c2833;\r\n --dark-gray: #707c80;\r\n --mid-gray:#dadedf;\r\n --gray: #c1c7c9;\r\n --silver: #999;\r\n --light-silver: #aaa;\r\n --moon-gray: #ccc;\r\n --light-gray: #f8f8f8;\r\n --near-white: #f4f4f4;\r\n --white: #fff;\r\n\r\n --transparent: transparent;\r\n\r\n --black-90: rgba(0,0,0,.9);\r\n --black-80: rgba(0,0,0,.8);\r\n --black-70: rgba(0,0,0,.7);\r\n --black-60: rgba(0,0,0,.6);\r\n --black-50: rgba(0,0,0,.5);\r\n --black-40: rgba(0,0,0,.4);\r\n --black-30: rgba(0,0,0,.3);\r\n --black-20: rgba(193,199,201,1);\r\n --black-10: rgba(0,0,0,.1);\r\n --black-05: rgba(0,0,0,.05);\r\n --black-025: rgba(0,0,0,.025);\r\n --black-0125: rgba(0,0,0,.0125);\r\n\r\n --white-90: rgba(255,255,255,.9);\r\n --white-80: rgba(255,255,255,.8);\r\n --white-70: rgba(255,255,255,.7);\r\n --white-60: rgba(255,255,255,.6);\r\n --white-50: rgba(255,255,255,.5);\r\n --white-40: rgba(255,255,255,.4);\r\n --white-30: rgba(255,255,255,.3);\r\n --white-20: rgba(255,255,255,.2);\r\n --white-10: rgba(255,255,255,.1);\r\n --white-05: rgba(255,255,255,.05);\r\n --white-025: rgba(255,255,255,.025);\r\n --white-0125: rgba(255,255,255,.0125);\r\n\r\n --dark-red: #e7040f;\r\n --red: #c02f1d;\r\n --light-red: #ff725c;\r\n --orange: #f96302;\r\n --gold: #ffb700;\r\n --yellow: #fcc300;\r\n --light-yellow: #fbf1a9;\r\n --purple: #5e2ca5;\r\n --light-purple: #a463f2;\r\n --dark-pink: #d5008f;\r\n --hot-pink: #ff41b4;\r\n --pink: #ff80cc;\r\n --light-pink: #ffa3d7;\r\n --dark-green: #137752;\r\n --green: #73b93b;\r\n --light-green: #9eebcf;\r\n --navy: #001b44;\r\n --dark-blue: #031f73;\r\n --blue: #3060af;\r\n --light-blue: #3455db;\r\n --lightest-blue: #417ca5;\r\n --washed-blue: #f2f5f8;\r\n --washed-green: #e8fdf5;\r\n --washed-yellow: #fef5d7;\r\n --washed-red: #ffdfdf;\r\n --alice-blue: #eafaff;\r\n --pacific-blue: #0093d6;\r\n\r\n --mobile-menu-width: 256px;\r\n }\r\n`;\r\n\r\nexport const theme = {\r\n name: 'bca',\r\n backgroundColor: 'bg-white',\r\n alert: {\r\n base: 'br3 ba pa2 mv3',\r\n default: {\r\n container: 'bg-light-gray b--mid-gray',\r\n icon: 'gray',\r\n text: 'near-black',\r\n },\r\n error: {\r\n container: 'bg-washed-red b--red',\r\n icon: 'red',\r\n text: 'red',\r\n },\r\n warning: {\r\n container: 'bg-light-gray b--mid-gray',\r\n icon: 'gray',\r\n text: 'near-black',\r\n },\r\n },\r\n configurator: {\r\n global: '',\r\n choice: {\r\n border: 'bw2 br3',\r\n maxWidth: 'mw4',\r\n },\r\n option: {\r\n base: 'relative-ns br3-ns bn ba-ns bw2-ns flex-shrink-0',\r\n dictionaryTermBackgroundColor: 'bg-light-blue',\r\n dictionaryTermColor: 'near-black',\r\n dictionaryTermIconColor: 'light-blue',\r\n image: {\r\n border: 'bn ba-ns br2 b--gray',\r\n withLongLabel: 'br4 pa2 br2-ns pa0-ns',\r\n withoutLongLabel: 'br2',\r\n },\r\n selectedBorder: 'b--light-blue',\r\n selectedIcon: 'light-blue',\r\n selectedText: 'near-black',\r\n title: {\r\n base: 'f3 fw7 pt3 pr3 ttc',\r\n border: '',\r\n },\r\n },\r\n price: {\r\n addsPrice: 'black',\r\n text: 'black',\r\n },\r\n promo: 'red',\r\n summary: {\r\n background: 'bg-washed-blue',\r\n border: 'none',\r\n choiceValue: 'black',\r\n floatingBar: {\r\n background: 'bg-navy',\r\n },\r\n stickyTop: '1rem',\r\n },\r\n },\r\n modal: {\r\n closeButton: 'black',\r\n closeButtonHover: 'hover-bg-light-gray hover-blue',\r\n },\r\n};\r\n","(function(factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(['jquery'], factory);\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = function(root, jQuery) {\r\n if (jQuery === undefined) {\r\n if (typeof window !== 'undefined') {\r\n jQuery = require('jquery');\r\n } else {\r\n jQuery = require('jquery')(root);\r\n }\r\n }\r\n factory(jQuery);\r\n return jQuery;\r\n };\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n}(function($) {\r\n var\r\n // default settings object.\r\n defaults = {\r\n label: 'MENU',\r\n duplicate: true,\r\n duration: 200,\r\n easingOpen: 'swing',\r\n easingClose: 'swing',\r\n closedSymbol: '►',\r\n openedSymbol: '▼',\r\n prependTo: 'body',\r\n parentTag: 'a',\r\n closeOnClick: false,\r\n allowParentLinks: false,\r\n nestedParentLinks: true,\r\n showChildren: false,\r\n removeIds: false,\r\n removeClasses: false,\r\n brand: '',\r\n init: function() {},\r\n beforeOpen: function() {},\r\n beforeClose: function() {},\r\n afterOpen: function() {},\r\n afterClose: function() {}\r\n },\r\n mobileMenu = 'slicknav',\r\n prefix = 'slicknav';\r\n\r\n function Plugin(element, options) {\r\n this.element = element;\r\n\r\n // jQuery has an extend method which merges the contents of two or\r\n // more objects, storing the result in the first object. The first object\r\n // is generally empty as we don't want to alter the default options for\r\n // future instances of the plugin\r\n this.settings = $.extend({}, defaults, options);\r\n\r\n this._defaults = defaults;\r\n this._name = mobileMenu;\r\n\r\n this.init();\r\n }\r\n\r\n Plugin.prototype.init = function() {\r\n var $this = this,\r\n menu = $(this.element),\r\n settings = this.settings,\r\n iconClass,\r\n menuBar;\r\n\r\n // clone menu if needed\r\n if (settings.duplicate) {\r\n $this.mobileNav = menu.clone();\r\n //remove ids from clone to prevent css issues\r\n $this.mobileNav.removeAttr('id');\r\n $this.mobileNav.find('*').each(function(i, e) {\r\n $(e).removeAttr('id');\r\n });\r\n } else {\r\n $this.mobileNav = menu;\r\n\r\n // remove ids if set\r\n $this.mobileNav.removeAttr('id');\r\n $this.mobileNav.find('*').each(function(i, e) {\r\n $(e).removeAttr('id');\r\n });\r\n }\r\n\r\n // remove classes if set\r\n if (settings.removeClasses) {\r\n $this.mobileNav.removeAttr('class');\r\n $this.mobileNav.find('*').each(function(i, e) {\r\n $(e).removeAttr('class');\r\n });\r\n }\r\n\r\n // styling class for the button\r\n iconClass = prefix + '_icon';\r\n\r\n if (settings.label === '') {\r\n iconClass += ' ' + prefix + '_no-text';\r\n }\r\n\r\n if (settings.parentTag == 'a') {\r\n settings.parentTag = 'a href=\"#\"';\r\n }\r\n\r\n // create menu bar\r\n $this.mobileNav.attr('class', prefix + '_nav');\r\n menuBar = $('
');\r\n if (settings.brand !== '') {\r\n var brand = $('
' + settings.brand + '
');\r\n $(menuBar).append(brand);\r\n }\r\n $this.btn = $(\r\n ['<' + settings.parentTag + ' aria-haspopup=\"true\" tabindex=\"0\" class=\"' + prefix + '_btn ' + prefix + '_collapsed\">',\r\n '' + settings.label + '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ''\r\n ].join('')\r\n );\r\n $(menuBar).append($this.btn);\r\n $(settings.prependTo).prepend(menuBar);\r\n menuBar.append($this.mobileNav);\r\n\r\n // iterate over structure adding additional structure\r\n var items = $this.mobileNav.find('li');\r\n $(items).each(function() {\r\n var item = $(this),\r\n data = {};\r\n data.children = item.children('ul').attr('role', 'menu');\r\n item.data('menu', data);\r\n\r\n // if a list item has a nested menu\r\n if (data.children.length > 0) {\r\n\r\n // select all text before the child menu\r\n // check for anchors\r\n\r\n var a = item.contents(),\r\n containsAnchor = false,\r\n nodes = [];\r\n\r\n $(a).each(function() {\r\n if (!$(this).is('ul')) {\r\n nodes.push(this);\r\n } else {\r\n return false;\r\n }\r\n\r\n if ($(this).is(\"a\")) {\r\n containsAnchor = true;\r\n }\r\n });\r\n\r\n var wrapElement = $(\r\n '<' + settings.parentTag + ' role=\"menuitem\" aria-haspopup=\"true\" tabindex=\"-1\" class=\"' + prefix + '_item\"/>'\r\n );\r\n\r\n // wrap item text with tag and add classes unless we are separating parent links\r\n if ((!settings.allowParentLinks || settings.nestedParentLinks) || !containsAnchor) {\r\n var $wrap = $(nodes).wrapAll(wrapElement).parent();\r\n $wrap.addClass(prefix + '_row');\r\n } else\r\n $(nodes).wrapAll('').parent();\r\n\r\n if (!settings.showChildren) {\r\n item.addClass(prefix + '_collapsed');\r\n } else {\r\n item.addClass(prefix + '_open');\r\n }\r\n\r\n item.addClass(prefix + '_parent');\r\n\r\n // create parent arrow. wrap with link if parent links and separating\r\n var arrowElement = $('' + (settings.showChildren ? settings.openedSymbol : settings.closedSymbol) + '');\r\n\r\n if (settings.allowParentLinks && !settings.nestedParentLinks && containsAnchor)\r\n arrowElement = arrowElement.wrap(wrapElement).parent();\r\n\r\n //append arrow\r\n $(nodes).last().after(arrowElement);\r\n\r\n\r\n } else if (item.children().length === 0) {\r\n item.addClass(prefix + '_txtnode');\r\n }\r\n\r\n // accessibility for links\r\n item.children('a').attr('role', 'menuitem').click(function(event) {\r\n //Ensure that it's not a parent\r\n if (settings.closeOnClick && !$(event.target).parent().closest('li').hasClass(prefix + '_parent')) {\r\n //Emulate menu close if set\r\n $($this.btn).click();\r\n }\r\n });\r\n\r\n //also close on click if parent links are set\r\n if (settings.closeOnClick && settings.allowParentLinks) {\r\n item.children('a').children('a').click(function(event) {\r\n //Emulate menu close\r\n $($this.btn).click();\r\n });\r\n\r\n item.find('.' + prefix + '_parent-link a:not(.' + prefix + '_item)').click(function(event) {\r\n //Emulate menu close\r\n $($this.btn).click();\r\n });\r\n }\r\n });\r\n\r\n // structure is in place, now hide appropriate items\r\n $(items).each(function() {\r\n var data = $(this).data('menu');\r\n if (!settings.showChildren) {\r\n $this._visibilityToggle(data.children, null, false, null, true);\r\n }\r\n });\r\n\r\n // finally toggle entire menu\r\n $this._visibilityToggle($this.mobileNav, null, false, 'init', true);\r\n\r\n // accessibility for menu button\r\n $this.mobileNav.attr('role', 'menu');\r\n\r\n // outline prevention when using mouse\r\n $(document).mousedown(function() {\r\n $this._outlines(false);\r\n });\r\n\r\n $(document).keyup(function() {\r\n $this._outlines(true);\r\n });\r\n\r\n // menu button click\r\n $($this.btn).click(function(e) {\r\n e.preventDefault();\r\n $this._menuToggle();\r\n });\r\n\r\n // click on menu parent\r\n $this.mobileNav.on('click', '.' + prefix + '_item', function(e) {\r\n e.preventDefault();\r\n $this._itemClick($(this));\r\n });\r\n\r\n // check for enter key on menu button and menu parents\r\n $($this.btn).keydown(function(e) {\r\n var ev = e || event;\r\n if (ev.keyCode == 13) {\r\n e.preventDefault();\r\n $this._menuToggle();\r\n }\r\n });\r\n\r\n $this.mobileNav.on('keydown', '.' + prefix + '_item', function(e) {\r\n var ev = e || event;\r\n if (ev.keyCode == 13) {\r\n e.preventDefault();\r\n $this._itemClick($(e.target));\r\n }\r\n });\r\n\r\n // allow links clickable within parent tags if set\r\n if (settings.allowParentLinks && settings.nestedParentLinks) {\r\n $('.' + prefix + '_item a').click(function(e) {\r\n e.stopImmediatePropagation();\r\n });\r\n }\r\n };\r\n\r\n //toggle menu\r\n Plugin.prototype._menuToggle = function(el) {\r\n var $this = this;\r\n var btn = $this.btn;\r\n var mobileNav = $this.mobileNav;\r\n\r\n if (btn.hasClass(prefix + '_collapsed')) {\r\n btn.removeClass(prefix + '_collapsed');\r\n btn.addClass(prefix + '_open');\r\n } else {\r\n btn.removeClass(prefix + '_open');\r\n btn.addClass(prefix + '_collapsed');\r\n }\r\n btn.addClass(prefix + '_animating');\r\n $this._visibilityToggle(mobileNav, btn.parent(), true, btn);\r\n };\r\n\r\n // toggle clicked items\r\n Plugin.prototype._itemClick = function(el) {\r\n var $this = this;\r\n var settings = $this.settings;\r\n var data = el.data('menu');\r\n if (!data) {\r\n data = {};\r\n data.arrow = el.children('.' + prefix + '_arrow');\r\n data.ul = el.next('ul');\r\n data.parent = el.parent();\r\n //Separated parent link structure\r\n if (data.parent.hasClass(prefix + '_parent-link')) {\r\n data.parent = el.parent().parent();\r\n data.ul = el.parent().next('ul');\r\n }\r\n el.data('menu', data);\r\n }\r\n if (data.parent.hasClass(prefix + '_collapsed')) {\r\n data.arrow.html(settings.openedSymbol);\r\n data.parent.removeClass(prefix + '_collapsed');\r\n data.parent.addClass(prefix + '_open');\r\n data.parent.addClass(prefix + '_animating');\r\n $this._visibilityToggle(data.ul, data.parent, true, el);\r\n } else {\r\n data.arrow.html(settings.closedSymbol);\r\n data.parent.addClass(prefix + '_collapsed');\r\n data.parent.removeClass(prefix + '_open');\r\n data.parent.addClass(prefix + '_animating');\r\n $this._visibilityToggle(data.ul, data.parent, true, el);\r\n }\r\n };\r\n\r\n // toggle actual visibility and accessibility tags\r\n Plugin.prototype._visibilityToggle = function(el, parent, animate, trigger, init) {\r\n var $this = this;\r\n var settings = $this.settings;\r\n var items = $this._getActionItems(el);\r\n var duration = 0;\r\n if (animate) {\r\n duration = settings.duration;\r\n }\r\n\r\n if (el.hasClass(prefix + '_hidden')) {\r\n el.removeClass(prefix + '_hidden');\r\n //Fire beforeOpen callback\r\n if (!init) {\r\n settings.beforeOpen(trigger);\r\n }\r\n el.slideDown(duration, settings.easingOpen, function() {\r\n\r\n $(trigger).removeClass(prefix + '_animating');\r\n $(parent).removeClass(prefix + '_animating');\r\n\r\n //Fire afterOpen callback\r\n if (!init) {\r\n settings.afterOpen(trigger);\r\n }\r\n });\r\n el.attr('aria-hidden', 'false');\r\n items.attr('tabindex', '0');\r\n $this._setVisAttr(el, false);\r\n } else {\r\n el.addClass(prefix + '_hidden');\r\n\r\n //Fire init or beforeClose callback\r\n if (!init) {\r\n settings.beforeClose(trigger);\r\n } else if (trigger == 'init') {\r\n settings.init();\r\n }\r\n\r\n el.slideUp(duration, this.settings.easingClose, function() {\r\n el.attr('aria-hidden', 'true');\r\n items.attr('tabindex', '-1');\r\n $this._setVisAttr(el, true);\r\n el.hide(); //jQuery 1.7 bug fix\r\n\r\n $(trigger).removeClass(prefix + '_animating');\r\n $(parent).removeClass(prefix + '_animating');\r\n\r\n //Fire init or afterClose callback\r\n if (!init) {\r\n settings.afterClose(trigger);\r\n } else if (trigger == 'init') {\r\n settings.init();\r\n }\r\n });\r\n }\r\n };\r\n\r\n // set attributes of element and children based on visibility\r\n Plugin.prototype._setVisAttr = function(el, hidden) {\r\n var $this = this;\r\n\r\n // select all parents that aren't hidden\r\n var nonHidden = el.children('li').children('ul').not('.' + prefix + '_hidden');\r\n\r\n // iterate over all items setting appropriate tags\r\n if (!hidden) {\r\n nonHidden.each(function() {\r\n var ul = $(this);\r\n ul.attr('aria-hidden', 'false');\r\n var items = $this._getActionItems(ul);\r\n items.attr('tabindex', '0');\r\n $this._setVisAttr(ul, hidden);\r\n });\r\n } else {\r\n nonHidden.each(function() {\r\n var ul = $(this);\r\n ul.attr('aria-hidden', 'true');\r\n var items = $this._getActionItems(ul);\r\n items.attr('tabindex', '-1');\r\n $this._setVisAttr(ul, hidden);\r\n });\r\n }\r\n };\r\n\r\n // get all 1st level items that are clickable\r\n Plugin.prototype._getActionItems = function(el) {\r\n var data = el.data(\"menu\");\r\n if (!data) {\r\n data = {};\r\n var items = el.children('li');\r\n var anchors = items.find('a');\r\n data.links = anchors.add(items.find('.' + prefix + '_item'));\r\n el.data('menu', data);\r\n }\r\n return data.links;\r\n };\r\n\r\n Plugin.prototype._outlines = function(state) {\r\n if (!state) {\r\n $('.' + prefix + '_item, .' + prefix + '_btn').css('outline', 'none');\r\n } else {\r\n $('.' + prefix + '_item, .' + prefix + '_btn').css('outline', '');\r\n }\r\n };\r\n\r\n Plugin.prototype.toggle = function() {\r\n var $this = this;\r\n $this._menuToggle();\r\n };\r\n\r\n Plugin.prototype.open = function() {\r\n var $this = this;\r\n if ($this.btn.hasClass(prefix + '_collapsed')) {\r\n $this._menuToggle();\r\n }\r\n };\r\n\r\n Plugin.prototype.close = function() {\r\n var $this = this;\r\n if ($this.btn.hasClass(prefix + '_open')) {\r\n $this._menuToggle();\r\n }\r\n };\r\n\r\n $.fn[mobileMenu] = function(options) {\r\n var args = arguments;\r\n\r\n // Is the first parameter an object (options), or was omitted, instantiate a new instance\r\n if (options === undefined || typeof options === 'object') {\r\n return this.each(function() {\r\n\r\n // Only allow the plugin to be instantiated once due to methods\r\n if (!$.data(this, 'plugin_' + mobileMenu)) {\r\n\r\n // if it has no instance, create a new one, pass options to our plugin constructor,\r\n // and store the plugin instance in the elements jQuery data object.\r\n $.data(this, 'plugin_' + mobileMenu, new Plugin(this, options));\r\n }\r\n });\r\n\r\n // If is a string and doesn't start with an underscore or 'init' function, treat this as a call to a public method.\r\n } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {\r\n\r\n // Cache the method call to make it possible to return a value\r\n var returns;\r\n\r\n this.each(function() {\r\n var instance = $.data(this, 'plugin_' + mobileMenu);\r\n\r\n // Tests that there's already a plugin-instance and checks that the requested public method exists\r\n if (instance instanceof Plugin && typeof instance[options] === 'function') {\r\n\r\n // Call the method of our plugin instance, and pass it the supplied arguments.\r\n returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1));\r\n }\r\n });\r\n\r\n // If the earlier cached method gives a value back return the value, otherwise return this to preserve chainability.\r\n return returns !== undefined ? returns : this;\r\n }\r\n };\r\n}));\r\n"],"sourceRoot":""}