{"version":3,"file":"level.js","mappings":"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","sources":["webpack:///../../node_modules/brei-project-utils/utils.js","webpack:///./modules/textarea.js","webpack:///./modules/forms.js","webpack:///./lib/plugin.js","webpack:///./modules/video.js","webpack:///./modules/media.js","webpack:///./level.js"],"sourcesContent":["/**\n * @name arrow\n * @returns {string}\n */\nconst arrow = function arrow() {\n\treturn `
\n\t\t\t\t
${iconTemplate('chevron')}
\n\t\t\t
`;\n};\n\n/**\n * @name buildQuery\n * @param {object} data\n * @returns {string}\n */\nconst buildQuery = function buildQuery(data) {\n\t// Create an array to hold the key/value pairs\n\tlet query = [];\n\n\t// Loop through the data object\n\tfor (let key in data) {\n\t\tif (data.hasOwnProperty(key)) {\n\t\t\tif (Array.isArray(data[key])) {\n\t\t\t\tdata[key].forEach(function (value) {\n\t\t\t\t\tquery.push(key + '=' + encodeURIComponent(value));\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tquery.push(key + '=' + encodeURIComponent(data[key]));\n\t\t\t}\n\t\t}\n\t}\n\n\t// Join each item in the array with an '&' and return the resulting string\n\tquery = query.join('&');\n\n\treturn query;\n};\n\n/**\n * @name closeButton\n * @param {string} style\n * @param {string} label\n */\nconst closeButton = function closeButton(style, label, dataSelector) {\n\treturn ``;\n};\n\n/**\n * @name dirButton\n * @param {string} style\n * @param {string} label\n * @returns {string}\n */\nconst dirButton = function dirButton(url, style, label) {\n\treturn `${iconTemplate('chevron')}`;\n};\n\n/**\n * @name filterChip\n * @param {string} id\n * @returns {string}\n */\nconst filterChip = function filterChip(id) {\n\treturn ``;\n};\n\n/**\n * @name getData\n * @param {string} url\n * @param {string} data\n * @param {string} type\n * @returns {object}\n */\nconst getData = function getData(url, data, type) {\n\tconst deferred = $.Deferred();\n\n\t$.ajax({\n\t\turl: url,\n\t\tmethod: 'GET',\n\t\tdata: data,\n\t\tdataType: type,\n\t\tsuccess(data) {\n\t\t\tdeferred.resolve(data);\n\t\t},\n\t\terror(jqXHR, textStatus) {\n\t\t\tdeferred.reject(textStatus);\n\t\t}\n\t});\n\n\treturn deferred.promise();\n};\n\n/**\n * @name getRandomNumber\n * @returns {number}\n * @description // Returns a 10 digit, random number\n */\nconst getRandomNumber = function getRandomNumber() {\n\treturn Math.floor(Math.random() * 9000000000) + 1000000000;\n};\n\n/**\n * @name iconTemplate\n * @param {string} name\n * @returns {string}\n */\nconst iconTemplate = function iconTemplate(name) {\n\treturn `\n\t\t\n\t\t\t\n\t\t\n\t`;\n};\n\n/**\n * @name mql\n * @const {object}\n */\nconst mql = {\n\tsmall: window.matchMedia('(min-width: 400px)'),\n\tmedium: window.matchMedia('(min-width: 768px)'),\n\tlarge: window.matchMedia('(min-width: 1024px)'),\n\txlarge: window.matchMedia('(min-width: 1200px)'),\n\txxlarge: window.matchMedia('(min-width: 1440px)'),\n\txxxlarge: window.matchMedia('(min-width: 1920px)')\n};\n\n/**\n * @name queryStringToJSON\n * @param {string} qs\n * @returns {object}\n */\nconst queryStringToJSON = function queryStringToJSON(qs) {\n\tqs = qs || window.location.search.slice(1);\n\n\tlet pairs = qs.split('&');\n\tlet result = {};\n\n\tpairs.forEach(function (p) {\n\t\tlet pair = p.split('=');\n\t\tlet key = pair[0];\n\t\tlet value = decodeURIComponent(pair[1] || '');\n\n\t\tif(result[key]) {\n\t\t\tif(Object.prototype.toString.call(result[key]) === '[object Array]') {\n\t\t\t\tresult[key].push(value);\n\t\t\t} else {\n\t\t\t\tresult[key] = [result[key], value];\n\t\t\t}\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\t});\n\n\treturn JSON.parse(JSON.stringify(result));\n};\n\n/**\n * @name ready\n * @param {func} callbackFunc\n * @description On DOM ready, execute callback function\n */\nconst ready = function ready(callbackFunc) {\n\t// Document is ready; call the callback function\n\tif (document.readyState !== 'loading') {\n\t\tcallbackFunc();\n\t\t// Modern browsers\n\t} else if (document.addEventListener) {\n\t\tdocument.addEventListener('DOMContentLoaded', callbackFunc, false);\n\t\t// Old IE browsers (IE <= 8)\n\t} else {\n\t\tdocument.attachEvent('onreadystatechange', function () {\n\t\t\tif (document.readyState === 'complete') {\n\t\t\t\tcallbackFunc();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/**\n * @name scrollToTop\n * @param {object} element\n * @param {number} duration\n */\nconst scrollToTop = function scrollToTop(element, duration) {\n\t$('html, body').animate({\n\t\tscrollTop: element.offset().top\n\t}, duration);\n};\n\n/**\n * @name speechBubble\n * @param {string} style\n * @param {string} text\n * @returns {string}\n */\nconst speechBubble = function speechBubble(style, id, text) {\n\treturn `\n\t\t
0) ? (' ' + style) : ''}\" role=\"tooltip\">\n\t\t\t${text}\n\t\t\t${closeButton('close-button--light close-button--small', 'Click to close tooltip')}\n\t\t
\n\t`;\n};\n\nconst _extends = Object.assign || function (target) { for (let i = 1; i < arguments.length; i++) { let source = arguments[i]; for (let key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nconst utils = {\n\tarrow,\n\tbuildQuery,\n\tcloseButton,\n\tdirButton,\n\tfilterChip,\n\tgetData,\n\tgetRandomNumber,\n\ticonTemplate,\n\tmql,\n\tqueryStringToJSON,\n\tready,\n\tscrollToTop,\n\tspeechBubble,\n\t_extends\n};\n\nexport {\n\tarrow,\n\tbuildQuery,\n\tcloseButton,\n\tdirButton,\n\tfilterChip,\n\tgetData,\n\tgetRandomNumber,\n\ticonTemplate,\n\tmql,\n\tqueryStringToJSON,\n\tready,\n\tscrollToTop,\n\tspeechBubble,\n\t_extends\n};\n\nexport { utils as default };\n","import { ready } from 'brei-project-utils';\n\nclass Textarea {\n\tconstructor(element, options) {\n\t\tthis.defaults = { // Defaults\n\t\t\tmaxlength: ($(element).attr('maxlength')) ? $(element).attr('maxlength') : 999\n\t\t};\n\t\tthis.element = element;\n\t\tthis.options = $.extend({}, this.defaults, options);\n\t\tthis.enabled = ($(element).attr('maxlength')) ? true : false;\n\n\t\tif (this.enabled) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tthis.appendCount();\n\t\tthis.bindUIActions();\n\t}\n\n\tbindUIActions() {\n\t\t$(this.element).on('keyup', this.onKeyUp.bind(this));\n\t\t$(this.element).on('render', this.render.bind(this));\n\n\t\tready(() => {\n\t\t\t$(this.element).trigger('render', [$(this.element).val().length, this.options.maxlength]);\n\t\t});\n\t}\n\n\tonKeyUp(e) {\n\t\tconst count = $(e.target).val().length;\n\n\t\t$(e.target).trigger('render', [count, this.options.maxlength]);\n\t}\n\n\tpad(n) {\n\t\treturn (n < 100 && n >= 10) ? (`${n}`) : (n < 10) ? (`0${n}`) : n;\n\t}\n\n\trender(e, count, maxlength) {\n\t\tconst $textCount = $(e.target).parent('.form__field').find('.form__text-count');\t\t\n\t\tconst remaining = maxlength - count;\t\t\n\t\t$textCount.empty().text(`${this.pad(remaining)}/${maxlength} Characters Remaining`);\n\n\t}\n\n\tappendCount() {\n\t\tconst parent = $(this.element).parent('.form__field');\n\n\t\tif (parent.length > 0) {\n\t\t\tconst $textCount = parent.find('.form__text-count');\n\n\t\t\tif ($textCount.length <= 0) {\n\t\t\t\tparent.append('
');\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport { Textarea }\n","import { plugin } from '../lib/plugin';\nimport { Textarea } from './textarea';\n\nconst forms = {\n\n\tvalidClass: 'form__field--is-valid',\n\tinvalidClass: 'form__field--is-invalid',\n\n\telem: {\n\t\t$body: $('body'),\n\t\t$selects: $('select:not([multiple])'),\n\t\t$textarea: $('textarea')\n\t},\n\n\tinit() {\n\t\t// Init plugins\n\t\tplugin('Textarea', Textarea);\n\n\t\tthis.bindUIActions();\n\t\tthis.selectability();\n\t},\n\n\tbindUIActions() {\n\n\t\tthis.elem.$body\n\t\t\t.on('click', '.form input[type=\"submit\"], .form button[type=\"submit\"]', this.onClick.bind(this))\n\t\t\t.on('input', 'input,textarea', this.input.bind(this))\n\t\t\t.on('change', this.elem.$selects, this.input.bind(this));\n\n\t\tthis.elem.$textarea.Textarea();\n\n\t},\n\n\tcheckFormValid() {\n\t\tlet $invalid = $('.form [required]:invalid');\n\n\t\treturn ($invalid.length <= 0);\n\t},\n\n\tonClick(e) {\n\t\tlet $form = $(e.target).parents('form');\n\n\t\tif ($form.hasClass('mobile-search')) {\n\t\t\treturn;\n\t\t}\n\n\t\t$form.addClass('js-was-submitted');\n\n\t\tif (!$form.hasClass('js-is-valid')) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (this.checkFormValid()) {\n\t\t\t$form.addClass('js-is-valid');\n\t\t\t$form[0].submit();\n\t\t} else {\n\t\t\tlet $field = $('[required]:invalid').first().closest('.form__field');\n\n\t\t\t$('[required]').each((i) => {\n\t\t\t\tthis.input($(`[required]:eq(${i.toString()})`));\n\t\t\t});\n\n\t\t\tscrollToTop($field, 425);\n\t\t}\n\t},\n\n\tinput(e) {\n\t\tlet $input = (e.length) ? e : $(e.target);\n\t\t// let isRequired = typeof $input.attr('required') !== 'undefined' && $input.attr('required') !== false;\n\t\tlet isEmpty = $input.val() === '';\n\n\t\tif ($input.is(':invalid')) {\n\t\t\t$input.parent('.form__field').removeClass(this.validClass).addClass(this.invalidClass);\n\t\t} else {\n\t\t\tif (!isEmpty) {\n\t\t\t\t$input.parent('.form__field').removeClass(this.invalidClass).addClass(this.validClass);\n\t\t\t} else {\n\t\t\t\t$input.parent('.form__field').removeClass(this.invalidClass).removeClass(this.validClass);\n\t\t\t}\n\t\t}\n\t},\n\n\tselectability() {\n\t\tif (this.elem.$selects.length > 0) {\n\t\t\tthis.elem.$selects.selectability({\n\t\t\t\t'position': 'above',\n\t\t\t\t'floatLabel': 'true'\n\t\t\t});\n\t\t\t\n\n\t\t\t$('.selectability[aria-disabled=\"true\"]').attr('tabindex', '-1');\n\t\t}\n\t}\n\n};\n\nexport { forms };\n","/**\n * Generate a jQuery plugin\n * @name plugin\n * @param pluginName [string] Plugin name\n * @param className [object] Class of the plugin\n * @param shortHand [bool] Generate a shorthand as $.pluginName\n */\nconst plugin = function plugin(pluginName, className, shortHand = false) {\n\tlet dataName = `__${pluginName}`;\n\tlet old = $.fn[pluginName];\n\n\t$.fn[pluginName] = function (options) {\n\t\treturn this.each(function () {\n\t\t\tlet $this = $(this);\n\t\t\tlet data = $this.data(dataName);\n\n\t\t\tif (!data) {\n\t\t\t\t$this.data(dataName, (data = new className(this, options)));\n\t\t\t}\n\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tdata[options]();\n\t\t\t}\n\t\t});\n\t};\n\n\t// - Short hand\n\tif (shortHand) {\n\t\t$[pluginName] = (options) => $({})[pluginName](options);\n\t}\n\n\t// - No conflict\n\t$.fn[pluginName].noConflict = () => $.fn[pluginName] = old;\n}\n\nexport { plugin };","const video = {\n\n\t$window: $(window),\n\n\telem: {\n\t\t$body: $('body'),\n\t\t$play: $('.play-button')\n\t},\n\n\tinit() {\n\t\tif (this.elem.$play.length > 0) {\n\t\t\tthis.bindSelectors();\n\t\t\tthis.bindUIActions();\n\t\t}\n\t},\n\n\tbindUIActions() {\n\n\t\tthis.elem.$play.magnificPopup({\n\t\t\ttype: 'iframe',\n\t\t\tcloseMarkup: '',\n\t\t\tiframe: {\n\t\t\t\tpatterns: {\n\t\t\t\t\tyoutube: {\n\t\t\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1&modestbranding=1&rel=0'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t},\n\n\tbindSelectors() {\n\n\t\tthis.elem.$body = $('body');\n\t\tthis.elem.$play = $('.play-button');\n\n\t}\n\n};\n\nexport { video };\n","/**\n * Full Image Gallery component.\n * @module components/media\n */\nimport { _extends } from 'brei-project-utils';\n\nconst media = {\n\n\telem: {\n\t\t$body: $('body'),\n\t\t$slider: $('.media__items')\n\t},\n\n\toptions: {\n\t\tadaptiveHeight: false,\n\t\tdots: false,\n\t\tdraggable: true,\n\t\tfade: true,\n\t\tinfinite: true,\n\t\tresponsive: [],\n\t\trows: 0,\n\t\tslidesToScroll: 1,\n\t\tslidesToShow: 1,\n\t\tspeed: 500,\n\t\tappendArrows: false,\n\t\tx_of_x: $('.media-amount'),\n\t\tcustomPaging: function (slider) {\n\t\t\tlet lSlide = slider.slickCurrentSlide() + 1;\n \t\tlet lCount = slider.slideCount;\n\t\t\t/* This add slide x of x to desktop & mobile */\n\t\t\tthis.x_of_x.text(`${lSlide} / ${lCount}`);\n\t\t},\n\t\tclickNav: function(e){\n\t\t\t/* mobile slide click */\n\t\t\te.preventDefault();\n\t\t\tlet lNext = e.target.parentNode.dataset.id === 'next';\n\n\t\t\t//alert(lNext)\n\t\t\t\n\t\t\tif (lNext) {\n\t\t\t\tmedia.elem.$slider.slick('slickNext')\n\t\t\t} else {\n\t\t\t\tmedia.elem.$slider.slick('slickPrev')\n\t\t\t}\n\t\t}\n\t},\n\n\n\n\tinit() {\n\n\t\tif (this.elem.$slider.length > 0) {\n\t\t\tthis.activateSliders();\n\t\t}\n\n\t},\n\n\tactivateSliders() {\n\n\t\tconst _this = this;\n\n\t\tthis.elem.$slider.each(function () {\n\t\t\tif($(this).children().length) {\n\n\t\t\t\tlet prev = $(this).parents('.js-has-carousel').find('.js-prev');\n\t\t\t\tlet next = $(this).parents('.js-has-carousel').find('.js-next');\n\n\t\t\t\tlet options = _extends({}, _this.options);\n\t\t\t\t\n\t\t\t\tif (prev.length > 0) {\n\t\t\t\t\toptions.prevArrow = prev;\n\t\t\t\t}\n\n\t\t\t\tif (next.length > 0) {\n\t\t\t\t\toptions.nextArrow = next;\n\t\t\t\t}\n\n\t\t\t\t$(this).on('afterChange', function(event,slick,currentSlide) {\n\t\t\t\t\tlet caption = $(this).find('.media__imagery').eq($(this).slick('slickCurrentSlide')).find('figcaption').html();\n\t\t\t\t\tif(caption === undefined) {\n\t\t\t\t\t\tcaption = '';\n\t\t\t\t\t}\n\t\t\t\t\t/* Assign the x of x slide count */\n\t\t\t\t\toptions.customPaging(slick, currentSlide);\n\t\t\t\t\t$(this).closest('.media').find('.media__caption').html(caption);\n\t\t\t\t}).on('init', function(event,slick,currentSlide) {\n\t\t\t\t\tlet caption = $(this).find('.media__imagery').eq(0).find('figcaption').html();\n\t\t\t\t\tif(caption === undefined) {\n\t\t\t\t\t\tcaption = '';\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$(this).closest('.media').find('.media__caption').html(caption);\n\n\n\t\t\t\t\t/* Assign the x of x slide count */\n\t\t\t\t\toptions.customPaging(slick, currentSlide);\n\t\t\t\t\t/* Move the controls for proper placement */\n\t\t\t\t\t// let lControls = $('#media_controls');\n\t\t\t\t\t// $(lControls).appendTo('#media_items');\n\n\t\t\t\t\tlet lMedia = $(this).closest('.media');\n\t\t\t\t\tlet lControls = lMedia.find('[data-id=\"media_controls\"]');\n\t\t\t\t\tlet lItems = lMedia.find('.media__items');\n\t\t\t\t\t$(lControls).appendTo(lItems);\n\t\t\t\t\t\n\t\t\t\t\t/* Assign functions for small screens */\n\t\t\t\t\t//$('#media_controls_sm a').on('click', options.clickNav );\n\t\t\t\t\tlMedia.find('.media__controls a').on('click', options.clickNav );\n\t\t\t\t\t\n\n\t\t\t\t}).slick(options);\n\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\n};\n\nexport { media };\n\n// to use:\n//\n// import media from './modules/media';\n//\n// media.init();\n","import { ready } from 'brei-project-utils';\n\nimport { forms } from './modules/forms';\nimport { video } from './modules/video';\nimport { media } from './modules/media';\n//import { nextSteps } from './modules/next-steps';\n\nconst main = {\n\n\telem: {\n\t},\n\n\tinit() {\n\n\t\tforms.init();\n\t\tvideo.init();\n\t\tmedia.init();\n\t\t//nextSteps.init();\t\t\n\n\t}\n\n};\n\nready(function () {\n\tmain.init();\n});\n"],"names":["window","matchMedia","ready","callbackFunc","document","readyState","addEventListener","attachEvent","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","Textarea","element","options","_classCallCheck","this","defaults","maxlength","$","attr","extend","enabled","init","value","appendCount","bindUIActions","_this","on","onKeyUp","bind","render","trigger","val","e","count","n","concat","remaining","parent","find","empty","text","pad","append","forms","validClass","invalidClass","elem","$body","$selects","$textarea","pluginName","className","shortHand","undefined","dataName","old","fn","each","$this","data","noConflict","plugin","selectability","onClick","input","checkFormValid","$form","parents","hasClass","addClass","preventDefault","submit","$field","first","closest","toString","scrollToTop","$input","isEmpty","is","removeClass","video","$window","$play","bindSelectors","magnificPopup","type","closeMarkup","iframe","patterns","youtube","src","media","$slider","adaptiveHeight","dots","draggable","fade","infinite","responsive","rows","slidesToScroll","slidesToShow","speed","appendArrows","x_of_x","customPaging","slider","lSlide","slickCurrentSlide","lCount","slideCount","clickNav","parentNode","dataset","id","slick","activateSliders","children","prev","next","prevArrow","nextArrow","event","currentSlide","caption","eq","html","lMedia","lControls","lItems","appendTo","main"],"sourceRoot":""}