{"version":3,"sources":["webpack:///article-landing.min.js","webpack:///./wwwroot/js/app/article-landing.js","webpack:///./wwwroot/js/app/common.js?641b*","webpack:///./wwwroot/js/app/module.js?28fa*","webpack:///./~/events/events.js?7c71*","webpack:///./~/modaal/dist/js/modaal.min.js?a5f0*","webpack:///./~/jquery-mask-plugin/dist/jquery.mask.js?713d*","webpack:///./~/mustache/mustache.js"],"names":["__nha_webpackJsonp","module","exports","__webpack_require__","$","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","defineProperty","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_get","get","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","parent","getPrototypeOf","getter","_common","_common2","_module","_module2","_util","_util2","_mustache","_mustache2","ArticleLanding","_Module","options","this","_this","templates","articleAliasPath","window","globals","__articlesAliasPath","articlesApiPath","__articlesApiPath","$tagFilter","$featuredArticle","featuredArticleNodeID","Number","parseInt","data","hasFeaturedArticle","isNaN","_this2","then","emit","articleCard","html","Mustache","parse","pagerNumberCard","val","equalHeights","tag","Util","getQueryString","hasValue","trim","toLowerCase","trigger","_this3","on","debounce","e","onResize","onTagFilterChanged","registerPagerClickEvent","pagerSelection","tagFilterClicked","_this4","nodeAliasPath","selectedTag","selectedPageNumber","getSelectedPageNumber","removeClass","ajax","method","url","cultureCode","common","getCultureCode","nodealiaspath","selectedpage","dataType","done","response","renderArticleTemplate","Data","ThumbnailArticles","renderPagerTemplates","Pager","addClass","displayFeaturedArticle","mobilePagination","checkWidth","ViewPort","Desktop","animate","scrollTop","offset","top","hide","show","activePage","lastPage","selectedPage","text","pager","CurrentPage","remove","StartPage","EndPage","active","pagerNumber","pageNumber","render","after","TotalPages","articlesArray","_this5","filter","article","NodeID","articles","$articleListHTML","first","empty","append","selectorFilter","_this6","selector","getArticleListing","Mobile","equalHeightAll","removeAttr","Module","articleLanding","init","_jqueryMaskPlugin","SCHOOL_PATTERN","Common","dynamicModal","$transparencyExpanded","modalIframe","modalInline","modalAuthor","setBodyPadding","mask","stopPropagation","currentTarget","focus","document","body","closingNav","initAriaExpanded","navObserver","ResizeObserver","mutations","targetElements","each","height","prev","attr","observe","mobileNav","mobileNavItem","tabbingNav","event","hasClass","toggleClass","css","fadeOut","is","fadeIn","find","path","location","pathname","isSchoolSite","matches","exec","index","substring","indexOf","menuItems","closest","slideToggle","headerHeight","outerHeight","children","keyCode","preventDefault","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","child","err","return","$activeElem","activeElement","$prevItem","shiftKey","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","menuItem","blur","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","modaal","type","width","background_scroll","before_open","after_open","after_close","custom_class","bind","IFrame","iFrameResize","heightCalculationMethod","iFrameResizer","close","test","_events","_events2","_EventEmitter","_options","assign","initialized","main","Promise","resolve","_bindEvents","bindEvents","EventEmitter","_maxListeners","isFunction","arg","isNumber","isObject","isUndefined","defaultMaxListeners","setMaxListeners","n","er","handler","len","args","listeners","error","arguments","Error","context","Array","slice","apply","addListener","listener","m","newListener","push","warned","console","trace","once","g","removeListener","fired","list","position","splice","removeAllListeners","ret","listenerCount","evlistener","emitter","jQuery","a","t","o","dom","$elem","extend","fn","xhr","scope","is_open","id","Date","getTime","Math","random","toString","private_options","active_class","lastFocus","is_locked","hide_close","close_btn","close_aria_label","close_text","animation","animation_speed","after_callback_delay","should_open","create_basic","source","fetch_ajax","create_confirm","create_image","create_iframe","create_video","create_instagram","watch_events","start_open","click","off","contains","getElementById","modaal_close","gallery_update","overlay_close","confirm_callback","confirm_cancel_callback","build_modal","l","fullscreen","s","accessible_title","appendTo","modaal_overlay","contents","clone","instagram_id","loading_class","loading_content","cache","success","instgrm","Embeds","process","ajax_error_class","abort","ajax_success","statusText","confirm_title","confirm_content","confirm_button_text","confirm_cancel_button_text","d","r","getAttribute","href","src","alt","rawdesc","c","p","_","v","f","before_image_change","stop","opacity","display","prop","gallery_active_class","after_image_change","modaal_open","setTimeout","before_close","background","overlay_opacity","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","__webpack_provided_window_dot_jQuery","factory","Zepto","Mask","el","invalid","getCaret","sel","pos","ctrl","dSel","selection","cSelStart","selectionStart","navigator","appVersion","createRange","moveStart","setCaret","range","setSelectionRange","createTextRange","collapse","moveEnd","select","events","which","maskDigitPosMapOld","maskDigitPosMap","jMaskGlobals","useInput","behaviour","keydown","keyup","oldValue","selectOnFocus","clearIfNotMatch","regexMask","getRegexMask","translation","pattern","optional","recursive","oRecursive","maskChunks","jMask","charAt","replace","digit","join","RegExp","destroyEvents","isInput","calculateCaretPosition","oldVal","newVal","getMasked","caretPosNew","caretPosOld","newValL","oldValL","maskDigitsBeforeCaret","maskDigitsAfterCaret","maskDigitsBeforeCaretAll","maskDigitsBeforeCaretAllOld","caretPos","inArray","byPassKeys","keyStrokeCompensation","callbacks","skipMaskChars","lastMaskChar","check","buf","maskLen","valLen","addMethod","resetPos","maskDigitCount","maskDigitPosArr","reverse","lastUntranslatedMaskChar","maskDigit","valDigit","match","fallback","lastMaskCharDigit","mapMaskdigitPositions","maskDiff","changed","defaultArgs","callback","name","criteria","caret","placeholder","getCleanVal","getMaskedVal","onlyMask","maxlength","maskWatchers","HTMLAttributes","input","prefix","notSameMaskObject","field","maskObject","stringify","JSON","eventSupported","eventName","isSupported","createElement","setAttribute","interval","watchInterval","watchInputs","maskFunction","clearInterval","setInterval","masked","unmask","dataMask","removeData","cleanVal","applyDataMask","maskElements","$selector","dataMaskAttr","userAgent","watchDataMask","0","9","#","A","S","global","nodeName","mustache","typeStr","isArray","escapeRegExp","string","hasProperty","propName","testRegExp","re","regExpTest","isWhitespace","nonSpaceRe","escapeHtml","String","entityMap","parseTemplate","template","tags","stripSpace","hasTag","nonSpace","spaces","tokens","pop","compileTags","tagsToCompile","split","spaceRe","openingTagRe","closingTagRe","closingCurlyRe","sections","start","chr","token","openSection","scanner","Scanner","eos","scanUntil","valueLength","scan","tagRe","whiteRe","equalsRe","curlyRe","nestTokens","squashTokens","lastToken","squashedTokens","numTokens","section","nestedTokens","collector","tail","Context","view","parentContext",".","Writer","objectToString","&","<",">","\"","'","/","`","=","search","lookup","hasOwnProperty","names","lookupHit","clearCache","partials","renderTokens","originalTemplate","symbol","buffer","renderSection","renderInverted","renderPartial","unescapedValue","escapedValue","rawValue","subRender","j","escape","version","defaultWriter","to_html","send","result"],"mappings":"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","file":"article-landing.min.js","sourcesContent":["__nha_webpackJsonp([2],[\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function($) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\t\n\tvar _common = __webpack_require__(1);\n\t\n\tvar _common2 = _interopRequireDefault(_common);\n\t\n\tvar _module = __webpack_require__(3);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tvar _util = __webpack_require__(5);\n\t\n\tvar _util2 = _interopRequireDefault(_util);\n\t\n\tvar _mustache = __webpack_require__(11);\n\t\n\tvar _mustache2 = _interopRequireDefault(_mustache);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar ArticleLanding = function (_Module) {\n\t _inherits(ArticleLanding, _Module);\n\t\n\t function ArticleLanding(options) {\n\t _classCallCheck(this, ArticleLanding);\n\t\n\t var _this = _possibleConstructorReturn(this, (ArticleLanding.__proto__ || Object.getPrototypeOf(ArticleLanding)).call(this, options));\n\t\n\t _this.templates = {};\n\t\n\t _this.articleAliasPath = window.globals.__articlesAliasPath;\n\t _this.articlesApiPath = window.globals.__articlesApiPath;\n\t _this.$tagFilter = $('#ArticleTags');\n\t\n\t _this.$featuredArticle = $('#featured-article');\n\t\n\t _this.featuredArticleNodeID = Number.parseInt($('#featured-article').data('node-id'));\n\t\n\t _this.hasFeaturedArticle = !Number.isNaN(_this.featuredArticleNodeID);\n\t return _this;\n\t }\n\t\n\t _createClass(ArticleLanding, [{\n\t key: 'init',\n\t value: function init() {\n\t var _this2 = this;\n\t\n\t return _get(ArticleLanding.prototype.__proto__ || Object.getPrototypeOf(ArticleLanding.prototype), 'init', this).call(this).then(function () {\n\t return _this2.emit('init');\n\t });\n\t }\n\t }, {\n\t key: 'main',\n\t value: function main() {\n\t\n\t // Parse the templates now, and Mustache will cache them\n\t this.templates.articleCard = $('#article-card-template').html();\n\t _mustache2.default.parse(this.templates.articleCard);\n\t this.templates.pagerNumberCard = $('#pager-number-card-template').html();\n\t _mustache2.default.parse(this.templates.pagerNumberCard);\n\t\n\t this.$tagFilter.val(null);\n\t this.equalHeights();\n\t\n\t var tag = _util2.default.getQueryString('tag');\n\t if (_util2.default.hasValue(tag)) {\n\t this.$tagFilter.val(_util2.default.trim(tag).toLowerCase());\n\t this.$tagFilter.trigger('change');\n\t }\n\t }\n\t }, {\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t var _this3 = this;\n\t\n\t $(window).on('resize', _util2.default.debounce(function (e) {\n\t return _this3.onResize(e);\n\t }));\n\t\n\t this.$tagFilter.on('change', _util2.default.debounce(function (e) {\n\t return _this3.onTagFilterChanged(e);\n\t }));\n\t\n\t this.registerPagerClickEvent();\n\t }\n\t }, {\n\t key: 'getArticleListing',\n\t value: function getArticleListing(pagerSelection, tagFilterClicked) {\n\t var _this4 = this;\n\t\n\t var nodeAliasPath = this.articleAliasPath;\n\t var selectedTag = this.$tagFilter.val();\n\t\n\t // If a filter is in use we will handle paging differently\n\t pagerSelection = tagFilterClicked ? 'filtering' : pagerSelection;\n\t\n\t var selectedPageNumber = this.getSelectedPageNumber(pagerSelection);\n\t\n\t $('.nha-load').removeClass('hidden');\n\t\n\t $.ajax({\n\t method: 'GET',\n\t url: this.articlesApiPath,\n\t data: {\n\t cultureCode: _common2.default.getCultureCode(),\n\t nodealiaspath: nodeAliasPath,\n\t selectedpage: selectedPageNumber,\n\t tag: selectedTag\n\t },\n\t dataType: 'json'\n\t }).done(function (response) {\n\t _this4.renderArticleTemplate(response.Data.ThumbnailArticles);\n\t _this4.renderPagerTemplates(response.Data.Pager);\n\t $('.nha-load').addClass('hidden');\n\t _this4.displayFeaturedArticle();\n\t\n\t _common2.default.mobilePagination();\n\t\n\t // scroll to top of list\n\t if (_util2.default.checkWidth() === _util.ViewPort.Desktop) {\n\t $('html, body').animate({\n\t scrollTop: $(\"#article-list\").offset().top - 10\n\t }, 1000);\n\t } else {\n\t $('html, body').animate({\n\t scrollTop: $(\"#article-list\").offset().top - 80\n\t }, 1000);\n\t }\n\t });\n\t }\n\t }, {\n\t key: 'displayFeaturedArticle',\n\t value: function displayFeaturedArticle() {\n\t\n\t // If the tag filter is in use\n\t if (_util2.default.hasValue(this.$tagFilter.val())) {\n\t // Hide the featured article\n\t this.$featuredArticle.hide();\n\t } else {\n\t this.$featuredArticle.show();\n\t }\n\t }\n\t }, {\n\t key: 'getSelectedPageNumber',\n\t value: function getSelectedPageNumber(pagerSelection) {\n\t\n\t // The currently active page number\n\t var activePage = parseInt($('.nha-pagination li.active a').data('pagenumber'));\n\t\n\t // The last page number that could be chosen\n\t var lastPage = parseInt($('.nha-pagination').data('total-pages'));\n\t\n\t // Determine an actual integer to use as the selected page number\n\t var selectedPage = void 0;\n\t switch (pagerSelection) {\n\t case 'filtering':\n\t selectedPage = 1;\n\t break;\n\t case 'first':\n\t selectedPage = 1;\n\t break;\n\t case 'previous':\n\t selectedPage = activePage === 1 ? 1 : activePage - 1;\n\t break;\n\t case 'next':\n\t selectedPage = activePage === lastPage ? lastPage : activePage + 1;\n\t break;\n\t case 'last':\n\t selectedPage = lastPage;\n\t break;\n\t case 'none':\n\t // A page was not selected so get the active page number instead\n\t selectedPage = $('.nha-pagination li.active').text().trim();\n\t break;\n\t default:\n\t // A page number was selected by the user, so use that selection\n\t selectedPage = pagerSelection;\n\t break;\n\t }\n\t\n\t return selectedPage;\n\t }\n\t }, {\n\t key: 'renderPagerTemplates',\n\t value: function renderPagerTemplates(pager) {\n\t\n\t // Add the \"first\" and \"previous\" buttons\n\t if (pager.CurrentPage > 1) {\n\t $('.nha-pagination-first').removeClass('hidden');\n\t $('.nha-pagination-previous').removeClass('hidden');\n\t } else {\n\t $('.nha-pagination-first').addClass('hidden');\n\t $('.nha-pagination-previous').addClass('hidden');\n\t }\n\t\n\t // Remove the current pager numbers from the page\n\t $('.js-li-pagination-number').remove();\n\t\n\t var html = \"\";\n\t for (var i = pager.StartPage; i <= pager.EndPage; i++) {\n\t\n\t // Determine which page number is active so we can highlight it\n\t var active = i === parseInt(pager.CurrentPage) ? \"active\" : '';\n\t\n\t // Create an object for mustache to use\n\t var pagerNumber = { active: active, pageNumber: i\n\t\n\t // Fill in a template for this page number\n\t };html += _mustache2.default.render(this.templates.pagerNumberCard, pagerNumber);\n\t }\n\t\n\t // Insert all of the page number templates after the \"previous\" button\n\t $('.nha-pagination-previous').after(html);\n\t\n\t // Add the \"next\" and \"last\" buttons\n\t if (pager.CurrentPage < pager.TotalPages) {\n\t $('.nha-pagination-next').removeClass('hidden');\n\t $('.nha-pagination-last').removeClass('hidden');\n\t } else {\n\t $('.nha-pagination-next').addClass('hidden');\n\t $('.nha-pagination-last').addClass('hidden');\n\t }\n\t\n\t if (pager.TotalPages === 1) {\n\t $('.js-li-pagination-number').addClass('hidden');\n\t }\n\t\n\t // The pager numbers were removed and added again, so we need to register\n\t // their click events again\n\t this.registerPagerClickEvent('.js-pagination-number');\n\t }\n\t }, {\n\t key: 'renderArticleTemplate',\n\t value: function renderArticleTemplate(articlesArray) {\n\t var _this5 = this;\n\t\n\t // Filter out featured article if needed\n\t if (this.$tagFilter.val() === \"\" && this.hasFeaturedArticle) articlesArray = articlesArray.filter(function (article) {\n\t return article.NodeID != _this5.featuredArticleNodeID;\n\t });\n\t\n\t var articles = { articles: articlesArray };\n\t\n\t var $articleListHTML = $('#article-list .nha-row').first();\n\t\n\t // Clear the current articles\n\t $articleListHTML.empty();\n\t\n\t // Render template for articles array\n\t var html = _mustache2.default.render(this.templates.articleCard, articles);\n\t\n\t $articleListHTML.append(html);\n\t\n\t this.equalHeights();\n\t }\n\t }, {\n\t key: 'registerPagerClickEvent',\n\t value: function registerPagerClickEvent(selectorFilter) {\n\t var _this6 = this;\n\t\n\t var selector = '.nha-pagination a';\n\t\n\t if (selectorFilter != null) {\n\t selector += selectorFilter;\n\t }\n\t $(selector).on('click', function (e) {\n\t return _this6.getArticleListing($(e.target).data(\"pagenumber\"), false);\n\t });\n\t }\n\t\n\t /**\r\n\t * Called when the window is resized (after being debounced)\r\n\t * \r\n\t * @param {ResizeEvent} e \r\n\t * @memberof SchoolHome\r\n\t */\n\t\n\t }, {\n\t key: 'onResize',\n\t value: function onResize(e) {\n\t\n\t this.equalHeights();\n\t }\n\t }, {\n\t key: 'onTagFilterChanged',\n\t value: function onTagFilterChanged(e) {\n\t this.getArticleListing('none', true);\n\t }\n\t }, {\n\t key: 'equalHeights',\n\t value: function equalHeights() {\n\t if (_util2.default.checkWidth() !== _util.ViewPort.Mobile) {\n\t _util2.default.equalHeightAll('.nha-js-card');\n\t } else {\n\t $('.nha-js-card').removeAttr('style');\n\t }\n\t }\n\t }]);\n\t\n\t return ArticleLanding;\n\t}(_module2.default);\n\t\n\tvar articleLanding = new ArticleLanding();\n\t\n\t_common2.default.on('init', function () {\n\t return articleLanding.init();\n\t});\n\t\n\texports.default = articleLanding;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function($) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\t\n\tvar _module = __webpack_require__(3);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tvar _util = __webpack_require__(5);\n\t\n\tvar _util2 = _interopRequireDefault(_util);\n\t\n\t__webpack_require__(9);\n\t\n\tvar _jqueryMaskPlugin = __webpack_require__(10);\n\t\n\tvar _jqueryMaskPlugin2 = _interopRequireDefault(_jqueryMaskPlugin);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // import $ from 'jquery';\n\t\n\t\n\tvar SCHOOL_PATTERN = /\\/schools\\/([\\w-]+)\\/*/ig;\n\t\n\t/**\r\n\t * @class Common\r\n\t * @extends {Module}\r\n\t */\n\t\n\tvar Common = function (_Module) {\n\t\t_inherits(Common, _Module);\n\t\n\t\tfunction Common(options) {\n\t\t\t_classCallCheck(this, Common);\n\t\n\t\t\tvar _this = _possibleConstructorReturn(this, (Common.__proto__ || Object.getPrototypeOf(Common)).call(this, options));\n\t\n\t\t\twindow.dynamicModal = [];\n\t\t\t_this.$transparencyExpanded = $('.nha-transparency-report-expanded');\n\t\t\treturn _this;\n\t\t}\n\t\n\t\t_createClass(Common, [{\n\t\t\tkey: 'init',\n\t\t\tvalue: function init() {\n\t\t\t\tvar _this2 = this;\n\t\n\t\t\t\t// sub-modules must emit an `init` event\n\t\t\t\treturn _get(Common.prototype.__proto__ || Object.getPrototypeOf(Common.prototype), 'init', this).call(this).then(function (e) {\n\t\t\t\t\treturn _this2.emit('init', e);\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'main',\n\t\t\tvalue: function main() {\n\t\t\t\tthis.mobilePagination();\n\t\t\t\tthis.modalIframe();\n\t\t\t\tthis.modalInline();\n\t\t\t\tthis.modalAuthor();\n\t\t\t\tthis.setBodyPadding();\n\t\t\t}\n\t\n\t\t\t/**\r\n\t * @listens window#load\r\n\t * @listens window#resize\r\n\t * @memberof Common\r\n\t */\n\t\n\t\t}, {\n\t\t\tkey: 'bindEvents',\n\t\t\tvalue: function bindEvents() {\n\t\t\t\tvar _this3 = this;\n\t\n\t\t\t\t_get(Common.prototype.__proto__ || Object.getPrototypeOf(Common.prototype), 'bindEvents', this).call(this);\n\t\n\t\t\t\t// phone mask\n\t\t\t\t$('.nha-form-control.nha-phone-mask').mask('(000) 000-0000');\n\t\n\t\t\t\t// corporate header search desktop\n\t\t\t\t$('.nha-header-search-btn').on('click', function (e) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tvar target = $(e.currentTarget);\n\t\n\t\t\t\t\ttarget.parent('li').addClass('nha-search-expanded');\n\t\t\t\t\t$('.nha-header-search-input input').focus();\n\t\t\t\t});\n\t\n\t\t\t\t$('#header-right-search').on('click', function (e) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\n\t\t\t\t$(document.body).on('click', function (e) {\n\t\t\t\t\t$('.nha-search-expanded').removeClass('nha-search-expanded');\n\t\t\t\t});\n\t\n\t\t\t\t$('.nha-live-chat-tab').on('click', function (e) {\n\t\t\t\t\t$(\".lebtn div\").trigger(\"click\");\n\t\t\t\t});\n\t\n\t\t\t\t$('.nha-nav-primary > li > ul > li a').on('keydown', function (e) {\n\t\t\t\t\t_this3.closingNav(e);\n\t\t\t\t});\n\t\n\t\t\t\t//aria tags\n\t\t\t\tthis.initAriaExpanded();\n\t\n\t\t\t\tvar navObserver = new ResizeObserver(function (mutations) {\n\t\t\t\t\tvar targetElements = $('.nha-nav-primary > li > ul');\n\t\t\t\t\ttargetElements.each(function () {\n\t\t\t\t\t\tvar height = $(this).height();\n\t\t\t\t\t\tif (height > 0) {\n\t\t\t\t\t\t\t$(this).prev().attr('aria-expanded', 'true');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(this).prev().attr('aria-expanded', 'false');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\n\t\t\t\t//start observing\n\t\t\t\t$('.nha-nav-primary > li > ul').each(function () {\n\t\t\t\t\tnavObserver.observe(this);\n\t\t\t\t});\n\t\n\t\t\t\t// mobile nav\n\t\t\t\t$('.nha-nav-toggle').on('click', function (e) {\n\t\t\t\t\t_this3.mobileNav(e);\n\t\t\t\t});\n\t\t\t\t$('.nha-nav .nha-nav-top-item').on('click', function (e) {\n\t\t\t\t\t_this3.mobileNavItem(e);\n\t\t\t\t});\n\t\t\t\t$('.nha-nav .nha-nav-top-item').on('keydown', function (e) {\n\t\t\t\t\t_this3.tabbingNav(e);\n\t\t\t\t});\n\t\n\t\t\t\t$(document).on('keydown', function (event) {\n\t\t\t\t\tvar target = $('.nha-nav-toggle');\n\t\t\t\t\tif (event.key === \"Escape\" && target.hasClass('open')) {\n\t\t\t\t\t\ttarget.toggleClass('open');\n\t\t\t\t\t\t$('.nha-nav').toggleClass('open').css('visibility', 'visible');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\t$('.nha-transparency-report-expanded .nha-btn').on('click', function (e) {\n\t\t\t\t\t_this3.$transparencyExpanded.fadeOut();\n\t\t\t\t});\n\t\n\t\t\t\t$(document).on('keyup', function (event) {\n\t\t\t\t\tif (event.key === \"Enter\" && $('.nha-education-circle').is(\":focus\")) {\n\t\t\t\t\t\t$('.nha-transparency-report-expanded').fadeIn();\n\t\t\t\t\t\t$('.nha-transparency-report-expanded').find('a').trigger('focus');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\t$('.nha-education-circle-link').on('click', function (e) {\n\t\t\t\t\t_this3.$transparencyExpanded.fadeIn();\n\t\t\t\t\t_this3.$transparencyExpanded.find('.nha-btn').focus();\n\t\t\t\t});\n\t\n\t\t\t\t$('.nha-education-circle').on('click', function (e) {\n\t\t\t\t\t_this3.$transparencyExpanded.fadeIn();\n\t\t\t\t\t_this3.$transparencyExpanded.find('.nha-btn').focus();\n\t\t\t\t});\n\t\n\t\t\t\t$(window).on('scroll', function (e) {\n\t\t\t\t\t_this3.$transparencyExpanded.fadeOut();\n\t\t\t\t});\n\t\n\t\t\t\t$(window).on('resize', _util2.default.debounce(function (e) {\n\t\t\t\t\treturn _this3.onResize(e);\n\t\t\t\t}));\n\t\t\t}\n\t\n\t\t\t/**\r\n\t * Parses the url for the culture code\r\n\t * @memberof Common\r\n\t * @returns {string} The two-letter cultureCode\r\n\t */\n\t\n\t\t}, {\n\t\t\tkey: 'getCultureCode',\n\t\t\tvalue: function getCultureCode() {\n\t\t\t\tvar path = window.location.pathname + '/';\n\t\n\t\t\t\tif (this.isSchoolSite) {\n\t\t\t\t\tvar matches = /\\/schools\\/([\\w-]+)\\/*/ig.exec(path);\n\t\n\t\t\t\t\tif (matches != null) {\n\t\t\t\t\t\tvar index = matches[0].length;\n\t\t\t\t\t\treturn _util2.default.trim(path.substring(index, path.indexOf('/', index)), '/');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar _matches = /\\/(en|es)/gi.exec(path);\n\t\t\t\t\tif (_matches != null) return _util2.default.trim(_matches[0], '/');\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'onResize',\n\t\n\t\n\t\t\t/**\r\n\t * Called when the window is resized (after being debounced)\r\n\t * \r\n\t * @param {ResizeEvent} e \r\n\t * @memberof Common\r\n\t */\n\t\t\tvalue: function onResize(e) {\n\t\t\t\tif (_util2.default.checkWidth() === _util.ViewPort.Desktop) {\n\t\t\t\t\t// reset mobile nav\n\t\t\t\t\t$('.nha-nav .nha-nav-top-item').removeClass('open');\n\t\t\t\t\t$('.nha-nav .nha-nav-primary > li ul').removeAttr('style');\n\t\t\t\t\t$('.nha-nav-toggle').removeClass('open');\n\t\t\t\t\t$('.nha-nav').removeClass('open').removeAttr('style');\n\t\t\t\t}\n\t\n\t\t\t\tthis.mobilePagination();\n\t\n\t\t\t\tthis.setBodyPadding();\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'initAriaExpanded',\n\t\t\tvalue: function initAriaExpanded() {\n\t\t\t\tvar menuItems = $('.nha-nav-top-item');\n\t\t\t\tmenuItems.each(function () {\n\t\t\t\t\t$(this).attr('aria-expanded', 'false');\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'mobileNav',\n\t\t\tvalue: function mobileNav(e) {\n\t\t\t\tvar target = $(e.currentTarget);\n\t\n\t\t\t\ttarget.toggleClass('open');\n\t\t\t\t$('.nha-nav').toggleClass('open').css('visibility', 'visible');\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'mobileNavItem',\n\t\t\tvalue: function mobileNavItem(e) {\n\t\t\t\tvar target = $(e.currentTarget);\n\t\n\t\t\t\tif (_util2.default.checkWidth() !== 'desktop') {\n\t\t\t\t\ttarget.toggleClass('open');\n\t\t\t\t\ttarget.closest('li').find('ul').slideToggle();\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'setBodyPadding',\n\t\t\tvalue: function setBodyPadding() {\n\t\t\t\tif (_util2.default.checkWidth() !== _util.ViewPort.Desktop) {\n\t\t\t\t\tvar headerHeight = $('.nha-header-schools').outerHeight();\n\t\t\t\t\t$('body').css('padding-top', headerHeight);\n\t\t\t\t} else {\n\t\t\t\t\t$('body').removeAttr('style');\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'tabbingNav',\n\t\t\tvalue: function tabbingNav(e) {\n\t\t\t\tvar target = $(e.currentTarget);\n\t\t\t\tvar children = target.parent().find('ul li a');\n\t\n\t\t\t\tif ((e.key === \"enter\" || e.keyCode === 13) && target.parent().find('ul').length > 0) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.mobileNavItem(e);\n\t\t\t\t\ttarget.parent().addClass('focused');\n\t\n\t\t\t\t\tvar _iteratorNormalCompletion = true;\n\t\t\t\t\tvar _didIteratorError = false;\n\t\t\t\t\tvar _iteratorError = undefined;\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\t\t\tvar child = _step.value;\n\t\n\t\t\t\t\t\t\t$(child).removeAttr('tabindex');\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t_didIteratorError = true;\n\t\t\t\t\t\t_iteratorError = err;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t\t\t\t\t_iterator.return();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tif (_didIteratorError) {\n\t\t\t\t\t\t\t\tthrow _iteratorError;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (target.parent().hasClass('focused')) {\n\t\t\t\t\t\t//target.unbind(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\tvar $activeElem = $(document.activeElement);\n\t\t\t\tvar $prevItem = $activeElem.parent().prev();\n\t\n\t\t\t\tif (e.shiftKey && e.keyCode === 9 || e.keyCode === 27) {\n\t\t\t\t\tvar _iteratorNormalCompletion2 = true;\n\t\t\t\t\tvar _didIteratorError2 = false;\n\t\t\t\t\tvar _iteratorError2 = undefined;\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (var _iterator2 = $activeElem.parent().prev().find('ul li a')[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\t\t\tvar child = _step2.value;\n\t\n\t\t\t\t\t\t\t$(child).attr('tabindex', '-1');\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t\t\t_iteratorError2 = err;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t\t\t\t_iterator2.return();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tvar _iteratorNormalCompletion3 = true;\n\t\t\t\t\tvar _didIteratorError3 = false;\n\t\t\t\t\tvar _iteratorError3 = undefined;\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (var _iterator3 = $activeElem.parent().find('ul li a')[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\t\t\t\tvar child = _step3.value;\n\t\n\t\t\t\t\t\t\t$(child).attr('tabindex', '-1');\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t_didIteratorError3 = true;\n\t\t\t\t\t\t_iteratorError3 = err;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t\t\t\t_iterator3.return();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\t$('.nha-nav .nha-nav-primary > li').removeClass('focused');\n\t\t\t\t}\n\t\n\t\t\t\tif ($prevItem.hasClass('focused')) {\n\t\t\t\t\t$prevItem.removeClass('focused');\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'closingNav',\n\t\t\tvalue: function closingNav(e) {\n\t\t\t\tvar target = $(e.currentTarget);\n\t\t\t\tvar menuItem = target.parent().parent().parent();\n\t\n\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\ttarget.blur();\n\t\n\t\t\t\t\tvar children = target.parent().parent().children().find('a');\n\t\n\t\t\t\t\tif (children !== undefined) {\n\t\t\t\t\t\tvar _iteratorNormalCompletion4 = true;\n\t\t\t\t\t\tvar _didIteratorError4 = false;\n\t\t\t\t\t\tvar _iteratorError4 = undefined;\n\t\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tfor (var _iterator4 = children[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n\t\t\t\t\t\t\t\tvar child = _step4.value;\n\t\n\t\t\t\t\t\t\t\t$(child).attr('tabindex', '-1');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t_didIteratorError4 = true;\n\t\t\t\t\t\t\t_iteratorError4 = err;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (!_iteratorNormalCompletion4 && _iterator4.return) {\n\t\t\t\t\t\t\t\t\t_iterator4.return();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\tif (_didIteratorError4) {\n\t\t\t\t\t\t\t\t\tthrow _iteratorError4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\t$('.nha-nav .nha-nav-primary > li').removeClass('focused');\n\t\t\t\t\tmenuItem.attr('tabindex', '-1');\n\t\t\t\t\tmenuItem.find('a.nha-nav-top-item').focus();\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'mobilePagination',\n\t\t\tvalue: function mobilePagination() {\n\t\t\t\tif ($('.nha-pagination .js-li-pagination-number ').length > 3) {\n\t\t\t\t\tif ($('.js-li-pagination-number.active').prev().hasClass('nha-pagination-previous')) {\n\t\t\t\t\t\t$('.js-li-pagination-number.active').next().addClass('nha-page-show-mobile');\n\t\t\t\t\t\t$('.js-li-pagination-number.active').next().next().addClass('nha-page-show-mobile');\n\t\t\t\t\t} else if ($('.js-li-pagination-number.active').next().hasClass('nha-pagination-next')) {\n\t\t\t\t\t\t$('.js-li-pagination-number.active').prev().addClass('nha-page-show-mobile');\n\t\t\t\t\t\t$('.js-li-pagination-number.active').prev().prev().addClass('nha-page-show-mobile');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('.js-li-pagination-number.active').prev().addClass('nha-page-show-mobile');\n\t\t\t\t\t\t$('.js-li-pagination-number.active').next().addClass('nha-page-show-mobile');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'modalInline',\n\t\t\tvalue: function modalInline() {\n\t\t\t\t$('.modal-inline').modaal({\n\t\t\t\t\ttype: 'inline',\n\t\t\t\t\twidth: 725,\n\t\t\t\t\tbackground_scroll: false,\n\t\t\t\t\tbefore_open: function before_open() {\n\t\t\t\t\t\tif (_util2.default.checkWidth() !== _util.ViewPort.Desktop) {\n\t\t\t\t\t\t\t$('body').css('position', 'fixed');\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tafter_open: function after_open() {},\n\t\t\t\t\tafter_close: function after_close() {\n\t\t\t\t\t\t$('body').removeAttr('style');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'modalAuthor',\n\t\t\tvalue: function modalAuthor() {\n\t\t\t\t$('.modal-author').modaal({\n\t\t\t\t\ttype: 'inline',\n\t\t\t\t\twidth: 725,\n\t\t\t\t\tcustom_class: 'nha-profile-modal',\n\t\t\t\t\tbackground_scroll: false,\n\t\t\t\t\tbefore_open: function before_open() {\n\t\t\t\t\t\tif (_util2.default.checkWidth() !== _util.ViewPort.Desktop) {\n\t\t\t\t\t\t\t$('body').css('position', 'fixed');\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tafter_open: function after_open() {},\n\t\t\t\t\tafter_close: function after_close() {\n\t\t\t\t\t\t$('body').removeAttr('style');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\t$(window).bind('orientationchange', function (event) {\n\t\t\t\t\tif ($('.modaal-wrapper').length) {\n\t\t\t\t\t\t$('.modal-inline').modaal('close');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'modalIframe',\n\t\t\tvalue: function modalIframe() {\n\t\t\t\tvar IFrame;\n\t\n\t\t\t\t$('.modal-iframe').modaal({\n\t\t\t\t\ttype: 'iframe',\n\t\t\t\t\twidth: 600,\n\t\t\t\t\tbackground_scroll: false,\n\t\t\t\t\tbefore_open: function before_open() {\n\t\t\t\t\t\tif (_util2.default.checkWidth() !== _util.ViewPort.Desktop) {\n\t\t\t\t\t\t\t$('body').css('position', 'fixed');\n\t\t\t\t\t\t\t$('.modaal-wrapper').addClass('modal-scrollfix');\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tafter_open: function after_open() {\n\t\t\t\t\t\tIFrame = iFrameResize({\n\t\t\t\t\t\t\theightCalculationMethod: 'lowestElement'\n\t\t\t\t\t\t}, 'iframe.modaal-iframe-elem');\n\t\n\t\t\t\t\t\t$('.modaal-wrapper').removeClass('modal-scrollfix');\n\t\t\t\t\t\t$('body').css('overflow', 'hidden').css('position', 'relative');\n\t\t\t\t\t},\n\t\t\t\t\tafter_close: function after_close() {\n\t\t\t\t\t\tIFrame[0].iFrameResizer.close();\n\t\t\t\t\t\t$('body').removeAttr('style');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'isSchoolSite',\n\t\t\tget: function get() {\n\t\t\t\treturn SCHOOL_PATTERN.test(window.location.pathname);\n\t\t\t}\n\t\t}]);\n\t\n\t\treturn Common;\n\t}(_module2.default);\n\t\n\t// create an instance to export for other modules to reference\n\t\n\t\n\tvar common = new Common();\n\t\n\texports.default = common;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 2 */,\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _events = __webpack_require__(4);\n\t\n\tvar _events2 = _interopRequireDefault(_events);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\r\n\t * Emitted when a Module resolve from Module.init(). All sub-modules are required to emit this event.\r\n\t * @event Module#init\r\n\t * \r\n\t */\n\t\n\t/**\r\n\t * A Module privodes a scope for controller logic within a page. Inspired by the Revealing Pattern\r\n\t * \r\n\t * @class Module\r\n\t * @extends {EventEmitter}\r\n\t * @property {boolean} initialized Indicates if the module has been initialized, ie. the module emitted the `init` event\r\n\t */\n\tvar Module = function (_EventEmitter) {\n\t\t_inherits(Module, _EventEmitter);\n\t\n\t\t/**\r\n\t * Creates an instance of Module.\r\n\t * @param {object} [options={}] \r\n\t * @memberof Module\r\n\t */\n\t\tfunction Module(options) {\n\t\t\t_classCallCheck(this, Module);\n\t\n\t\t\tvar _this = _possibleConstructorReturn(this, (Module.__proto__ || Object.getPrototypeOf(Module)).call(this));\n\t\n\t\t\t_this._options = Object.assign({}, options);\n\t\n\t\t\t_this.initialized = false;\n\t\t\treturn _this;\n\t\t}\n\t\n\t\t/**\r\n\t * Bind events to the module. These could be DOM events, service events, or module events, etc. Should be overriden by sub-classes.\r\n\t * \r\n\t * @override\r\n\t * @memberof Module\r\n\t * @listens Module#init\r\n\t */\n\t\n\t\n\t\t_createClass(Module, [{\n\t\t\tkey: 'bindEvents',\n\t\t\tvalue: function bindEvents() {}\n\t\t}, {\n\t\t\tkey: '_bindEvents',\n\t\t\tvalue: function _bindEvents() {\n\t\t\t\tvar _this2 = this;\n\t\n\t\t\t\tthis.on('init', function (e) {\n\t\t\t\t\t_this2.initialized = true;\n\t\t\t\t\t_this2.main();\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\t/**\r\n\t * Initializes the module. Any sub-module must override this method to emit an `init` event\r\n\t * \r\n\t * @returns {Promise.} A promise that resolves when initialization is finished\r\n\t * @memberof Module\r\n\t */\n\t\n\t\t}, {\n\t\t\tkey: 'init',\n\t\t\tvalue: function init() {\n\t\t\t\tvar _this3 = this;\n\t\n\t\t\t\treturn new Promise(function (resolve) {\n\t\n\t\t\t\t\t_this3._bindEvents();\n\t\t\t\t\t_this3.bindEvents();\n\t\n\t\t\t\t\t// other work\n\t\n\t\t\t\t\treturn resolve();\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\t/**\r\n\t * Called when the `init` event is emitted. Should be overriden by sub-classes.\r\n\t * \r\n\t * @override\r\n\t * @memberof Module\r\n\t */\n\t\n\t\t}, {\n\t\t\tkey: 'main',\n\t\t\tvalue: function main() {}\n\t\t}]);\n\t\n\t\treturn Module;\n\t}(_events2.default);\n\t\n\texports.default = Module;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tfunction EventEmitter() {\n\t this._events = this._events || {};\n\t this._maxListeners = this._maxListeners || undefined;\n\t}\n\tmodule.exports = EventEmitter;\n\t\n\t// Backwards-compat with node 0.10.x\n\tEventEmitter.EventEmitter = EventEmitter;\n\t\n\tEventEmitter.prototype._events = undefined;\n\tEventEmitter.prototype._maxListeners = undefined;\n\t\n\t// By default EventEmitters will print a warning if more than 10 listeners are\n\t// added to it. This is a useful default which helps finding memory leaks.\n\tEventEmitter.defaultMaxListeners = 10;\n\t\n\t// Obviously not all Emitters should be limited to 10. This function allows\n\t// that to be increased. Set to zero for unlimited.\n\tEventEmitter.prototype.setMaxListeners = function(n) {\n\t if (!isNumber(n) || n < 0 || isNaN(n))\n\t throw TypeError('n must be a positive number');\n\t this._maxListeners = n;\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.emit = function(type) {\n\t var er, handler, len, args, i, listeners;\n\t\n\t if (!this._events)\n\t this._events = {};\n\t\n\t // If there is no 'error' event listener then throw.\n\t if (type === 'error') {\n\t if (!this._events.error ||\n\t (isObject(this._events.error) && !this._events.error.length)) {\n\t er = arguments[1];\n\t if (er instanceof Error) {\n\t throw er; // Unhandled 'error' event\n\t } else {\n\t // At least give some kind of context to the user\n\t var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n\t err.context = er;\n\t throw err;\n\t }\n\t }\n\t }\n\t\n\t handler = this._events[type];\n\t\n\t if (isUndefined(handler))\n\t return false;\n\t\n\t if (isFunction(handler)) {\n\t switch (arguments.length) {\n\t // fast cases\n\t case 1:\n\t handler.call(this);\n\t break;\n\t case 2:\n\t handler.call(this, arguments[1]);\n\t break;\n\t case 3:\n\t handler.call(this, arguments[1], arguments[2]);\n\t break;\n\t // slower\n\t default:\n\t args = Array.prototype.slice.call(arguments, 1);\n\t handler.apply(this, args);\n\t }\n\t } else if (isObject(handler)) {\n\t args = Array.prototype.slice.call(arguments, 1);\n\t listeners = handler.slice();\n\t len = listeners.length;\n\t for (i = 0; i < len; i++)\n\t listeners[i].apply(this, args);\n\t }\n\t\n\t return true;\n\t};\n\t\n\tEventEmitter.prototype.addListener = function(type, listener) {\n\t var m;\n\t\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t if (!this._events)\n\t this._events = {};\n\t\n\t // To avoid recursion in the case that type === \"newListener\"! Before\n\t // adding it to the listeners, first emit \"newListener\".\n\t if (this._events.newListener)\n\t this.emit('newListener', type,\n\t isFunction(listener.listener) ?\n\t listener.listener : listener);\n\t\n\t if (!this._events[type])\n\t // Optimize the case of one listener. Don't need the extra array object.\n\t this._events[type] = listener;\n\t else if (isObject(this._events[type]))\n\t // If we've already got an array, just append.\n\t this._events[type].push(listener);\n\t else\n\t // Adding the second element, need to change to array.\n\t this._events[type] = [this._events[type], listener];\n\t\n\t // Check for listener leak\n\t if (isObject(this._events[type]) && !this._events[type].warned) {\n\t if (!isUndefined(this._maxListeners)) {\n\t m = this._maxListeners;\n\t } else {\n\t m = EventEmitter.defaultMaxListeners;\n\t }\n\t\n\t if (m && m > 0 && this._events[type].length > m) {\n\t this._events[type].warned = true;\n\t console.error('(node) warning: possible EventEmitter memory ' +\n\t 'leak detected. %d listeners added. ' +\n\t 'Use emitter.setMaxListeners() to increase limit.',\n\t this._events[type].length);\n\t if (typeof console.trace === 'function') {\n\t // not supported in IE 10\n\t console.trace();\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\t\n\tEventEmitter.prototype.once = function(type, listener) {\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t var fired = false;\n\t\n\t function g() {\n\t this.removeListener(type, g);\n\t\n\t if (!fired) {\n\t fired = true;\n\t listener.apply(this, arguments);\n\t }\n\t }\n\t\n\t g.listener = listener;\n\t this.on(type, g);\n\t\n\t return this;\n\t};\n\t\n\t// emits a 'removeListener' event iff the listener was removed\n\tEventEmitter.prototype.removeListener = function(type, listener) {\n\t var list, position, length, i;\n\t\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t if (!this._events || !this._events[type])\n\t return this;\n\t\n\t list = this._events[type];\n\t length = list.length;\n\t position = -1;\n\t\n\t if (list === listener ||\n\t (isFunction(list.listener) && list.listener === listener)) {\n\t delete this._events[type];\n\t if (this._events.removeListener)\n\t this.emit('removeListener', type, listener);\n\t\n\t } else if (isObject(list)) {\n\t for (i = length; i-- > 0;) {\n\t if (list[i] === listener ||\n\t (list[i].listener && list[i].listener === listener)) {\n\t position = i;\n\t break;\n\t }\n\t }\n\t\n\t if (position < 0)\n\t return this;\n\t\n\t if (list.length === 1) {\n\t list.length = 0;\n\t delete this._events[type];\n\t } else {\n\t list.splice(position, 1);\n\t }\n\t\n\t if (this._events.removeListener)\n\t this.emit('removeListener', type, listener);\n\t }\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.removeAllListeners = function(type) {\n\t var key, listeners;\n\t\n\t if (!this._events)\n\t return this;\n\t\n\t // not listening for removeListener, no need to emit\n\t if (!this._events.removeListener) {\n\t if (arguments.length === 0)\n\t this._events = {};\n\t else if (this._events[type])\n\t delete this._events[type];\n\t return this;\n\t }\n\t\n\t // emit removeListener for all listeners on all events\n\t if (arguments.length === 0) {\n\t for (key in this._events) {\n\t if (key === 'removeListener') continue;\n\t this.removeAllListeners(key);\n\t }\n\t this.removeAllListeners('removeListener');\n\t this._events = {};\n\t return this;\n\t }\n\t\n\t listeners = this._events[type];\n\t\n\t if (isFunction(listeners)) {\n\t this.removeListener(type, listeners);\n\t } else if (listeners) {\n\t // LIFO order\n\t while (listeners.length)\n\t this.removeListener(type, listeners[listeners.length - 1]);\n\t }\n\t delete this._events[type];\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.listeners = function(type) {\n\t var ret;\n\t if (!this._events || !this._events[type])\n\t ret = [];\n\t else if (isFunction(this._events[type]))\n\t ret = [this._events[type]];\n\t else\n\t ret = this._events[type].slice();\n\t return ret;\n\t};\n\t\n\tEventEmitter.prototype.listenerCount = function(type) {\n\t if (this._events) {\n\t var evlistener = this._events[type];\n\t\n\t if (isFunction(evlistener))\n\t return 1;\n\t else if (evlistener)\n\t return evlistener.length;\n\t }\n\t return 0;\n\t};\n\t\n\tEventEmitter.listenerCount = function(emitter, type) {\n\t return emitter.listenerCount(type);\n\t};\n\t\n\tfunction isFunction(arg) {\n\t return typeof arg === 'function';\n\t}\n\t\n\tfunction isNumber(arg) {\n\t return typeof arg === 'number';\n\t}\n\t\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\t\n\tfunction isUndefined(arg) {\n\t return arg === void 0;\n\t}\n\n\n/***/ }),\n/* 5 */,\n/* 6 */,\n/* 7 */,\n/* 8 */,\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/*!\n\t\tModaal - accessible modals - v0.3.1\n\t\tby Humaan, for all humans.\n\t\thttp://humaan.com\n\t */\n\t!function(a){var t='
',o={init:function(t,o){var e=this;e.dom=a(\"body\"),e.$elem=a(o),e.options=a.extend({},a.fn.modaal.options,e.$elem.data(),t),e.xhr=null,e.scope={is_open:!1,id:\"modaal_\"+(new Date).getTime()+Math.random().toString(16).substring(2)},e.$elem.attr(\"data-modaal-scope\",e.scope.id),e.private_options={active_class:\"is_active\"},e.lastFocus=null,e.options.is_locked||\"confirm\"==e.options.type||e.options.hide_close?e.scope.close_btn=\"\":e.scope.close_btn='\",\"none\"===e.options.animation&&(e.options.animation_speed=0,e.options.after_callback_delay=0),a(o).on(\"click.Modaal\",function(a){a.preventDefault();var t;if(e.lastFocus=document.activeElement,e.options.should_open!==!1&&(\"function\"!=typeof e.options.should_open||e.options.should_open()!==!1)){switch(e.options.before_open.call(e,a),e.options.type){case\"inline\":e.create_basic();break;case\"ajax\":t=e.options.source(e.$elem,e.$elem.attr(\"href\")),e.fetch_ajax(t);break;case\"confirm\":e.options.is_locked=!0,e.create_confirm();break;case\"image\":e.create_image();break;case\"iframe\":t=e.options.source(e.$elem,e.$elem.attr(\"href\")),e.create_iframe(t);break;case\"video\":e.create_video(e.$elem.attr(\"href\"));break;case\"instagram\":e.create_instagram()}e.watch_events()}}),e.options.start_open===!0&&a(o).click()},watch_events:function(){var t=this;t.dom.off(\"click.Modaal keyup.Modaal keydown.Modaal\"),t.dom.on(\"keydown.Modaal\",function(o){var e=o.keyCode,i=o.target;9==e&&t.scope.is_open&&(a.contains(document.getElementById(t.scope.id),i)||a(\"#\"+t.scope.id).find('*[tabindex=\"0\"]').focus())}),t.dom.on(\"keyup.Modaal\",function(o){var e=o.keyCode,i=o.target;return o.shiftKey&&9==o.keyCode&&t.scope.is_open&&(a.contains(document.getElementById(t.scope.id),i)||a(\"#\"+t.scope.id).find(\".modaal-close\").focus()),!t.options.is_locked&&27==e&&t.scope.is_open?a(document.activeElement).is(\"input:not(:checkbox):not(:radio)\")?!1:void t.modaal_close():\"image\"==t.options.type?(37==e&&t.scope.is_open&&!a(\"#\"+t.scope.id+\" .modaal-gallery-prev\").hasClass(\"is_hidden\")&&t.gallery_update(\"prev\"),void(39==e&&t.scope.is_open&&!a(\"#\"+t.scope.id+\" .modaal-gallery-next\").hasClass(\"is_hidden\")&&t.gallery_update(\"next\"))):void 0}),t.dom.on(\"click.Modaal\",function(o){var e=a(o.target);if(!t.options.is_locked&&(t.options.overlay_close&&e.is(\".modaal-inner-wrapper\")||e.is(\".modaal-close\")||e.closest(\".modaal-close\").length))return void t.modaal_close();if(e.is(\".modaal-confirm-btn\"))return e.is(\".modaal-ok\")&&t.options.confirm_callback.call(t,t.lastFocus),e.is(\".modaal-cancel\")&&t.options.confirm_cancel_callback.call(t,t.lastFocus),void t.modaal_close();if(e.is(\".modaal-gallery-control\")){if(e.hasClass(\"is_hidden\"))return;return e.is(\".modaal-gallery-prev\")&&t.gallery_update(\"prev\"),void(e.is(\".modaal-gallery-next\")&&t.gallery_update(\"next\"))}})},build_modal:function(a){var t=this,o=\"\";\"instagram\"==t.options.type&&(o=\" modaal-instagram\");var e,i=\"video\"==t.options.type?\"modaal-video-wrap\":\"modaal-content\";switch(t.options.animation){case\"fade\":e=\" modaal-start_fade\";break;case\"slide-down\":e=\" modaal-start_slidedown\";break;default:e=\" modaal-start_none\"}var l=\"\";t.options.fullscreen&&(l=\" modaal-fullscreen\"),\"\"===t.options.custom_class&&\"undefined\"==typeof t.options.custom_class||(t.options.custom_class=\" \"+t.options.custom_class);var s=\"\";t.options.width&&t.options.height&&\"number\"==typeof t.options.width&&\"number\"==typeof t.options.height?s=' style=\"max-width:'+t.options.width+\"px;height:\"+t.options.height+'px;overflow:auto;\"':t.options.width&&\"number\"==typeof t.options.width?s=' style=\"max-width:'+t.options.width+'px;\"':t.options.height&&\"number\"==typeof t.options.height&&(s=' style=\"height:'+t.options.height+'px;overflow:auto;\"'),(\"image\"==t.options.type||\"video\"==t.options.type||\"instagram\"==t.options.type||t.options.fullscreen)&&(s=\"\");var n='
';\"video\"!=t.options.type&&(n+='
\"),n+='
',n+=\"inline\"==t.options.type?'
':a,n+=\"
\"+t.scope.close_btn,\"video\"!=t.options.type&&(n+=\"
\"),n+=\"
\",t.dom.append(n),\"inline\"==t.options.type&&a.appendTo(\"#\"+t.scope.id+\" .modaal-content-container\"),t.modaal_overlay(\"show\")},create_basic:function(){var t=this,o=t.$elem.is(\"[href]\")?a(t.$elem.attr(\"href\")):t.$elem,e=\"\";o.length?(e=o.contents().clone(!0,!0),o.empty()):e=\"Content could not be loaded. Please check the source and try again.\",t.build_modal(e)},create_instagram:function(){var t=this,o=t.options.instagram_id,e=\"\",i=\"Instagram photo couldn't be loaded, please check the embed code and try again.\";if(t.build_modal('
'+t.options.loading_content+\"
\"),\"\"!=o&&null!==o&&void 0!==o){var l=\"https://api.instagram.com/oembed?url=http://instagr.am/p/\"+o+\"/\";a.ajax({url:l,dataType:\"jsonp\",cache:!1,success:function(o){e=o.html;var i=a(\"#\"+t.scope.id+\" .modaal-content-container\");i.length>0&&(i.removeClass(t.options.loading_class),i.html(e),window.instgrm.Embeds.process())},error:function(){e=i;var o=a(\"#\"+t.scope.id+\" .modaal-content-container\");o.length>0&&(o.removeClass(t.options.loading_class).addClass(t.options.ajax_error_class),o.html(e))}})}else e=i;return!1},fetch_ajax:function(t){var o=this;null==o.options.accessible_title&&(o.options.accessible_title=\"Dialog Window\"),null!==o.xhr&&(o.xhr.abort(),o.xhr=null),o.build_modal('
'+o.options.loading_content+\"
\"),o.xhr=a.ajax(t,{success:function(t){var e=a(\"#\"+o.scope.id).find(\".modaal-content-container\");e.length>0&&(e.removeClass(o.options.loading_class),e.html(t),o.options.ajax_success.call(o,e))},error:function(t){if(\"abort\"!=t.statusText){var e=a(\"#\"+o.scope.id+\" .modaal-content-container\");e.length>0&&(e.removeClass(o.options.loading_class).addClass(o.options.ajax_error_class),e.html(\"Content could not be loaded. Please check the source and try again.\"))}}})},create_confirm:function(){var a,t=this;a='

'+t.options.confirm_title+'

'+t.options.confirm_content+'
\",t.build_modal(a)},create_image:function(){var t,o,e=this,i=\"\",l='',s='';if(e.$elem.is(\"[rel]\")){var n=e.$elem.attr(\"rel\"),d=a('[rel=\"'+n+'\"]');d.removeAttr(\"data-gallery-active\",\"is_active\"),e.$elem.attr(\"data-gallery-active\",\"is_active\"),o=d.length-1;var r=[];i='\"}i+=\"\"+l+s}else{var _=e.$elem.attr(\"href\"),v=\"\",f=\"\",p=\"\";e.$elem.attr(\"data-modaal-desc\")?(p=e.$elem.attr(\"data-modaal-desc\"),v=e.$elem.attr(\"data-modaal-desc\"),f='\"):p=\"Image with no description\",i='\"}t=i,e.build_modal(t),a(\".modaal-gallery-item.is_active\").is(\".gallery-item-0\")&&a(\".modaal-gallery-prev\").hide(),a(\".modaal-gallery-item.is_active\").is(\".gallery-item-\"+o)&&a(\".modaal-gallery-next\").hide()},gallery_update:function(t){var o=this,e=a(\"#\"+o.scope.id),i=e.find(\".modaal-gallery-item\"),l=i.length-1;if(0==l)return!1;var s=e.find(\".modaal-gallery-prev\"),n=e.find(\".modaal-gallery-next\"),d=250,r=0,c=0,m=e.find(\".modaal-gallery-item.\"+o.private_options.active_class),p=\"next\"==t?m.next(\".modaal-gallery-item\"):m.prev(\".modaal-gallery-item\");return o.options.before_image_change.call(o,m,p),\"prev\"==t&&e.find(\".gallery-item-0\").hasClass(\"is_active\")?!1:\"next\"==t&&e.find(\".gallery-item-\"+l).hasClass(\"is_active\")?!1:void m.stop().animate({opacity:0},d,function(){p.addClass(\"is_next\").css({position:\"absolute\",display:\"block\",opacity:0});var t=a(document).width(),i=t>1140?280:50;r=e.find(\".modaal-gallery-item.is_next\").width(),c=e.find(\".modaal-gallery-item.is_next\").height();var _=e.find(\".modaal-gallery-item.is_next img\").prop(\"naturalWidth\"),v=e.find(\".modaal-gallery-item.is_next img\").prop(\"naturalHeight\");_>t-i?(r=t-i,e.find(\".modaal-gallery-item.is_next\").css({width:r}),e.find(\".modaal-gallery-item.is_next img\").css({width:r}),c=e.find(\".modaal-gallery-item.is_next\").find(\"img\").height()):(r=_,c=v),e.find(\".modaal-gallery-item-wrap\").stop().animate({width:r,height:c},d,function(){m.removeClass(o.private_options.active_class+\" \"+o.options.gallery_active_class).removeAttr(\"style\"),m.find(\"img\").removeAttr(\"style\"),p.addClass(o.private_options.active_class+\" \"+o.options.gallery_active_class).removeClass(\"is_next\").css(\"position\",\"\"),p.stop().animate({opacity:1},d,function(){a(this).removeAttr(\"style\").css({width:\"100%\"}),a(this).find(\"img\").css(\"width\",\"100%\"),e.find(\".modaal-gallery-item-wrap\").removeAttr(\"style\"),o.options.after_image_change.call(o,p)}),e.find(\".modaal-gallery-item\").removeAttr(\"tabindex\"),e.find(\".modaal-gallery-item.\"+o.private_options.active_class).attr(\"tabindex\",\"0\").focus(),e.find(\".modaal-gallery-item.\"+o.private_options.active_class).is(\".gallery-item-0\")?s.stop().animate({opacity:0},150,function(){a(this).hide()}):s.stop().css({display:\"block\",opacity:s.css(\"opacity\")}).animate({opacity:1},150),e.find(\".modaal-gallery-item.\"+o.private_options.active_class).is(\".gallery-item-\"+l)?n.stop().animate({opacity:0},150,function(){a(this).hide()}):n.stop().css({display:\"block\",opacity:s.css(\"opacity\")}).animate({opacity:1},150)})})},create_video:function(a){var t,o=this;t='',o.build_modal('
'+t+\"
\")},create_iframe:function(a){var t,o=this;t=null!==o.options.width||void 0!==o.options.width||null!==o.options.height||void 0!==o.options.height?'':'
Please specify a width and height for your iframe
',o.build_modal(t)},modaal_open:function(){var t=this,o=a(\"#\"+t.scope.id),e=t.options.animation;\"none\"===e&&(o.removeClass(\"modaal-start_none\"),t.options.after_open.call(t,o)),\"fade\"===e&&o.removeClass(\"modaal-start_fade\"),\"slide-down\"===e&&o.removeClass(\"modaal-start_slide_down\");var i=o;a(\".modaal-wrapper *[tabindex=0]\").removeAttr(\"tabindex\"),i=\"image\"==t.options.type?a(\"#\"+t.scope.id).find(\".modaal-gallery-item.\"+t.private_options.active_class):o.find(\".modaal-iframe-elem\").length?o.find(\".modaal-iframe-elem\"):o.find(\".modaal-video-wrap\").length?o.find(\".modaal-video-wrap\"):o.find(\".modaal-focus\"),i.attr(\"tabindex\",\"0\").focus(),\"none\"!==e&&setTimeout(function(){t.options.after_open.call(t,o)},t.options.after_callback_delay)},modaal_close:function(){var t=this,o=a(\"#\"+t.scope.id);t.options.before_close.call(t,o),null!==t.xhr&&(t.xhr.abort(),t.xhr=null),\"none\"===t.options.animation&&o.addClass(\"modaal-start_none\"),\"fade\"===t.options.animation&&o.addClass(\"modaal-start_fade\"),\"slide-down\"===t.options.animation&&o.addClass(\"modaal-start_slide_down\"),setTimeout(function(){\"inline\"==t.options.type&&a(\"#\"+t.scope.id+\" .modaal-content-container\").contents().clone(!0,!0).appendTo(t.$elem.attr(\"href\")),o.remove(),t.options.after_close.call(t),t.scope.is_open=!1},t.options.after_callback_delay),t.modaal_overlay(\"hide\"),null!=t.lastFocus&&t.lastFocus.focus()},modaal_overlay:function(t){var o=this;\"show\"==t?(o.scope.is_open=!0,o.options.background_scroll||o.dom.addClass(\"modaal-noscroll\"),o.dom.append('
'),a(\"#\"+o.scope.id+\"_overlay\").css(\"background\",o.options.background).stop().animate({opacity:o.options.overlay_opacity},o.options.animation_speed,function(){o.modaal_open()})):\"hide\"==t&&(o.dom.removeClass(\"modaal-noscroll\"),a(\"#\"+o.scope.id+\"_overlay\").stop().animate({opacity:0},o.options.animation_speed,function(){a(this).remove()}))}};a.fn.modaal=function(t){return this.each(function(){var e=a(this).data(\"modaal\");if(e){if(\"string\"==typeof t)switch(t){case\"close\":e.modaal_close()}}else{var i=Object.create(o);i.init(t,this),a.data(this,\"modaal\",i)}})},a.fn.modaal.options={type:\"inline\",animation:\"fade\",animation_speed:300,after_callback_delay:350,is_locked:!1,hide_close:!1,background:\"#000\",overlay_opacity:\"0.8\",overlay_close:!0,accessible_title:\"Dialog Window\",start_open:!1,fullscreen:!1,custom_class:\"\",background_scroll:!1,should_open:!0,close_text:\"Close\",close_aria_label:\"Close (Press escape to close)\",width:null,height:null,before_open:function(){},after_open:function(){},before_close:function(){},after_close:function(){},source:function(a,t){return t},confirm_button_text:\"Confirm\",confirm_cancel_button_text:\"Cancel\",confirm_title:\"Confirm Title\",confirm_content:\"

This is the default confirm dialog content. Replace me through the options

\",confirm_callback:function(){},confirm_cancel_callback:function(){},gallery_active_class:\"gallery_active_item\",before_image_change:function(a,t){},after_image_change:function(a){},loading_content:t,loading_class:\"is_loading\",ajax_error_class:\"modaal-error\",ajax_success:function(){},instagram_id:null},a(function(){var t=a(\".modaal\");t.length&&t.each(function(){var t=a(this),o={},e=!1;t.attr(\"data-modaal-type\")&&(e=!0,o.type=t.attr(\"data-modaal-type\")),t.attr(\"data-modaal-animation\")&&(e=!0,o.animation=t.attr(\"data-modaal-animation\")),t.attr(\"data-modaal-animation-speed\")&&(e=!0,o.animation_speed=t.attr(\"data-modaal-animation-speed\")),t.attr(\"data-modaal-after-callback-delay\")&&(e=!0,o.after_callback_delay=t.attr(\"data-modaal-after-callback-delay\")),t.attr(\"data-modaal-is-locked\")&&(e=!0,o.is_locked=\"true\"===t.attr(\"data-modaal-is-locked\")),t.attr(\"data-modaal-hide-close\")&&(e=!0,o.hide_close=\"true\"===t.attr(\"data-modaal-hide-close\")),t.attr(\"data-modaal-background\")&&(e=!0,o.background=t.attr(\"data-modaal-background\")),t.attr(\"data-modaal-overlay-opacity\")&&(e=!0,o.overlay_opacity=t.attr(\"data-modaal-overlay-opacity\")),t.attr(\"data-modaal-overlay-close\")&&(e=!0,o.overlay_close=\"false\"!==t.attr(\"data-modaal-overlay-close\")),t.attr(\"data-modaal-accessible-title\")&&(e=!0,o.accessible_title=t.attr(\"data-modaal-accessible-title\")),t.attr(\"data-modaal-start-open\")&&(e=!0,o.start_open=\"true\"===t.attr(\"data-modaal-start-open\")),t.attr(\"data-modaal-fullscreen\")&&(e=!0,o.fullscreen=\"true\"===t.attr(\"data-modaal-fullscreen\")),t.attr(\"data-modaal-custom-class\")&&(e=!0,o.custom_class=t.attr(\"data-modaal-custom-class\")),t.attr(\"data-modaal-close-text\")&&(e=!0,o.close_text=t.attr(\"data-modaal-close-text\")),t.attr(\"data-modaal-close-aria-label\")&&(e=!0,o.close_aria_label=t.attr(\"data-modaal-close-aria-label\")),t.attr(\"data-modaal-background-scroll\")&&(e=!0,o.background_scroll=\"true\"===t.attr(\"data-modaal-background-scroll\")),t.attr(\"data-modaal-width\")&&(e=!0,o.width=parseInt(t.attr(\"data-modaal-width\"))),t.attr(\"data-modaal-height\")&&(e=!0,o.height=parseInt(t.attr(\"data-modaal-height\"))),t.attr(\"data-modaal-confirm-button-text\")&&(e=!0,o.confirm_button_text=t.attr(\"data-modaal-confirm-button-text\")),t.attr(\"data-modaal-confirm-cancel-button-text\")&&(e=!0,o.confirm_cancel_button_text=t.attr(\"data-modaal-confirm-cancel-button-text\")),t.attr(\"data-modaal-confirm-title\")&&(e=!0,o.confirm_title=t.attr(\"data-modaal-confirm-title\")),t.attr(\"data-modaal-confirm-content\")&&(e=!0,o.confirm_content=t.attr(\"data-modaal-confirm-content\")),t.attr(\"data-modaal-gallery-active-class\")&&(e=!0,o.gallery_active_class=t.attr(\"data-modaal-gallery-active-class\")),t.attr(\"data-modaal-loading-content\")&&(e=!0,o.loading_content=t.attr(\"data-modaal-loading-content\")),t.attr(\"data-modaal-loading-class\")&&(e=!0,o.loading_class=t.attr(\"data-modaal-loading-class\")),t.attr(\"data-modaal-ajax-error-class\")&&(e=!0,o.ajax_error_class=t.attr(\"data-modaal-ajax-error-class\")),t.attr(\"data-modaal-instagram-id\")&&(e=!0,o.instagram_id=t.attr(\"data-modaal-instagram-id\")),e&&t.modaal(o)})})}(jQuery,window,document);\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_jQuery) {/**\n\t * jquery.mask.js\n\t * @version: v1.14.16\n\t * @author: Igor Escobar\n\t *\n\t * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin\n\t *\n\t * Copyright (c) 2012 Igor Escobar http://igorescobar.com\n\t *\n\t * The MIT License (http://www.opensource.org/licenses/mit-license.php)\n\t *\n\t * Permission is hereby granted, free of charge, to any person\n\t * obtaining a copy of this software and associated documentation\n\t * files (the \"Software\"), to deal in the Software without\n\t * restriction, including without limitation the rights to use,\n\t * copy, modify, merge, publish, distribute, sublicense, and/or sell\n\t * copies of the Software, and to permit persons to whom the\n\t * Software is furnished to do so, subject to the following\n\t * conditions:\n\t *\n\t * The above copyright notice and this permission notice shall be\n\t * included in all copies or substantial portions of the Software.\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n\t * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n\t * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n\t * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n\t * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n\t * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n\t * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n\t * OTHER DEALINGS IN THE SOFTWARE.\n\t */\n\t\n\t/* jshint laxbreak: true */\n\t/* jshint maxcomplexity:17 */\n\t/* global define */\n\t\n\t// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere.\n\t// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js\n\t(function (factory, jQuery, Zepto) {\n\t\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports === 'object' && typeof Meteor === 'undefined') {\n\t module.exports = factory(require('jquery'));\n\t } else {\n\t factory(jQuery || Zepto);\n\t }\n\t\n\t}(function ($) {\n\t 'use strict';\n\t\n\t var Mask = function (el, mask, options) {\n\t\n\t var p = {\n\t invalid: [],\n\t getCaret: function () {\n\t try {\n\t var sel,\n\t pos = 0,\n\t ctrl = el.get(0),\n\t dSel = document.selection,\n\t cSelStart = ctrl.selectionStart;\n\t\n\t // IE Support\n\t if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) {\n\t sel = dSel.createRange();\n\t sel.moveStart('character', -p.val().length);\n\t pos = sel.text.length;\n\t }\n\t // Firefox support\n\t else if (cSelStart || cSelStart === '0') {\n\t pos = cSelStart;\n\t }\n\t\n\t return pos;\n\t } catch (e) {}\n\t },\n\t setCaret: function(pos) {\n\t try {\n\t if (el.is(':focus')) {\n\t var range, ctrl = el.get(0);\n\t\n\t // Firefox, WebKit, etc..\n\t if (ctrl.setSelectionRange) {\n\t ctrl.setSelectionRange(pos, pos);\n\t } else { // IE\n\t range = ctrl.createTextRange();\n\t range.collapse(true);\n\t range.moveEnd('character', pos);\n\t range.moveStart('character', pos);\n\t range.select();\n\t }\n\t }\n\t } catch (e) {}\n\t },\n\t events: function() {\n\t el\n\t .on('keydown.mask', function(e) {\n\t el.data('mask-keycode', e.keyCode || e.which);\n\t el.data('mask-previus-value', el.val());\n\t el.data('mask-previus-caret-pos', p.getCaret());\n\t p.maskDigitPosMapOld = p.maskDigitPosMap;\n\t })\n\t .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour)\n\t .on('paste.mask drop.mask', function() {\n\t setTimeout(function() {\n\t el.keydown().keyup();\n\t }, 100);\n\t })\n\t .on('change.mask', function(){\n\t el.data('changed', true);\n\t })\n\t .on('blur.mask', function(){\n\t if (oldValue !== p.val() && !el.data('changed')) {\n\t el.trigger('change');\n\t }\n\t el.data('changed', false);\n\t })\n\t // it's very important that this callback remains in this position\n\t // otherwhise oldValue it's going to work buggy\n\t .on('blur.mask', function() {\n\t oldValue = p.val();\n\t })\n\t // select all text on focus\n\t .on('focus.mask', function (e) {\n\t if (options.selectOnFocus === true) {\n\t $(e.target).select();\n\t }\n\t })\n\t // clear the value if it not complete the mask\n\t .on('focusout.mask', function() {\n\t if (options.clearIfNotMatch && !regexMask.test(p.val())) {\n\t p.val('');\n\t }\n\t });\n\t },\n\t getRegexMask: function() {\n\t var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r;\n\t\n\t for (var i = 0; i < mask.length; i++) {\n\t translation = jMask.translation[mask.charAt(i)];\n\t\n\t if (translation) {\n\t\n\t pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, '');\n\t optional = translation.optional;\n\t recursive = translation.recursive;\n\t\n\t if (recursive) {\n\t maskChunks.push(mask.charAt(i));\n\t oRecursive = {digit: mask.charAt(i), pattern: pattern};\n\t } else {\n\t maskChunks.push(!optional && !recursive ? pattern : (pattern + '?'));\n\t }\n\t\n\t } else {\n\t maskChunks.push(mask.charAt(i).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n\t }\n\t }\n\t\n\t r = maskChunks.join('');\n\t\n\t if (oRecursive) {\n\t r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?')\n\t .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern);\n\t }\n\t\n\t return new RegExp(r);\n\t },\n\t destroyEvents: function() {\n\t el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask '));\n\t },\n\t val: function(v) {\n\t var isInput = el.is('input'),\n\t method = isInput ? 'val' : 'text',\n\t r;\n\t\n\t if (arguments.length > 0) {\n\t if (el[method]() !== v) {\n\t el[method](v);\n\t }\n\t r = el;\n\t } else {\n\t r = el[method]();\n\t }\n\t\n\t return r;\n\t },\n\t calculateCaretPosition: function(oldVal) {\n\t var newVal = p.getMasked(),\n\t caretPosNew = p.getCaret();\n\t if (oldVal !== newVal) {\n\t var caretPosOld = el.data('mask-previus-caret-pos') || 0,\n\t newValL = newVal.length,\n\t oldValL = oldVal.length,\n\t maskDigitsBeforeCaret = 0,\n\t maskDigitsAfterCaret = 0,\n\t maskDigitsBeforeCaretAll = 0,\n\t maskDigitsBeforeCaretAllOld = 0,\n\t i = 0;\n\t\n\t for (i = caretPosNew; i < newValL; i++) {\n\t if (!p.maskDigitPosMap[i]) {\n\t break;\n\t }\n\t maskDigitsAfterCaret++;\n\t }\n\t\n\t for (i = caretPosNew - 1; i >= 0; i--) {\n\t if (!p.maskDigitPosMap[i]) {\n\t break;\n\t }\n\t maskDigitsBeforeCaret++;\n\t }\n\t\n\t for (i = caretPosNew - 1; i >= 0; i--) {\n\t if (p.maskDigitPosMap[i]) {\n\t maskDigitsBeforeCaretAll++;\n\t }\n\t }\n\t\n\t for (i = caretPosOld - 1; i >= 0; i--) {\n\t if (p.maskDigitPosMapOld[i]) {\n\t maskDigitsBeforeCaretAllOld++;\n\t }\n\t }\n\t\n\t // if the cursor is at the end keep it there\n\t if (caretPosNew > oldValL) {\n\t caretPosNew = newValL * 10;\n\t } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) {\n\t if (!p.maskDigitPosMapOld[caretPosNew]) {\n\t var caretPos = caretPosNew;\n\t caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll;\n\t caretPosNew -= maskDigitsBeforeCaret;\n\t if (p.maskDigitPosMap[caretPosNew]) {\n\t caretPosNew = caretPos;\n\t }\n\t }\n\t }\n\t else if (caretPosNew > caretPosOld) {\n\t caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld;\n\t caretPosNew += maskDigitsAfterCaret;\n\t }\n\t }\n\t return caretPosNew;\n\t },\n\t behaviour: function(e) {\n\t e = e || window.event;\n\t p.invalid = [];\n\t\n\t var keyCode = el.data('mask-keycode');\n\t\n\t if ($.inArray(keyCode, jMask.byPassKeys) === -1) {\n\t var newVal = p.getMasked(),\n\t caretPos = p.getCaret(),\n\t oldVal = el.data('mask-previus-value') || '';\n\t\n\t // this is a compensation to devices/browsers that don't compensate\n\t // caret positioning the right way\n\t setTimeout(function() {\n\t p.setCaret(p.calculateCaretPosition(oldVal));\n\t }, $.jMaskGlobals.keyStrokeCompensation);\n\t\n\t p.val(newVal);\n\t p.setCaret(caretPos);\n\t return p.callbacks(e);\n\t }\n\t },\n\t getMasked: function(skipMaskChars, val) {\n\t var buf = [],\n\t value = val === undefined ? p.val() : val + '',\n\t m = 0, maskLen = mask.length,\n\t v = 0, valLen = value.length,\n\t offset = 1, addMethod = 'push',\n\t resetPos = -1,\n\t maskDigitCount = 0,\n\t maskDigitPosArr = [],\n\t lastMaskChar,\n\t check;\n\t\n\t if (options.reverse) {\n\t addMethod = 'unshift';\n\t offset = -1;\n\t lastMaskChar = 0;\n\t m = maskLen - 1;\n\t v = valLen - 1;\n\t check = function () {\n\t return m > -1 && v > -1;\n\t };\n\t } else {\n\t lastMaskChar = maskLen - 1;\n\t check = function () {\n\t return m < maskLen && v < valLen;\n\t };\n\t }\n\t\n\t var lastUntranslatedMaskChar;\n\t while (check()) {\n\t var maskDigit = mask.charAt(m),\n\t valDigit = value.charAt(v),\n\t translation = jMask.translation[maskDigit];\n\t\n\t if (translation) {\n\t if (valDigit.match(translation.pattern)) {\n\t buf[addMethod](valDigit);\n\t if (translation.recursive) {\n\t if (resetPos === -1) {\n\t resetPos = m;\n\t } else if (m === lastMaskChar && m !== resetPos) {\n\t m = resetPos - offset;\n\t }\n\t\n\t if (lastMaskChar === resetPos) {\n\t m -= offset;\n\t }\n\t }\n\t m += offset;\n\t } else if (valDigit === lastUntranslatedMaskChar) {\n\t // matched the last untranslated (raw) mask character that we encountered\n\t // likely an insert offset the mask character from the last entry; fall\n\t // through and only increment v\n\t maskDigitCount--;\n\t lastUntranslatedMaskChar = undefined;\n\t } else if (translation.optional) {\n\t m += offset;\n\t v -= offset;\n\t } else if (translation.fallback) {\n\t buf[addMethod](translation.fallback);\n\t m += offset;\n\t v -= offset;\n\t } else {\n\t p.invalid.push({p: v, v: valDigit, e: translation.pattern});\n\t }\n\t v += offset;\n\t } else {\n\t if (!skipMaskChars) {\n\t buf[addMethod](maskDigit);\n\t }\n\t\n\t if (valDigit === maskDigit) {\n\t maskDigitPosArr.push(v);\n\t v += offset;\n\t } else {\n\t lastUntranslatedMaskChar = maskDigit;\n\t maskDigitPosArr.push(v + maskDigitCount);\n\t maskDigitCount++;\n\t }\n\t\n\t m += offset;\n\t }\n\t }\n\t\n\t var lastMaskCharDigit = mask.charAt(lastMaskChar);\n\t if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) {\n\t buf.push(lastMaskCharDigit);\n\t }\n\t\n\t var newVal = buf.join('');\n\t p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen);\n\t return newVal;\n\t },\n\t mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) {\n\t var maskDiff = options.reverse ? newVal.length - valLen : 0;\n\t p.maskDigitPosMap = {};\n\t for (var i = 0; i < maskDigitPosArr.length; i++) {\n\t p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1;\n\t }\n\t },\n\t callbacks: function (e) {\n\t var val = p.val(),\n\t changed = val !== oldValue,\n\t defaultArgs = [val, e, el, options],\n\t callback = function(name, criteria, args) {\n\t if (typeof options[name] === 'function' && criteria) {\n\t options[name].apply(this, args);\n\t }\n\t };\n\t\n\t callback('onChange', changed === true, defaultArgs);\n\t callback('onKeyPress', changed === true, defaultArgs);\n\t callback('onComplete', val.length === mask.length, defaultArgs);\n\t callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]);\n\t }\n\t };\n\t\n\t el = $(el);\n\t var jMask = this, oldValue = p.val(), regexMask;\n\t\n\t mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask;\n\t\n\t // public methods\n\t jMask.mask = mask;\n\t jMask.options = options;\n\t jMask.remove = function() {\n\t var caret = p.getCaret();\n\t if (jMask.options.placeholder) {\n\t el.removeAttr('placeholder');\n\t }\n\t if (el.data('mask-maxlength')) {\n\t el.removeAttr('maxlength');\n\t }\n\t p.destroyEvents();\n\t p.val(jMask.getCleanVal());\n\t p.setCaret(caret);\n\t return el;\n\t };\n\t\n\t // get value without mask\n\t jMask.getCleanVal = function() {\n\t return p.getMasked(true);\n\t };\n\t\n\t // get masked value without the value being in the input or element\n\t jMask.getMaskedVal = function(val) {\n\t return p.getMasked(false, val);\n\t };\n\t\n\t jMask.init = function(onlyMask) {\n\t onlyMask = onlyMask || false;\n\t options = options || {};\n\t\n\t jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch;\n\t jMask.byPassKeys = $.jMaskGlobals.byPassKeys;\n\t jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation);\n\t\n\t jMask = $.extend(true, {}, jMask, options);\n\t\n\t regexMask = p.getRegexMask();\n\t\n\t if (onlyMask) {\n\t p.events();\n\t p.val(p.getMasked());\n\t } else {\n\t if (options.placeholder) {\n\t el.attr('placeholder' , options.placeholder);\n\t }\n\t\n\t // this is necessary, otherwise if the user submit the form\n\t // and then press the \"back\" button, the autocomplete will erase\n\t // the data. Works fine on IE9+, FF, Opera, Safari.\n\t if (el.data('mask')) {\n\t el.attr('autocomplete', 'off');\n\t }\n\t\n\t // detect if is necessary let the user type freely.\n\t // for is a lot faster than forEach.\n\t for (var i = 0, maxlength = true; i < mask.length; i++) {\n\t var translation = jMask.translation[mask.charAt(i)];\n\t if (translation && translation.recursive) {\n\t maxlength = false;\n\t break;\n\t }\n\t }\n\t\n\t if (maxlength) {\n\t el.attr('maxlength', mask.length).data('mask-maxlength', true);\n\t }\n\t\n\t p.destroyEvents();\n\t p.events();\n\t\n\t var caret = p.getCaret();\n\t p.val(p.getMasked());\n\t p.setCaret(caret);\n\t }\n\t };\n\t\n\t jMask.init(!el.is('input'));\n\t };\n\t\n\t $.maskWatchers = {};\n\t var HTMLAttributes = function () {\n\t var input = $(this),\n\t options = {},\n\t prefix = 'data-mask-',\n\t mask = input.attr('data-mask');\n\t\n\t if (input.attr(prefix + 'reverse')) {\n\t options.reverse = true;\n\t }\n\t\n\t if (input.attr(prefix + 'clearifnotmatch')) {\n\t options.clearIfNotMatch = true;\n\t }\n\t\n\t if (input.attr(prefix + 'selectonfocus') === 'true') {\n\t options.selectOnFocus = true;\n\t }\n\t\n\t if (notSameMaskObject(input, mask, options)) {\n\t return input.data('mask', new Mask(this, mask, options));\n\t }\n\t },\n\t notSameMaskObject = function(field, mask, options) {\n\t options = options || {};\n\t var maskObject = $(field).data('mask'),\n\t stringify = JSON.stringify,\n\t value = $(field).val() || $(field).text();\n\t try {\n\t if (typeof mask === 'function') {\n\t mask = mask(value);\n\t }\n\t return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask;\n\t } catch (e) {}\n\t },\n\t eventSupported = function(eventName) {\n\t var el = document.createElement('div'), isSupported;\n\t\n\t eventName = 'on' + eventName;\n\t isSupported = (eventName in el);\n\t\n\t if ( !isSupported ) {\n\t el.setAttribute(eventName, 'return;');\n\t isSupported = typeof el[eventName] === 'function';\n\t }\n\t el = null;\n\t\n\t return isSupported;\n\t };\n\t\n\t $.fn.mask = function(mask, options) {\n\t options = options || {};\n\t var selector = this.selector,\n\t globals = $.jMaskGlobals,\n\t interval = globals.watchInterval,\n\t watchInputs = options.watchInputs || globals.watchInputs,\n\t maskFunction = function() {\n\t if (notSameMaskObject(this, mask, options)) {\n\t return $(this).data('mask', new Mask(this, mask, options));\n\t }\n\t };\n\t\n\t $(this).each(maskFunction);\n\t\n\t if (selector && selector !== '' && watchInputs) {\n\t clearInterval($.maskWatchers[selector]);\n\t $.maskWatchers[selector] = setInterval(function(){\n\t $(document).find(selector).each(maskFunction);\n\t }, interval);\n\t }\n\t return this;\n\t };\n\t\n\t $.fn.masked = function(val) {\n\t return this.data('mask').getMaskedVal(val);\n\t };\n\t\n\t $.fn.unmask = function() {\n\t clearInterval($.maskWatchers[this.selector]);\n\t delete $.maskWatchers[this.selector];\n\t return this.each(function() {\n\t var dataMask = $(this).data('mask');\n\t if (dataMask) {\n\t dataMask.remove().removeData('mask');\n\t }\n\t });\n\t };\n\t\n\t $.fn.cleanVal = function() {\n\t return this.data('mask').getCleanVal();\n\t };\n\t\n\t $.applyDataMask = function(selector) {\n\t selector = selector || $.jMaskGlobals.maskElements;\n\t var $selector = (selector instanceof $) ? selector : $(selector);\n\t $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes);\n\t };\n\t\n\t var globals = {\n\t maskElements: 'input,td,span,div',\n\t dataMaskAttr: '*[data-mask]',\n\t dataMask: true,\n\t watchInterval: 300,\n\t watchInputs: true,\n\t keyStrokeCompensation: 10,\n\t // old versions of chrome dont work great with input event\n\t useInput: !/Chrome\\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'),\n\t watchDataMask: false,\n\t byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],\n\t translation: {\n\t '0': {pattern: /\\d/},\n\t '9': {pattern: /\\d/, optional: true},\n\t '#': {pattern: /\\d/, recursive: true},\n\t 'A': {pattern: /[a-zA-Z0-9]/},\n\t 'S': {pattern: /[a-zA-Z]/}\n\t }\n\t };\n\t\n\t $.jMaskGlobals = $.jMaskGlobals || {};\n\t globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals);\n\t\n\t // looking for inputs with data-mask attribute\n\t if (globals.dataMask) {\n\t $.applyDataMask();\n\t }\n\t\n\t setInterval(function() {\n\t if ($.jMaskGlobals.watchDataMask) {\n\t $.applyDataMask();\n\t }\n\t }, globals.watchInterval);\n\t}, __webpack_provided_window_dot_jQuery, window.Zepto));\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t * mustache.js - Logic-less {{mustache}} templates with JavaScript\n\t * http://github.com/janl/mustache.js\n\t */\n\t\n\t/*global define: false Mustache: true*/\n\t\n\t(function defineMustache (global, factory) {\n\t if (typeof exports === 'object' && exports && typeof exports.nodeName !== 'string') {\n\t factory(exports); // CommonJS\n\t } else if (true) {\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // AMD\n\t } else {\n\t global.Mustache = {};\n\t factory(global.Mustache); // script, wsh, asp\n\t }\n\t}(this, function mustacheFactory (mustache) {\n\t\n\t var objectToString = Object.prototype.toString;\n\t var isArray = Array.isArray || function isArrayPolyfill (object) {\n\t return objectToString.call(object) === '[object Array]';\n\t };\n\t\n\t function isFunction (object) {\n\t return typeof object === 'function';\n\t }\n\t\n\t /**\n\t * More correct typeof string handling array\n\t * which normally returns typeof 'object'\n\t */\n\t function typeStr (obj) {\n\t return isArray(obj) ? 'array' : typeof obj;\n\t }\n\t\n\t function escapeRegExp (string) {\n\t return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n\t }\n\t\n\t /**\n\t * Null safe way of checking whether or not an object,\n\t * including its prototype, has a given property\n\t */\n\t function hasProperty (obj, propName) {\n\t return obj != null && typeof obj === 'object' && (propName in obj);\n\t }\n\t\n\t // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n\t // See https://github.com/janl/mustache.js/issues/189\n\t var regExpTest = RegExp.prototype.test;\n\t function testRegExp (re, string) {\n\t return regExpTest.call(re, string);\n\t }\n\t\n\t var nonSpaceRe = /\\S/;\n\t function isWhitespace (string) {\n\t return !testRegExp(nonSpaceRe, string);\n\t }\n\t\n\t var entityMap = {\n\t '&': '&',\n\t '<': '<',\n\t '>': '>',\n\t '\"': '"',\n\t \"'\": ''',\n\t '/': '/',\n\t '`': '`',\n\t '=': '='\n\t };\n\t\n\t function escapeHtml (string) {\n\t return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n\t return entityMap[s];\n\t });\n\t }\n\t\n\t var whiteRe = /\\s*/;\n\t var spaceRe = /\\s+/;\n\t var equalsRe = /\\s*=/;\n\t var curlyRe = /\\s*\\}/;\n\t var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\t\n\t /**\n\t * Breaks up the given `template` string into a tree of tokens. If the `tags`\n\t * argument is given here it must be an array with two string values: the\n\t * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n\t * course, the default is to use mustaches (i.e. mustache.tags).\n\t *\n\t * A token is an array with at least 4 elements. The first element is the\n\t * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n\t * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n\t * all text that appears outside a symbol this element is \"text\".\n\t *\n\t * The second element of a token is its \"value\". For mustache tags this is\n\t * whatever else was inside the tag besides the opening symbol. For text tokens\n\t * this is the text itself.\n\t *\n\t * The third and fourth elements of the token are the start and end indices,\n\t * respectively, of the token in the original template.\n\t *\n\t * Tokens that are the root node of a subtree contain two more elements: 1) an\n\t * array of tokens in the subtree and 2) the index in the original template at\n\t * which the closing tag for that section begins.\n\t */\n\t function parseTemplate (template, tags) {\n\t if (!template)\n\t return [];\n\t\n\t var sections = []; // Stack to hold section tokens\n\t var tokens = []; // Buffer to hold the tokens\n\t var spaces = []; // Indices of whitespace tokens on the current line\n\t var hasTag = false; // Is there a {{tag}} on the current line?\n\t var nonSpace = false; // Is there a non-space char on the current line?\n\t\n\t // Strips all whitespace tokens array for the current line\n\t // if there was a {{#tag}} on it and otherwise only space.\n\t function stripSpace () {\n\t if (hasTag && !nonSpace) {\n\t while (spaces.length)\n\t delete tokens[spaces.pop()];\n\t } else {\n\t spaces = [];\n\t }\n\t\n\t hasTag = false;\n\t nonSpace = false;\n\t }\n\t\n\t var openingTagRe, closingTagRe, closingCurlyRe;\n\t function compileTags (tagsToCompile) {\n\t if (typeof tagsToCompile === 'string')\n\t tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\t\n\t if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n\t throw new Error('Invalid tags: ' + tagsToCompile);\n\t\n\t openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n\t closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n\t closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n\t }\n\t\n\t compileTags(tags || mustache.tags);\n\t\n\t var scanner = new Scanner(template);\n\t\n\t var start, type, value, chr, token, openSection;\n\t while (!scanner.eos()) {\n\t start = scanner.pos;\n\t\n\t // Match any text between tags.\n\t value = scanner.scanUntil(openingTagRe);\n\t\n\t if (value) {\n\t for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n\t chr = value.charAt(i);\n\t\n\t if (isWhitespace(chr)) {\n\t spaces.push(tokens.length);\n\t } else {\n\t nonSpace = true;\n\t }\n\t\n\t tokens.push([ 'text', chr, start, start + 1 ]);\n\t start += 1;\n\t\n\t // Check for whitespace on the current line.\n\t if (chr === '\\n')\n\t stripSpace();\n\t }\n\t }\n\t\n\t // Match the opening tag.\n\t if (!scanner.scan(openingTagRe))\n\t break;\n\t\n\t hasTag = true;\n\t\n\t // Get the tag type.\n\t type = scanner.scan(tagRe) || 'name';\n\t scanner.scan(whiteRe);\n\t\n\t // Get the tag value.\n\t if (type === '=') {\n\t value = scanner.scanUntil(equalsRe);\n\t scanner.scan(equalsRe);\n\t scanner.scanUntil(closingTagRe);\n\t } else if (type === '{') {\n\t value = scanner.scanUntil(closingCurlyRe);\n\t scanner.scan(curlyRe);\n\t scanner.scanUntil(closingTagRe);\n\t type = '&';\n\t } else {\n\t value = scanner.scanUntil(closingTagRe);\n\t }\n\t\n\t // Match the closing tag.\n\t if (!scanner.scan(closingTagRe))\n\t throw new Error('Unclosed tag at ' + scanner.pos);\n\t\n\t token = [ type, value, start, scanner.pos ];\n\t tokens.push(token);\n\t\n\t if (type === '#' || type === '^') {\n\t sections.push(token);\n\t } else if (type === '/') {\n\t // Check section nesting.\n\t openSection = sections.pop();\n\t\n\t if (!openSection)\n\t throw new Error('Unopened section \"' + value + '\" at ' + start);\n\t\n\t if (openSection[1] !== value)\n\t throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n\t } else if (type === 'name' || type === '{' || type === '&') {\n\t nonSpace = true;\n\t } else if (type === '=') {\n\t // Set the tags for the next time around.\n\t compileTags(value);\n\t }\n\t }\n\t\n\t // Make sure there are no open sections when we're done.\n\t openSection = sections.pop();\n\t\n\t if (openSection)\n\t throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\t\n\t return nestTokens(squashTokens(tokens));\n\t }\n\t\n\t /**\n\t * Combines the values of consecutive text tokens in the given `tokens` array\n\t * to a single token.\n\t */\n\t function squashTokens (tokens) {\n\t var squashedTokens = [];\n\t\n\t var token, lastToken;\n\t for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n\t token = tokens[i];\n\t\n\t if (token) {\n\t if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n\t lastToken[1] += token[1];\n\t lastToken[3] = token[3];\n\t } else {\n\t squashedTokens.push(token);\n\t lastToken = token;\n\t }\n\t }\n\t }\n\t\n\t return squashedTokens;\n\t }\n\t\n\t /**\n\t * Forms the given array of `tokens` into a nested tree structure where\n\t * tokens that represent a section have two additional items: 1) an array of\n\t * all tokens that appear in that section and 2) the index in the original\n\t * template that represents the end of that section.\n\t */\n\t function nestTokens (tokens) {\n\t var nestedTokens = [];\n\t var collector = nestedTokens;\n\t var sections = [];\n\t\n\t var token, section;\n\t for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n\t token = tokens[i];\n\t\n\t switch (token[0]) {\n\t case '#':\n\t case '^':\n\t collector.push(token);\n\t sections.push(token);\n\t collector = token[4] = [];\n\t break;\n\t case '/':\n\t section = sections.pop();\n\t section[5] = token[2];\n\t collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n\t break;\n\t default:\n\t collector.push(token);\n\t }\n\t }\n\t\n\t return nestedTokens;\n\t }\n\t\n\t /**\n\t * A simple string scanner that is used by the template parser to find\n\t * tokens in template strings.\n\t */\n\t function Scanner (string) {\n\t this.string = string;\n\t this.tail = string;\n\t this.pos = 0;\n\t }\n\t\n\t /**\n\t * Returns `true` if the tail is empty (end of string).\n\t */\n\t Scanner.prototype.eos = function eos () {\n\t return this.tail === '';\n\t };\n\t\n\t /**\n\t * Tries to match the given regular expression at the current position.\n\t * Returns the matched text if it can match, the empty string otherwise.\n\t */\n\t Scanner.prototype.scan = function scan (re) {\n\t var match = this.tail.match(re);\n\t\n\t if (!match || match.index !== 0)\n\t return '';\n\t\n\t var string = match[0];\n\t\n\t this.tail = this.tail.substring(string.length);\n\t this.pos += string.length;\n\t\n\t return string;\n\t };\n\t\n\t /**\n\t * Skips all text until the given regular expression can be matched. Returns\n\t * the skipped string, which is the entire tail if no match can be made.\n\t */\n\t Scanner.prototype.scanUntil = function scanUntil (re) {\n\t var index = this.tail.search(re), match;\n\t\n\t switch (index) {\n\t case -1:\n\t match = this.tail;\n\t this.tail = '';\n\t break;\n\t case 0:\n\t match = '';\n\t break;\n\t default:\n\t match = this.tail.substring(0, index);\n\t this.tail = this.tail.substring(index);\n\t }\n\t\n\t this.pos += match.length;\n\t\n\t return match;\n\t };\n\t\n\t /**\n\t * Represents a rendering context by wrapping a view object and\n\t * maintaining a reference to the parent context.\n\t */\n\t function Context (view, parentContext) {\n\t this.view = view;\n\t this.cache = { '.': this.view };\n\t this.parent = parentContext;\n\t }\n\t\n\t /**\n\t * Creates a new context using the given view with this context\n\t * as the parent.\n\t */\n\t Context.prototype.push = function push (view) {\n\t return new Context(view, this);\n\t };\n\t\n\t /**\n\t * Returns the value of the given name in this context, traversing\n\t * up the context hierarchy if the value is absent in this context's view.\n\t */\n\t Context.prototype.lookup = function lookup (name) {\n\t var cache = this.cache;\n\t\n\t var value;\n\t if (cache.hasOwnProperty(name)) {\n\t value = cache[name];\n\t } else {\n\t var context = this, names, index, lookupHit = false;\n\t\n\t while (context) {\n\t if (name.indexOf('.') > 0) {\n\t value = context.view;\n\t names = name.split('.');\n\t index = 0;\n\t\n\t /**\n\t * Using the dot notion path in `name`, we descend through the\n\t * nested objects.\n\t *\n\t * To be certain that the lookup has been successful, we have to\n\t * check if the last object in the path actually has the property\n\t * we are looking for. We store the result in `lookupHit`.\n\t *\n\t * This is specially necessary for when the value has been set to\n\t * `undefined` and we want to avoid looking up parent contexts.\n\t **/\n\t while (value != null && index < names.length) {\n\t if (index === names.length - 1)\n\t lookupHit = hasProperty(value, names[index]);\n\t\n\t value = value[names[index++]];\n\t }\n\t } else {\n\t value = context.view[name];\n\t lookupHit = hasProperty(context.view, name);\n\t }\n\t\n\t if (lookupHit)\n\t break;\n\t\n\t context = context.parent;\n\t }\n\t\n\t cache[name] = value;\n\t }\n\t\n\t if (isFunction(value))\n\t value = value.call(this.view);\n\t\n\t return value;\n\t };\n\t\n\t /**\n\t * A Writer knows how to take a stream of tokens and render them to a\n\t * string, given a context. It also maintains a cache of templates to\n\t * avoid the need to parse the same template twice.\n\t */\n\t function Writer () {\n\t this.cache = {};\n\t }\n\t\n\t /**\n\t * Clears all cached templates in this writer.\n\t */\n\t Writer.prototype.clearCache = function clearCache () {\n\t this.cache = {};\n\t };\n\t\n\t /**\n\t * Parses and caches the given `template` and returns the array of tokens\n\t * that is generated from the parse.\n\t */\n\t Writer.prototype.parse = function parse (template, tags) {\n\t var cache = this.cache;\n\t var tokens = cache[template];\n\t\n\t if (tokens == null)\n\t tokens = cache[template] = parseTemplate(template, tags);\n\t\n\t return tokens;\n\t };\n\t\n\t /**\n\t * High-level method that is used to render the given `template` with\n\t * the given `view`.\n\t *\n\t * The optional `partials` argument may be an object that contains the\n\t * names and templates of partials that are used in the template. It may\n\t * also be a function that is used to load partial templates on the fly\n\t * that takes a single argument: the name of the partial.\n\t */\n\t Writer.prototype.render = function render (template, view, partials) {\n\t var tokens = this.parse(template);\n\t var context = (view instanceof Context) ? view : new Context(view);\n\t return this.renderTokens(tokens, context, partials, template);\n\t };\n\t\n\t /**\n\t * Low-level method that renders the given array of `tokens` using\n\t * the given `context` and `partials`.\n\t *\n\t * Note: The `originalTemplate` is only ever used to extract the portion\n\t * of the original template that was contained in a higher-order section.\n\t * If the template doesn't use higher-order sections, this argument may\n\t * be omitted.\n\t */\n\t Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate) {\n\t var buffer = '';\n\t\n\t var token, symbol, value;\n\t for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n\t value = undefined;\n\t token = tokens[i];\n\t symbol = token[0];\n\t\n\t if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate);\n\t else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate);\n\t else if (symbol === '>') value = this.renderPartial(token, context, partials, originalTemplate);\n\t else if (symbol === '&') value = this.unescapedValue(token, context);\n\t else if (symbol === 'name') value = this.escapedValue(token, context);\n\t else if (symbol === 'text') value = this.rawValue(token);\n\t\n\t if (value !== undefined)\n\t buffer += value;\n\t }\n\t\n\t return buffer;\n\t };\n\t\n\t Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate) {\n\t var self = this;\n\t var buffer = '';\n\t var value = context.lookup(token[1]);\n\t\n\t // This function is used to render an arbitrary template\n\t // in the current context by higher-order sections.\n\t function subRender (template) {\n\t return self.render(template, context, partials);\n\t }\n\t\n\t if (!value) return;\n\t\n\t if (isArray(value)) {\n\t for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n\t buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);\n\t }\n\t } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n\t buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);\n\t } else if (isFunction(value)) {\n\t if (typeof originalTemplate !== 'string')\n\t throw new Error('Cannot use higher-order sections without the original template');\n\t\n\t // Extract the portion of the original template that the section contains.\n\t value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\t\n\t if (value != null)\n\t buffer += value;\n\t } else {\n\t buffer += this.renderTokens(token[4], context, partials, originalTemplate);\n\t }\n\t return buffer;\n\t };\n\t\n\t Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate) {\n\t var value = context.lookup(token[1]);\n\t\n\t // Use JavaScript's definition of falsy. Include empty arrays.\n\t // See https://github.com/janl/mustache.js/issues/186\n\t if (!value || (isArray(value) && value.length === 0))\n\t return this.renderTokens(token[4], context, partials, originalTemplate);\n\t };\n\t\n\t Writer.prototype.renderPartial = function renderPartial (token, context, partials) {\n\t if (!partials) return;\n\t\n\t var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n\t if (value != null)\n\t return this.renderTokens(this.parse(value), context, partials, value);\n\t };\n\t\n\t Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n\t var value = context.lookup(token[1]);\n\t if (value != null)\n\t return value;\n\t };\n\t\n\t Writer.prototype.escapedValue = function escapedValue (token, context) {\n\t var value = context.lookup(token[1]);\n\t if (value != null)\n\t return mustache.escape(value);\n\t };\n\t\n\t Writer.prototype.rawValue = function rawValue (token) {\n\t return token[1];\n\t };\n\t\n\t mustache.name = 'mustache.js';\n\t mustache.version = '2.3.0';\n\t mustache.tags = [ '{{', '}}' ];\n\t\n\t // All high-level mustache.* functions use this writer.\n\t var defaultWriter = new Writer();\n\t\n\t /**\n\t * Clears all cached templates in the default writer.\n\t */\n\t mustache.clearCache = function clearCache () {\n\t return defaultWriter.clearCache();\n\t };\n\t\n\t /**\n\t * Parses and caches the given template in the default writer and returns the\n\t * array of tokens it contains. Doing this ahead of time avoids the need to\n\t * parse templates on the fly as they are rendered.\n\t */\n\t mustache.parse = function parse (template, tags) {\n\t return defaultWriter.parse(template, tags);\n\t };\n\t\n\t /**\n\t * Renders the `template` with the given `view` and `partials` using the\n\t * default writer.\n\t */\n\t mustache.render = function render (template, view, partials) {\n\t if (typeof template !== 'string') {\n\t throw new TypeError('Invalid template! Template should be a \"string\" ' +\n\t 'but \"' + typeStr(template) + '\" was given as the first ' +\n\t 'argument for mustache#render(template, view, partials)');\n\t }\n\t\n\t return defaultWriter.render(template, view, partials);\n\t };\n\t\n\t // This is here for backwards compatibility with 0.4.x.,\n\t /*eslint-disable */ // eslint wants camel cased function name\n\t mustache.to_html = function to_html (template, view, partials, send) {\n\t /*eslint-enable*/\n\t\n\t var result = mustache.render(template, view, partials);\n\t\n\t if (isFunction(send)) {\n\t send(result);\n\t } else {\n\t return result;\n\t }\n\t };\n\t\n\t // Export the escaping function so that the user may override it.\n\t // See https://github.com/janl/mustache.js/issues/244\n\t mustache.escape = escapeHtml;\n\t\n\t // Export these mainly for testing, but also for advanced usage.\n\t mustache.Scanner = Scanner;\n\t mustache.Context = Context;\n\t mustache.Writer = Writer;\n\t\n\t return mustache;\n\t}));\n\n\n/***/ })\n]);\n\n\n// WEBPACK FOOTER //\n// article-landing.min.js","import common from './common';\r\nimport Module from './module';\r\nimport Util, { ViewPort } from './lib/util';\r\nimport Mustache from 'mustache';\r\n\r\nclass ArticleLanding extends Module {\r\n\r\n\r\n constructor(options) {\r\n\r\n super(options);\r\n\r\n this.templates = {};\r\n\r\n\t\tthis.articleAliasPath = window.globals.__articlesAliasPath;\r\n\t\tthis.articlesApiPath = window.globals.__articlesApiPath;\r\n this.$tagFilter = $('#ArticleTags');\r\n\r\n this.$featuredArticle = $('#featured-article');\r\n\r\n this.featuredArticleNodeID = Number.parseInt($('#featured-article').data('node-id'));\r\n\r\n this.hasFeaturedArticle = !Number.isNaN(this.featuredArticleNodeID);\r\n }\r\n\r\n\r\n init() {\r\n return super.init()\r\n .then(() => this.emit('init'));\r\n }\r\n\r\n\r\n main() {\r\n\r\n // Parse the templates now, and Mustache will cache them\r\n this.templates.articleCard = $('#article-card-template').html();\r\n Mustache.parse(this.templates.articleCard);\r\n this.templates.pagerNumberCard = $('#pager-number-card-template').html();\r\n Mustache.parse(this.templates.pagerNumberCard);\r\n\r\n this.$tagFilter.val(null);\r\n this.equalHeights();\r\n\r\n let tag = Util.getQueryString('tag');\r\n\t\tif (Util.hasValue(tag)) {\r\n this.$tagFilter.val(Util.trim(tag).toLowerCase());\r\n this.$tagFilter.trigger('change');\r\n }\r\n }\r\n\r\n\r\n bindEvents() {\r\n $(window).on('resize', Util.debounce(e => this.onResize(e)));\r\n\r\n this.$tagFilter.on('change', Util.debounce(e => this.onTagFilterChanged(e)))\r\n\r\n this.registerPagerClickEvent();\r\n }\r\n\r\n getArticleListing(pagerSelection, tagFilterClicked) {\r\n let nodeAliasPath = this.articleAliasPath;\r\n let selectedTag = this.$tagFilter.val();\r\n\r\n // If a filter is in use we will handle paging differently\r\n pagerSelection = tagFilterClicked ? 'filtering' : pagerSelection;\r\n\r\n let selectedPageNumber = this.getSelectedPageNumber(pagerSelection);\r\n\r\n $('.nha-load').removeClass('hidden');\r\n \r\n $.ajax({\r\n method: 'GET',\r\n url: this.articlesApiPath,\r\n\t\t\tdata: {\r\n\t\t\t\tcultureCode: common.getCultureCode(),\r\n\t\t\t\tnodealiaspath: nodeAliasPath,\r\n\t\t\t\tselectedpage: selectedPageNumber,\r\n\t\t\t\ttag: selectedTag\r\n\t\t\t},\r\n dataType: 'json'\r\n }).done(response => {\r\n this.renderArticleTemplate(response.Data.ThumbnailArticles);\r\n this.renderPagerTemplates(response.Data.Pager);\r\n $('.nha-load').addClass('hidden');\r\n this.displayFeaturedArticle();\r\n\r\n common.mobilePagination();\r\n \r\n \t// scroll to top of list\r\n if (Util.checkWidth() === ViewPort.Desktop) {\r\n \t$('html, body').animate({\r\n \t\tscrollTop: $(\"#article-list\").offset().top - 10\r\n \t}, 1000);\r\n }\r\n else {\r\n \t$('html, body').animate({\r\n \t\tscrollTop: $(\"#article-list\").offset().top - 80\r\n \t}, 1000);\r\n }\r\n });\r\n }\r\n\r\n\r\n displayFeaturedArticle() {\r\n\r\n // If the tag filter is in use\r\n if (Util.hasValue(this.$tagFilter.val())) {\r\n // Hide the featured article\r\n this.$featuredArticle.hide();\r\n } else {\r\n this.$featuredArticle.show();\r\n }\r\n }\r\n\r\n\r\n getSelectedPageNumber(pagerSelection) {\r\n\r\n // The currently active page number\r\n let activePage = parseInt($('.nha-pagination li.active a').data('pagenumber'));\r\n\r\n // The last page number that could be chosen\r\n let lastPage = parseInt($('.nha-pagination').data('total-pages'));\r\n\r\n // Determine an actual integer to use as the selected page number\r\n let selectedPage;\r\n switch (pagerSelection) {\r\n case 'filtering':\r\n selectedPage = 1;\r\n break;\r\n case 'first':\r\n selectedPage = 1;\r\n break;\r\n case 'previous':\r\n selectedPage = activePage === 1 ? 1 : activePage - 1;\r\n break;\r\n case 'next':\r\n selectedPage = ((activePage === lastPage) ? lastPage : activePage + 1);\r\n break;\r\n case 'last':\r\n selectedPage = lastPage;\r\n break;\r\n case 'none':\r\n // A page was not selected so get the active page number instead\r\n selectedPage = $('.nha-pagination li.active').text().trim();\r\n break;\r\n default:\r\n // A page number was selected by the user, so use that selection\r\n selectedPage = pagerSelection;\r\n break;\r\n }\r\n\r\n\r\n return selectedPage;\r\n }\r\n\r\n\r\n renderPagerTemplates(pager) {\r\n\r\n // Add the \"first\" and \"previous\" buttons\r\n if (pager.CurrentPage > 1) {\r\n $('.nha-pagination-first').removeClass('hidden');\r\n $('.nha-pagination-previous').removeClass('hidden');\r\n } else {\r\n $('.nha-pagination-first').addClass('hidden');\r\n $('.nha-pagination-previous').addClass('hidden');\r\n }\r\n\r\n\r\n // Remove the current pager numbers from the page\r\n $('.js-li-pagination-number').remove();\r\n\r\n var html = \"\";\r\n for (var i = pager.StartPage; i <= pager.EndPage; i++) {\r\n\r\n // Determine which page number is active so we can highlight it\r\n var active = (i === parseInt(pager.CurrentPage)) ? \"active\" : '';\r\n\r\n // Create an object for mustache to use\r\n var pagerNumber = { active: active, pageNumber: i }\r\n\r\n // Fill in a template for this page number\r\n html += Mustache.render(this.templates.pagerNumberCard, pagerNumber);\r\n }\r\n\r\n // Insert all of the page number templates after the \"previous\" button\r\n $('.nha-pagination-previous').after(html);\r\n\r\n\r\n // Add the \"next\" and \"last\" buttons\r\n if (pager.CurrentPage < pager.TotalPages) {\r\n $('.nha-pagination-next').removeClass('hidden');\r\n $('.nha-pagination-last').removeClass('hidden');\r\n } else {\r\n $('.nha-pagination-next').addClass('hidden');\r\n $('.nha-pagination-last').addClass('hidden');\r\n }\r\n\r\n if (pager.TotalPages === 1) {\r\n $('.js-li-pagination-number').addClass('hidden');\r\n }\r\n\r\n\r\n // The pager numbers were removed and added again, so we need to register\r\n // their click events again\r\n this.registerPagerClickEvent('.js-pagination-number');\r\n }\r\n\r\n\r\n renderArticleTemplate(articlesArray) {\r\n // Filter out featured article if needed\r\n if (this.$tagFilter.val() === \"\" && this.hasFeaturedArticle) articlesArray = articlesArray.filter(article => article.NodeID != this.featuredArticleNodeID);\r\n\r\n var articles = { articles: articlesArray };\r\n\r\n\t\tlet $articleListHTML = $('#article-list .nha-row').first();\r\n\r\n // Clear the current articles\r\n $articleListHTML.empty();\r\n\r\n // Render template for articles array\r\n var html = Mustache.render(this.templates.articleCard, articles);\r\n\r\n $articleListHTML.append(html);\r\n\r\n this.equalHeights();\r\n }\r\n\r\n\r\n registerPagerClickEvent(selectorFilter) {\r\n let selector = '.nha-pagination a';\r\n\r\n if (selectorFilter != null) {\r\n selector += selectorFilter;\r\n }\r\n $(selector).on('click', e => this.getArticleListing($(e.target).data(\"pagenumber\"), false));\r\n\r\n }\r\n\r\n /**\r\n\t * Called when the window is resized (after being debounced)\r\n\t * \r\n\t * @param {ResizeEvent} e \r\n\t * @memberof SchoolHome\r\n\t */\r\n onResize(e) {\r\n\r\n this.equalHeights();\r\n }\r\n\r\n onTagFilterChanged(e) {\r\n this.getArticleListing('none', true)\r\n }\r\n\r\n equalHeights() {\r\n if (Util.checkWidth() !== ViewPort.Mobile) {\r\n Util.equalHeightAll('.nha-js-card');\r\n }\r\n else {\r\n $('.nha-js-card').removeAttr('style');\r\n }\r\n\r\n }\r\n}\r\n\r\nconst articleLanding = new ArticleLanding();\r\n\r\ncommon.on('init', () => articleLanding.init());\r\n\r\nexport default articleLanding;\r\n\n\n\n// WEBPACK FOOTER //\n// ./wwwroot/js/app/article-landing.js","// import $ from 'jquery';\r\nimport Module from './module';\r\nimport Util, { ViewPort } from './lib/util';\r\nimport 'modaal/dist/js/modaal.min.js';\r\nimport mask from 'jquery-mask-plugin';\r\n\r\nconst SCHOOL_PATTERN = /\\/schools\\/([\\w-]+)\\/*/ig;\r\n\r\n/**\r\n * @class Common\r\n * @extends {Module}\r\n */\r\nclass Common extends Module {\r\n\r\n\tconstructor(options) {\r\n\t\tsuper(options);\r\n\r\n\t\twindow.dynamicModal = [];\r\n\t\tthis.$transparencyExpanded = $('.nha-transparency-report-expanded');\r\n\t}\r\n\r\n\tinit() {\r\n\t\t// sub-modules must emit an `init` event\r\n\t\treturn super.init().then(e => this.emit('init', e));\r\n\t}\r\n\r\n\tmain() {\r\n\t\tthis.mobilePagination();\r\n\t\tthis.modalIframe();\r\n\t\tthis.modalInline();\r\n\t\tthis.modalAuthor();\r\n\t\tthis.setBodyPadding();\r\n\t}\r\n\r\n\t/**\r\n\t * @listens window#load\r\n\t * @listens window#resize\r\n\t * @memberof Common\r\n\t */\r\n\tbindEvents() {\r\n\t\tsuper.bindEvents();\r\n\r\n\t\t// phone mask\r\n\t\t$('.nha-form-control.nha-phone-mask').mask('(000) 000-0000');\r\n\r\n\t\t// corporate header search desktop\r\n\t\t$('.nha-header-search-btn').on('click', e => {\r\n\t\t\te.stopPropagation();\r\n\t\t\tlet target = $(e.currentTarget);\r\n\r\n\t\t\ttarget.parent('li').addClass('nha-search-expanded');\r\n\t\t\t$('.nha-header-search-input input').focus();\r\n\t\t});\r\n\r\n\t\t$('#header-right-search').on('click', e => {\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t\t$(document.body).on('click', e => {\r\n\t\t\t$('.nha-search-expanded').removeClass('nha-search-expanded');\r\n\t\t});\r\n\r\n\t\t$('.nha-live-chat-tab').on('click', e => { $(\".lebtn div\").trigger(\"click\") });\r\n\r\n\t\t$('.nha-nav-primary > li > ul > li a').on('keydown', e => { this.closingNav(e) });\r\n\r\n\r\n\t\t//aria tags\r\n\t\tthis.initAriaExpanded();\r\n\r\n\t\tvar navObserver = new ResizeObserver(function (mutations) {\r\n\t\t\tvar targetElements = $('.nha-nav-primary > li > ul');\r\n\t\t\ttargetElements.each(function() {\r\n\t\t\t\tvar height = $(this).height();\r\n\t\t\t\tif (height > 0) {\r\n\t\t\t\t\t$(this).prev().attr('aria-expanded', 'true');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(this).prev().attr('aria-expanded', 'false');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\r\n\t\r\n\t\t//start observing\r\n\t\t$('.nha-nav-primary > li > ul').each(function() {\r\n\t\t\tnavObserver.observe(this);\r\n\t\t});\r\n\r\n\t\t// mobile nav\r\n\t\t$('.nha-nav-toggle').on('click', e => { this.mobileNav(e) });\r\n\t\t$('.nha-nav .nha-nav-top-item').on('click', e => { this.mobileNavItem(e) });\r\n\t\t$('.nha-nav .nha-nav-top-item').on('keydown', e => { this.tabbingNav(e) });\r\n\r\n\t\t$(document).on('keydown', function(event) {\r\n\t\t\tvar target = $('.nha-nav-toggle');\r\n\t\t\tif (event.key === \"Escape\" && target.hasClass('open')) {\r\n\t\t\t\ttarget.toggleClass('open');\r\n\t\t\t\t$('.nha-nav').toggleClass('open').css('visibility', 'visible');\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t$('.nha-transparency-report-expanded .nha-btn').on('click', e => { this.$transparencyExpanded.fadeOut(); });\r\n\r\n\t\t$(document).on('keyup', function(event) {\r\n\t\t\tif (event.key === \"Enter\" && $('.nha-education-circle').is(\":focus\")) {\r\n\t\t\t\t$('.nha-transparency-report-expanded').fadeIn();\r\n\t\t\t\t$('.nha-transparency-report-expanded').find('a').trigger('focus')\r\n\t\t\t} \r\n\t\t})\r\n\r\n\t\t$('.nha-education-circle-link').on('click', e => {\r\n\t\t\tthis.$transparencyExpanded.fadeIn();\r\n\t\t\tthis.$transparencyExpanded.find('.nha-btn').focus();\r\n\t\t});\r\n\r\n\t\t$('.nha-education-circle').on('click', e => {\r\n\t\t\tthis.$transparencyExpanded.fadeIn();\r\n\t\t\tthis.$transparencyExpanded.find('.nha-btn').focus();\r\n\t\t});\r\n\r\n\t\t$(window).on('scroll', e => { this.$transparencyExpanded.fadeOut(); });\r\n\r\n\t\t$(window).on('resize', Util.debounce(e => this.onResize(e)));\r\n\t}\r\n\r\n\t/**\r\n\t * Parses the url for the culture code\r\n\t * @memberof Common\r\n\t * @returns {string} The two-letter cultureCode\r\n\t */\r\n\tgetCultureCode() {\r\n\t\tconst path = window.location.pathname + '/'\r\n\r\n\t\tif (this.isSchoolSite) {\r\n\t\t\tlet matches = /\\/schools\\/([\\w-]+)\\/*/ig.exec(path)\r\n\r\n\t\t\tif (matches != null) {\r\n\t\t\t\tconst index = matches[0].length\r\n\t\t\t\treturn Util.trim(path.substring(index, path.indexOf('/', index)), '/');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tlet matches = /\\/(en|es)/gi.exec(path);\r\n\t\t\tif (matches != null) return Util.trim(matches[0], '/');\r\n\t\t}\r\n\t}\r\n\r\n\tget isSchoolSite() {\r\n\t\treturn SCHOOL_PATTERN.test(window.location.pathname);\r\n\t}\r\n\r\n\t/**\r\n\t * Called when the window is resized (after being debounced)\r\n\t * \r\n\t * @param {ResizeEvent} e \r\n\t * @memberof Common\r\n\t */\r\n\tonResize(e) {\r\n\t\tif (Util.checkWidth() === ViewPort.Desktop) {\r\n\t\t\t// reset mobile nav\r\n\t\t\t$('.nha-nav .nha-nav-top-item').removeClass('open');\r\n\t\t\t$('.nha-nav .nha-nav-primary > li ul').removeAttr('style');\r\n\t\t\t$('.nha-nav-toggle').removeClass('open');\r\n\t\t\t$('.nha-nav').removeClass('open').removeAttr('style');\r\n\t\t}\r\n\r\n\t\tthis.mobilePagination();\r\n\r\n\t\tthis.setBodyPadding();\r\n\t}\r\n\r\n\tinitAriaExpanded() {\r\n\t\tvar menuItems = $('.nha-nav-top-item');\r\n\t\tmenuItems.each(function() {\r\n $(this).attr('aria-expanded', 'false');\r\n });\r\n\t}\r\n\r\n\tmobileNav(e) {\r\n\t\tvar target = $(e.currentTarget);\r\n\r\n\t\ttarget.toggleClass('open');\r\n\t\t$('.nha-nav').toggleClass('open').css('visibility', 'visible');\r\n\t}\r\n\r\n\tmobileNavItem(e) {\r\n\t\tvar target = $(e.currentTarget);\r\n\r\n\t\tif (Util.checkWidth() !== 'desktop') {\r\n\t\t\ttarget.toggleClass('open');\r\n\t\t\ttarget.closest('li').find('ul').slideToggle();\r\n\t\t}\r\n\t}\r\n\r\n\tsetBodyPadding() {\r\n\t\tif (Util.checkWidth() !== ViewPort.Desktop) {\r\n\t\t\tlet headerHeight = $('.nha-header-schools').outerHeight();\r\n\t\t\t$('body').css('padding-top', headerHeight);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$('body').removeAttr('style');\r\n\t\t}\r\n\t}\r\n\r\n\ttabbingNav(e) {\r\n\t\tlet target = $(e.currentTarget);\r\n\t\tlet children = target.parent().find('ul li a');\r\n\t\t\r\n\t\tif ((e.key === \"enter\" || e.keyCode === 13) && target.parent().find('ul').length > 0) {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.mobileNavItem(e);\r\n\t\t\ttarget.parent().addClass('focused');\r\n\r\n\t\t\t\r\n\t\t\tfor (var child of children) {\r\n\t\t\t\t$(child).removeAttr('tabindex');\r\n\t\t\t}\r\n\r\n\t\t\tif (target.parent().hasClass('focused')) {\r\n\t\t\t\t//target.unbind(e);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet $activeElem = $(document.activeElement);\r\n\t\tlet $prevItem = $activeElem.parent().prev();\r\n\r\n\t\tif (e.shiftKey && e.keyCode === 9 || e.keyCode === 27) {\r\n\t\t\tfor (var child of $activeElem.parent().prev().find('ul li a')) {\r\n\t\t\t\t$(child).attr('tabindex', '-1');\r\n\t\t\t}\r\n\r\n\t\t\tfor (var child of $activeElem.parent().find('ul li a')) {\r\n\t\t\t\t$(child).attr('tabindex', '-1');\r\n\t\t\t}\r\n\r\n\t\t\t$('.nha-nav .nha-nav-primary > li').removeClass('focused');\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tif ($prevItem.hasClass('focused')) {\r\n\t\t\t$prevItem.removeClass('focused');\r\n\t\t}\r\n\t}\r\n\r\n\tclosingNav(e) {\r\n\t\tlet target = $(e.currentTarget);\r\n\t\tlet menuItem = target.parent().parent().parent();\r\n\r\n\t\tif (e.keyCode === 27) {\r\n\t\t\te.preventDefault();\r\n\t\t\ttarget.blur();\r\n\r\n\t\t\tlet children = target.parent().parent().children().find('a');\r\n\r\n\t\t\tif (children !== undefined) {\r\n\t\t\t\tfor (var child of children) {\r\n\t\t\t\t\t$(child).attr('tabindex', '-1');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$('.nha-nav .nha-nav-primary > li').removeClass('focused');\r\n\t\t\tmenuItem.attr('tabindex', '-1');\r\n\t\t\tmenuItem.find('a.nha-nav-top-item').focus();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tmobilePagination() {\r\n\t\tif ($('.nha-pagination .js-li-pagination-number ').length > 3) {\r\n\t\t\tif ($('.js-li-pagination-number.active').prev().hasClass('nha-pagination-previous')) {\r\n\t\t\t\t$('.js-li-pagination-number.active').next().addClass('nha-page-show-mobile');\r\n\t\t\t\t$('.js-li-pagination-number.active').next().next().addClass('nha-page-show-mobile');\r\n\t\t\t}\r\n\t\t\telse if ($('.js-li-pagination-number.active').next().hasClass('nha-pagination-next')) {\r\n\t\t\t\t$('.js-li-pagination-number.active').prev().addClass('nha-page-show-mobile');\r\n\t\t\t\t$('.js-li-pagination-number.active').prev().prev().addClass('nha-page-show-mobile');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$('.js-li-pagination-number.active').prev().addClass('nha-page-show-mobile');\r\n\t\t\t\t$('.js-li-pagination-number.active').next().addClass('nha-page-show-mobile');\r\n\t\t\t}\t\r\n\t\t}\r\n\t}\r\n\r\n\tmodalInline() {\r\n\t\t$('.modal-inline').modaal({\r\n\t\t\ttype: 'inline',\r\n\t\t\twidth: 725,\r\n\t\t\tbackground_scroll: false,\r\n\t\t\tbefore_open: function () {\r\n\t\t\t\tif (Util.checkWidth() !== ViewPort.Desktop) {\r\n\t\t\t\t\t$('body').css('position', 'fixed');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tafter_open: function () {\r\n\t\t\t},\r\n\t\t\tafter_close: function () {\r\n\t\t\t\t$('body').removeAttr('style');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tmodalAuthor() {\r\n\t\t$('.modal-author').modaal({\r\n\t\t\ttype: 'inline',\r\n\t\t\twidth: 725,\r\n\t\t\tcustom_class: 'nha-profile-modal',\r\n\t\t\tbackground_scroll: false,\r\n\t\t\tbefore_open: function () {\r\n\t\t\t\tif (Util.checkWidth() !== ViewPort.Desktop) {\r\n\t\t\t\t\t$('body').css('position', 'fixed');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tafter_open: function () {\r\n\t\t\t},\r\n\t\t\tafter_close: function () {\r\n\t\t\t\t$('body').removeAttr('style');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$(window).bind('orientationchange', function (event) {\r\n\t\t\tif ($('.modaal-wrapper').length) {\r\n\t\t\t\t$('.modal-inline').modaal('close');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tmodalIframe() {\r\n\t\tvar IFrame;\r\n\r\n\t\t$('.modal-iframe').modaal({\r\n\t\t\ttype: 'iframe',\r\n\t\t\twidth: 600,\r\n\t\t\tbackground_scroll: false,\r\n\t\t\tbefore_open: function () {\r\n\t\t\t\tif (Util.checkWidth() !== ViewPort.Desktop) {\r\n\t\t\t\t\t$('body').css('position', 'fixed');\r\n\t\t\t\t\t$('.modaal-wrapper').addClass('modal-scrollfix');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tafter_open: function () {\r\n\t\t\t\tIFrame = iFrameResize({\r\n\t\t\t\t\theightCalculationMethod: 'lowestElement'\r\n\t\t\t\t}, 'iframe.modaal-iframe-elem');\r\n\r\n\t\t\t\t$('.modaal-wrapper').removeClass('modal-scrollfix');\r\n\t\t\t\t$('body').css('overflow', 'hidden').css('position', 'relative');\r\n\t\t\t},\r\n\t\t\tafter_close: function () {\r\n\t\t\t\tIFrame[0].iFrameResizer.close();\r\n\t\t\t\t$('body').removeAttr('style');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\n// create an instance to export for other modules to reference\r\nconst common = new Common();\r\n\r\nexport default common;\n\n\n// WEBPACK FOOTER //\n// ./wwwroot/js/app/common.js","import EventEmitter from 'events';\r\n\r\n/**\r\n * Emitted when a Module resolve from Module.init(). All sub-modules are required to emit this event.\r\n * @event Module#init\r\n * \r\n */\r\n\r\n/**\r\n * A Module privodes a scope for controller logic within a page. Inspired by the Revealing Pattern\r\n * \r\n * @class Module\r\n * @extends {EventEmitter}\r\n * @property {boolean} initialized Indicates if the module has been initialized, ie. the module emitted the `init` event\r\n */\r\nclass Module extends EventEmitter {\r\n\r\n\t/**\r\n * Creates an instance of Module.\r\n * @param {object} [options={}] \r\n * @memberof Module\r\n */\r\n\tconstructor(options) {\r\n\t\tsuper();\r\n\t\tthis._options = Object.assign({}, options);\r\n\r\n\t\tthis.initialized = false;\r\n\t}\r\n\r\n\t/**\r\n * Bind events to the module. These could be DOM events, service events, or module events, etc. Should be overriden by sub-classes.\r\n * \r\n\t * @override\r\n * @memberof Module\r\n\t * @listens Module#init\r\n */\r\n\tbindEvents() { }\r\n\r\n\t_bindEvents() {\r\n\t\tthis.on('init', e => {\r\n\t\t\tthis.initialized = true;\r\n\t\t\tthis.main();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n * Initializes the module. Any sub-module must override this method to emit an `init` event\r\n * \r\n * @returns {Promise.} A promise that resolves when initialization is finished\r\n * @memberof Module\r\n */\r\n\tinit() {\r\n\t\treturn new Promise(resolve => {\r\n\r\n\t\t\tthis._bindEvents();\r\n\t\t\tthis.bindEvents();\r\n\r\n\t\t\t// other work\r\n\r\n\t\t\treturn resolve();\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Called when the `init` event is emitted. Should be overriden by sub-classes.\r\n\t * \r\n\t * @override\r\n\t * @memberof Module\r\n\t */\r\n\tmain() { }\r\n}\r\n\r\nexport default Module\n\n\n// WEBPACK FOOTER //\n// ./wwwroot/js/app/module.js","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/events/events.js\n// module id = 4\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 14","/*!\n\tModaal - accessible modals - v0.3.1\n\tby Humaan, for all humans.\n\thttp://humaan.com\n */\n!function(a){var t='
',o={init:function(t,o){var e=this;e.dom=a(\"body\"),e.$elem=a(o),e.options=a.extend({},a.fn.modaal.options,e.$elem.data(),t),e.xhr=null,e.scope={is_open:!1,id:\"modaal_\"+(new Date).getTime()+Math.random().toString(16).substring(2)},e.$elem.attr(\"data-modaal-scope\",e.scope.id),e.private_options={active_class:\"is_active\"},e.lastFocus=null,e.options.is_locked||\"confirm\"==e.options.type||e.options.hide_close?e.scope.close_btn=\"\":e.scope.close_btn='\",\"none\"===e.options.animation&&(e.options.animation_speed=0,e.options.after_callback_delay=0),a(o).on(\"click.Modaal\",function(a){a.preventDefault();var t;if(e.lastFocus=document.activeElement,e.options.should_open!==!1&&(\"function\"!=typeof e.options.should_open||e.options.should_open()!==!1)){switch(e.options.before_open.call(e,a),e.options.type){case\"inline\":e.create_basic();break;case\"ajax\":t=e.options.source(e.$elem,e.$elem.attr(\"href\")),e.fetch_ajax(t);break;case\"confirm\":e.options.is_locked=!0,e.create_confirm();break;case\"image\":e.create_image();break;case\"iframe\":t=e.options.source(e.$elem,e.$elem.attr(\"href\")),e.create_iframe(t);break;case\"video\":e.create_video(e.$elem.attr(\"href\"));break;case\"instagram\":e.create_instagram()}e.watch_events()}}),e.options.start_open===!0&&a(o).click()},watch_events:function(){var t=this;t.dom.off(\"click.Modaal keyup.Modaal keydown.Modaal\"),t.dom.on(\"keydown.Modaal\",function(o){var e=o.keyCode,i=o.target;9==e&&t.scope.is_open&&(a.contains(document.getElementById(t.scope.id),i)||a(\"#\"+t.scope.id).find('*[tabindex=\"0\"]').focus())}),t.dom.on(\"keyup.Modaal\",function(o){var e=o.keyCode,i=o.target;return o.shiftKey&&9==o.keyCode&&t.scope.is_open&&(a.contains(document.getElementById(t.scope.id),i)||a(\"#\"+t.scope.id).find(\".modaal-close\").focus()),!t.options.is_locked&&27==e&&t.scope.is_open?a(document.activeElement).is(\"input:not(:checkbox):not(:radio)\")?!1:void t.modaal_close():\"image\"==t.options.type?(37==e&&t.scope.is_open&&!a(\"#\"+t.scope.id+\" .modaal-gallery-prev\").hasClass(\"is_hidden\")&&t.gallery_update(\"prev\"),void(39==e&&t.scope.is_open&&!a(\"#\"+t.scope.id+\" .modaal-gallery-next\").hasClass(\"is_hidden\")&&t.gallery_update(\"next\"))):void 0}),t.dom.on(\"click.Modaal\",function(o){var e=a(o.target);if(!t.options.is_locked&&(t.options.overlay_close&&e.is(\".modaal-inner-wrapper\")||e.is(\".modaal-close\")||e.closest(\".modaal-close\").length))return void t.modaal_close();if(e.is(\".modaal-confirm-btn\"))return e.is(\".modaal-ok\")&&t.options.confirm_callback.call(t,t.lastFocus),e.is(\".modaal-cancel\")&&t.options.confirm_cancel_callback.call(t,t.lastFocus),void t.modaal_close();if(e.is(\".modaal-gallery-control\")){if(e.hasClass(\"is_hidden\"))return;return e.is(\".modaal-gallery-prev\")&&t.gallery_update(\"prev\"),void(e.is(\".modaal-gallery-next\")&&t.gallery_update(\"next\"))}})},build_modal:function(a){var t=this,o=\"\";\"instagram\"==t.options.type&&(o=\" modaal-instagram\");var e,i=\"video\"==t.options.type?\"modaal-video-wrap\":\"modaal-content\";switch(t.options.animation){case\"fade\":e=\" modaal-start_fade\";break;case\"slide-down\":e=\" modaal-start_slidedown\";break;default:e=\" modaal-start_none\"}var l=\"\";t.options.fullscreen&&(l=\" modaal-fullscreen\"),\"\"===t.options.custom_class&&\"undefined\"==typeof t.options.custom_class||(t.options.custom_class=\" \"+t.options.custom_class);var s=\"\";t.options.width&&t.options.height&&\"number\"==typeof t.options.width&&\"number\"==typeof t.options.height?s=' style=\"max-width:'+t.options.width+\"px;height:\"+t.options.height+'px;overflow:auto;\"':t.options.width&&\"number\"==typeof t.options.width?s=' style=\"max-width:'+t.options.width+'px;\"':t.options.height&&\"number\"==typeof t.options.height&&(s=' style=\"height:'+t.options.height+'px;overflow:auto;\"'),(\"image\"==t.options.type||\"video\"==t.options.type||\"instagram\"==t.options.type||t.options.fullscreen)&&(s=\"\");var n='
';\"video\"!=t.options.type&&(n+='
\"),n+='
',n+=\"inline\"==t.options.type?'
':a,n+=\"
\"+t.scope.close_btn,\"video\"!=t.options.type&&(n+=\"
\"),n+=\"
\",t.dom.append(n),\"inline\"==t.options.type&&a.appendTo(\"#\"+t.scope.id+\" .modaal-content-container\"),t.modaal_overlay(\"show\")},create_basic:function(){var t=this,o=t.$elem.is(\"[href]\")?a(t.$elem.attr(\"href\")):t.$elem,e=\"\";o.length?(e=o.contents().clone(!0,!0),o.empty()):e=\"Content could not be loaded. Please check the source and try again.\",t.build_modal(e)},create_instagram:function(){var t=this,o=t.options.instagram_id,e=\"\",i=\"Instagram photo couldn't be loaded, please check the embed code and try again.\";if(t.build_modal('
'+t.options.loading_content+\"
\"),\"\"!=o&&null!==o&&void 0!==o){var l=\"https://api.instagram.com/oembed?url=http://instagr.am/p/\"+o+\"/\";a.ajax({url:l,dataType:\"jsonp\",cache:!1,success:function(o){e=o.html;var i=a(\"#\"+t.scope.id+\" .modaal-content-container\");i.length>0&&(i.removeClass(t.options.loading_class),i.html(e),window.instgrm.Embeds.process())},error:function(){e=i;var o=a(\"#\"+t.scope.id+\" .modaal-content-container\");o.length>0&&(o.removeClass(t.options.loading_class).addClass(t.options.ajax_error_class),o.html(e))}})}else e=i;return!1},fetch_ajax:function(t){var o=this;null==o.options.accessible_title&&(o.options.accessible_title=\"Dialog Window\"),null!==o.xhr&&(o.xhr.abort(),o.xhr=null),o.build_modal('
'+o.options.loading_content+\"
\"),o.xhr=a.ajax(t,{success:function(t){var e=a(\"#\"+o.scope.id).find(\".modaal-content-container\");e.length>0&&(e.removeClass(o.options.loading_class),e.html(t),o.options.ajax_success.call(o,e))},error:function(t){if(\"abort\"!=t.statusText){var e=a(\"#\"+o.scope.id+\" .modaal-content-container\");e.length>0&&(e.removeClass(o.options.loading_class).addClass(o.options.ajax_error_class),e.html(\"Content could not be loaded. Please check the source and try again.\"))}}})},create_confirm:function(){var a,t=this;a='

'+t.options.confirm_title+'

'+t.options.confirm_content+'
\",t.build_modal(a)},create_image:function(){var t,o,e=this,i=\"\",l='',s='';if(e.$elem.is(\"[rel]\")){var n=e.$elem.attr(\"rel\"),d=a('[rel=\"'+n+'\"]');d.removeAttr(\"data-gallery-active\",\"is_active\"),e.$elem.attr(\"data-gallery-active\",\"is_active\"),o=d.length-1;var r=[];i='\"}i+=\"\"+l+s}else{var _=e.$elem.attr(\"href\"),v=\"\",f=\"\",p=\"\";e.$elem.attr(\"data-modaal-desc\")?(p=e.$elem.attr(\"data-modaal-desc\"),v=e.$elem.attr(\"data-modaal-desc\"),f='\"):p=\"Image with no description\",i='\"}t=i,e.build_modal(t),a(\".modaal-gallery-item.is_active\").is(\".gallery-item-0\")&&a(\".modaal-gallery-prev\").hide(),a(\".modaal-gallery-item.is_active\").is(\".gallery-item-\"+o)&&a(\".modaal-gallery-next\").hide()},gallery_update:function(t){var o=this,e=a(\"#\"+o.scope.id),i=e.find(\".modaal-gallery-item\"),l=i.length-1;if(0==l)return!1;var s=e.find(\".modaal-gallery-prev\"),n=e.find(\".modaal-gallery-next\"),d=250,r=0,c=0,m=e.find(\".modaal-gallery-item.\"+o.private_options.active_class),p=\"next\"==t?m.next(\".modaal-gallery-item\"):m.prev(\".modaal-gallery-item\");return o.options.before_image_change.call(o,m,p),\"prev\"==t&&e.find(\".gallery-item-0\").hasClass(\"is_active\")?!1:\"next\"==t&&e.find(\".gallery-item-\"+l).hasClass(\"is_active\")?!1:void m.stop().animate({opacity:0},d,function(){p.addClass(\"is_next\").css({position:\"absolute\",display:\"block\",opacity:0});var t=a(document).width(),i=t>1140?280:50;r=e.find(\".modaal-gallery-item.is_next\").width(),c=e.find(\".modaal-gallery-item.is_next\").height();var _=e.find(\".modaal-gallery-item.is_next img\").prop(\"naturalWidth\"),v=e.find(\".modaal-gallery-item.is_next img\").prop(\"naturalHeight\");_>t-i?(r=t-i,e.find(\".modaal-gallery-item.is_next\").css({width:r}),e.find(\".modaal-gallery-item.is_next img\").css({width:r}),c=e.find(\".modaal-gallery-item.is_next\").find(\"img\").height()):(r=_,c=v),e.find(\".modaal-gallery-item-wrap\").stop().animate({width:r,height:c},d,function(){m.removeClass(o.private_options.active_class+\" \"+o.options.gallery_active_class).removeAttr(\"style\"),m.find(\"img\").removeAttr(\"style\"),p.addClass(o.private_options.active_class+\" \"+o.options.gallery_active_class).removeClass(\"is_next\").css(\"position\",\"\"),p.stop().animate({opacity:1},d,function(){a(this).removeAttr(\"style\").css({width:\"100%\"}),a(this).find(\"img\").css(\"width\",\"100%\"),e.find(\".modaal-gallery-item-wrap\").removeAttr(\"style\"),o.options.after_image_change.call(o,p)}),e.find(\".modaal-gallery-item\").removeAttr(\"tabindex\"),e.find(\".modaal-gallery-item.\"+o.private_options.active_class).attr(\"tabindex\",\"0\").focus(),e.find(\".modaal-gallery-item.\"+o.private_options.active_class).is(\".gallery-item-0\")?s.stop().animate({opacity:0},150,function(){a(this).hide()}):s.stop().css({display:\"block\",opacity:s.css(\"opacity\")}).animate({opacity:1},150),e.find(\".modaal-gallery-item.\"+o.private_options.active_class).is(\".gallery-item-\"+l)?n.stop().animate({opacity:0},150,function(){a(this).hide()}):n.stop().css({display:\"block\",opacity:s.css(\"opacity\")}).animate({opacity:1},150)})})},create_video:function(a){var t,o=this;t='',o.build_modal('
'+t+\"
\")},create_iframe:function(a){var t,o=this;t=null!==o.options.width||void 0!==o.options.width||null!==o.options.height||void 0!==o.options.height?'':'
Please specify a width and height for your iframe
',o.build_modal(t)},modaal_open:function(){var t=this,o=a(\"#\"+t.scope.id),e=t.options.animation;\"none\"===e&&(o.removeClass(\"modaal-start_none\"),t.options.after_open.call(t,o)),\"fade\"===e&&o.removeClass(\"modaal-start_fade\"),\"slide-down\"===e&&o.removeClass(\"modaal-start_slide_down\");var i=o;a(\".modaal-wrapper *[tabindex=0]\").removeAttr(\"tabindex\"),i=\"image\"==t.options.type?a(\"#\"+t.scope.id).find(\".modaal-gallery-item.\"+t.private_options.active_class):o.find(\".modaal-iframe-elem\").length?o.find(\".modaal-iframe-elem\"):o.find(\".modaal-video-wrap\").length?o.find(\".modaal-video-wrap\"):o.find(\".modaal-focus\"),i.attr(\"tabindex\",\"0\").focus(),\"none\"!==e&&setTimeout(function(){t.options.after_open.call(t,o)},t.options.after_callback_delay)},modaal_close:function(){var t=this,o=a(\"#\"+t.scope.id);t.options.before_close.call(t,o),null!==t.xhr&&(t.xhr.abort(),t.xhr=null),\"none\"===t.options.animation&&o.addClass(\"modaal-start_none\"),\"fade\"===t.options.animation&&o.addClass(\"modaal-start_fade\"),\"slide-down\"===t.options.animation&&o.addClass(\"modaal-start_slide_down\"),setTimeout(function(){\"inline\"==t.options.type&&a(\"#\"+t.scope.id+\" .modaal-content-container\").contents().clone(!0,!0).appendTo(t.$elem.attr(\"href\")),o.remove(),t.options.after_close.call(t),t.scope.is_open=!1},t.options.after_callback_delay),t.modaal_overlay(\"hide\"),null!=t.lastFocus&&t.lastFocus.focus()},modaal_overlay:function(t){var o=this;\"show\"==t?(o.scope.is_open=!0,o.options.background_scroll||o.dom.addClass(\"modaal-noscroll\"),o.dom.append('
'),a(\"#\"+o.scope.id+\"_overlay\").css(\"background\",o.options.background).stop().animate({opacity:o.options.overlay_opacity},o.options.animation_speed,function(){o.modaal_open()})):\"hide\"==t&&(o.dom.removeClass(\"modaal-noscroll\"),a(\"#\"+o.scope.id+\"_overlay\").stop().animate({opacity:0},o.options.animation_speed,function(){a(this).remove()}))}};a.fn.modaal=function(t){return this.each(function(){var e=a(this).data(\"modaal\");if(e){if(\"string\"==typeof t)switch(t){case\"close\":e.modaal_close()}}else{var i=Object.create(o);i.init(t,this),a.data(this,\"modaal\",i)}})},a.fn.modaal.options={type:\"inline\",animation:\"fade\",animation_speed:300,after_callback_delay:350,is_locked:!1,hide_close:!1,background:\"#000\",overlay_opacity:\"0.8\",overlay_close:!0,accessible_title:\"Dialog Window\",start_open:!1,fullscreen:!1,custom_class:\"\",background_scroll:!1,should_open:!0,close_text:\"Close\",close_aria_label:\"Close (Press escape to close)\",width:null,height:null,before_open:function(){},after_open:function(){},before_close:function(){},after_close:function(){},source:function(a,t){return t},confirm_button_text:\"Confirm\",confirm_cancel_button_text:\"Cancel\",confirm_title:\"Confirm Title\",confirm_content:\"

This is the default confirm dialog content. Replace me through the options

\",confirm_callback:function(){},confirm_cancel_callback:function(){},gallery_active_class:\"gallery_active_item\",before_image_change:function(a,t){},after_image_change:function(a){},loading_content:t,loading_class:\"is_loading\",ajax_error_class:\"modaal-error\",ajax_success:function(){},instagram_id:null},a(function(){var t=a(\".modaal\");t.length&&t.each(function(){var t=a(this),o={},e=!1;t.attr(\"data-modaal-type\")&&(e=!0,o.type=t.attr(\"data-modaal-type\")),t.attr(\"data-modaal-animation\")&&(e=!0,o.animation=t.attr(\"data-modaal-animation\")),t.attr(\"data-modaal-animation-speed\")&&(e=!0,o.animation_speed=t.attr(\"data-modaal-animation-speed\")),t.attr(\"data-modaal-after-callback-delay\")&&(e=!0,o.after_callback_delay=t.attr(\"data-modaal-after-callback-delay\")),t.attr(\"data-modaal-is-locked\")&&(e=!0,o.is_locked=\"true\"===t.attr(\"data-modaal-is-locked\")),t.attr(\"data-modaal-hide-close\")&&(e=!0,o.hide_close=\"true\"===t.attr(\"data-modaal-hide-close\")),t.attr(\"data-modaal-background\")&&(e=!0,o.background=t.attr(\"data-modaal-background\")),t.attr(\"data-modaal-overlay-opacity\")&&(e=!0,o.overlay_opacity=t.attr(\"data-modaal-overlay-opacity\")),t.attr(\"data-modaal-overlay-close\")&&(e=!0,o.overlay_close=\"false\"!==t.attr(\"data-modaal-overlay-close\")),t.attr(\"data-modaal-accessible-title\")&&(e=!0,o.accessible_title=t.attr(\"data-modaal-accessible-title\")),t.attr(\"data-modaal-start-open\")&&(e=!0,o.start_open=\"true\"===t.attr(\"data-modaal-start-open\")),t.attr(\"data-modaal-fullscreen\")&&(e=!0,o.fullscreen=\"true\"===t.attr(\"data-modaal-fullscreen\")),t.attr(\"data-modaal-custom-class\")&&(e=!0,o.custom_class=t.attr(\"data-modaal-custom-class\")),t.attr(\"data-modaal-close-text\")&&(e=!0,o.close_text=t.attr(\"data-modaal-close-text\")),t.attr(\"data-modaal-close-aria-label\")&&(e=!0,o.close_aria_label=t.attr(\"data-modaal-close-aria-label\")),t.attr(\"data-modaal-background-scroll\")&&(e=!0,o.background_scroll=\"true\"===t.attr(\"data-modaal-background-scroll\")),t.attr(\"data-modaal-width\")&&(e=!0,o.width=parseInt(t.attr(\"data-modaal-width\"))),t.attr(\"data-modaal-height\")&&(e=!0,o.height=parseInt(t.attr(\"data-modaal-height\"))),t.attr(\"data-modaal-confirm-button-text\")&&(e=!0,o.confirm_button_text=t.attr(\"data-modaal-confirm-button-text\")),t.attr(\"data-modaal-confirm-cancel-button-text\")&&(e=!0,o.confirm_cancel_button_text=t.attr(\"data-modaal-confirm-cancel-button-text\")),t.attr(\"data-modaal-confirm-title\")&&(e=!0,o.confirm_title=t.attr(\"data-modaal-confirm-title\")),t.attr(\"data-modaal-confirm-content\")&&(e=!0,o.confirm_content=t.attr(\"data-modaal-confirm-content\")),t.attr(\"data-modaal-gallery-active-class\")&&(e=!0,o.gallery_active_class=t.attr(\"data-modaal-gallery-active-class\")),t.attr(\"data-modaal-loading-content\")&&(e=!0,o.loading_content=t.attr(\"data-modaal-loading-content\")),t.attr(\"data-modaal-loading-class\")&&(e=!0,o.loading_class=t.attr(\"data-modaal-loading-class\")),t.attr(\"data-modaal-ajax-error-class\")&&(e=!0,o.ajax_error_class=t.attr(\"data-modaal-ajax-error-class\")),t.attr(\"data-modaal-instagram-id\")&&(e=!0,o.instagram_id=t.attr(\"data-modaal-instagram-id\")),e&&t.modaal(o)})})}(jQuery,window,document);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/modaal/dist/js/modaal.min.js\n// module id = 9\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 14","/**\n * jquery.mask.js\n * @version: v1.14.16\n * @author: Igor Escobar\n *\n * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin\n *\n * Copyright (c) 2012 Igor Escobar http://igorescobar.com\n *\n * The MIT License (http://www.opensource.org/licenses/mit-license.php)\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* jshint laxbreak: true */\n/* jshint maxcomplexity:17 */\n/* global define */\n\n// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere.\n// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js\n(function (factory, jQuery, Zepto) {\n\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports === 'object' && typeof Meteor === 'undefined') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery || Zepto);\n }\n\n}(function ($) {\n 'use strict';\n\n var Mask = function (el, mask, options) {\n\n var p = {\n invalid: [],\n getCaret: function () {\n try {\n var sel,\n pos = 0,\n ctrl = el.get(0),\n dSel = document.selection,\n cSelStart = ctrl.selectionStart;\n\n // IE Support\n if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) {\n sel = dSel.createRange();\n sel.moveStart('character', -p.val().length);\n pos = sel.text.length;\n }\n // Firefox support\n else if (cSelStart || cSelStart === '0') {\n pos = cSelStart;\n }\n\n return pos;\n } catch (e) {}\n },\n setCaret: function(pos) {\n try {\n if (el.is(':focus')) {\n var range, ctrl = el.get(0);\n\n // Firefox, WebKit, etc..\n if (ctrl.setSelectionRange) {\n ctrl.setSelectionRange(pos, pos);\n } else { // IE\n range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n } catch (e) {}\n },\n events: function() {\n el\n .on('keydown.mask', function(e) {\n el.data('mask-keycode', e.keyCode || e.which);\n el.data('mask-previus-value', el.val());\n el.data('mask-previus-caret-pos', p.getCaret());\n p.maskDigitPosMapOld = p.maskDigitPosMap;\n })\n .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour)\n .on('paste.mask drop.mask', function() {\n setTimeout(function() {\n el.keydown().keyup();\n }, 100);\n })\n .on('change.mask', function(){\n el.data('changed', true);\n })\n .on('blur.mask', function(){\n if (oldValue !== p.val() && !el.data('changed')) {\n el.trigger('change');\n }\n el.data('changed', false);\n })\n // it's very important that this callback remains in this position\n // otherwhise oldValue it's going to work buggy\n .on('blur.mask', function() {\n oldValue = p.val();\n })\n // select all text on focus\n .on('focus.mask', function (e) {\n if (options.selectOnFocus === true) {\n $(e.target).select();\n }\n })\n // clear the value if it not complete the mask\n .on('focusout.mask', function() {\n if (options.clearIfNotMatch && !regexMask.test(p.val())) {\n p.val('');\n }\n });\n },\n getRegexMask: function() {\n var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r;\n\n for (var i = 0; i < mask.length; i++) {\n translation = jMask.translation[mask.charAt(i)];\n\n if (translation) {\n\n pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, '');\n optional = translation.optional;\n recursive = translation.recursive;\n\n if (recursive) {\n maskChunks.push(mask.charAt(i));\n oRecursive = {digit: mask.charAt(i), pattern: pattern};\n } else {\n maskChunks.push(!optional && !recursive ? pattern : (pattern + '?'));\n }\n\n } else {\n maskChunks.push(mask.charAt(i).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n }\n }\n\n r = maskChunks.join('');\n\n if (oRecursive) {\n r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?')\n .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern);\n }\n\n return new RegExp(r);\n },\n destroyEvents: function() {\n el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask '));\n },\n val: function(v) {\n var isInput = el.is('input'),\n method = isInput ? 'val' : 'text',\n r;\n\n if (arguments.length > 0) {\n if (el[method]() !== v) {\n el[method](v);\n }\n r = el;\n } else {\n r = el[method]();\n }\n\n return r;\n },\n calculateCaretPosition: function(oldVal) {\n var newVal = p.getMasked(),\n caretPosNew = p.getCaret();\n if (oldVal !== newVal) {\n var caretPosOld = el.data('mask-previus-caret-pos') || 0,\n newValL = newVal.length,\n oldValL = oldVal.length,\n maskDigitsBeforeCaret = 0,\n maskDigitsAfterCaret = 0,\n maskDigitsBeforeCaretAll = 0,\n maskDigitsBeforeCaretAllOld = 0,\n i = 0;\n\n for (i = caretPosNew; i < newValL; i++) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsAfterCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsBeforeCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (p.maskDigitPosMap[i]) {\n maskDigitsBeforeCaretAll++;\n }\n }\n\n for (i = caretPosOld - 1; i >= 0; i--) {\n if (p.maskDigitPosMapOld[i]) {\n maskDigitsBeforeCaretAllOld++;\n }\n }\n\n // if the cursor is at the end keep it there\n if (caretPosNew > oldValL) {\n caretPosNew = newValL * 10;\n } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) {\n if (!p.maskDigitPosMapOld[caretPosNew]) {\n var caretPos = caretPosNew;\n caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll;\n caretPosNew -= maskDigitsBeforeCaret;\n if (p.maskDigitPosMap[caretPosNew]) {\n caretPosNew = caretPos;\n }\n }\n }\n else if (caretPosNew > caretPosOld) {\n caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld;\n caretPosNew += maskDigitsAfterCaret;\n }\n }\n return caretPosNew;\n },\n behaviour: function(e) {\n e = e || window.event;\n p.invalid = [];\n\n var keyCode = el.data('mask-keycode');\n\n if ($.inArray(keyCode, jMask.byPassKeys) === -1) {\n var newVal = p.getMasked(),\n caretPos = p.getCaret(),\n oldVal = el.data('mask-previus-value') || '';\n\n // this is a compensation to devices/browsers that don't compensate\n // caret positioning the right way\n setTimeout(function() {\n p.setCaret(p.calculateCaretPosition(oldVal));\n }, $.jMaskGlobals.keyStrokeCompensation);\n\n p.val(newVal);\n p.setCaret(caretPos);\n return p.callbacks(e);\n }\n },\n getMasked: function(skipMaskChars, val) {\n var buf = [],\n value = val === undefined ? p.val() : val + '',\n m = 0, maskLen = mask.length,\n v = 0, valLen = value.length,\n offset = 1, addMethod = 'push',\n resetPos = -1,\n maskDigitCount = 0,\n maskDigitPosArr = [],\n lastMaskChar,\n check;\n\n if (options.reverse) {\n addMethod = 'unshift';\n offset = -1;\n lastMaskChar = 0;\n m = maskLen - 1;\n v = valLen - 1;\n check = function () {\n return m > -1 && v > -1;\n };\n } else {\n lastMaskChar = maskLen - 1;\n check = function () {\n return m < maskLen && v < valLen;\n };\n }\n\n var lastUntranslatedMaskChar;\n while (check()) {\n var maskDigit = mask.charAt(m),\n valDigit = value.charAt(v),\n translation = jMask.translation[maskDigit];\n\n if (translation) {\n if (valDigit.match(translation.pattern)) {\n buf[addMethod](valDigit);\n if (translation.recursive) {\n if (resetPos === -1) {\n resetPos = m;\n } else if (m === lastMaskChar && m !== resetPos) {\n m = resetPos - offset;\n }\n\n if (lastMaskChar === resetPos) {\n m -= offset;\n }\n }\n m += offset;\n } else if (valDigit === lastUntranslatedMaskChar) {\n // matched the last untranslated (raw) mask character that we encountered\n // likely an insert offset the mask character from the last entry; fall\n // through and only increment v\n maskDigitCount--;\n lastUntranslatedMaskChar = undefined;\n } else if (translation.optional) {\n m += offset;\n v -= offset;\n } else if (translation.fallback) {\n buf[addMethod](translation.fallback);\n m += offset;\n v -= offset;\n } else {\n p.invalid.push({p: v, v: valDigit, e: translation.pattern});\n }\n v += offset;\n } else {\n if (!skipMaskChars) {\n buf[addMethod](maskDigit);\n }\n\n if (valDigit === maskDigit) {\n maskDigitPosArr.push(v);\n v += offset;\n } else {\n lastUntranslatedMaskChar = maskDigit;\n maskDigitPosArr.push(v + maskDigitCount);\n maskDigitCount++;\n }\n\n m += offset;\n }\n }\n\n var lastMaskCharDigit = mask.charAt(lastMaskChar);\n if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) {\n buf.push(lastMaskCharDigit);\n }\n\n var newVal = buf.join('');\n p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen);\n return newVal;\n },\n mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) {\n var maskDiff = options.reverse ? newVal.length - valLen : 0;\n p.maskDigitPosMap = {};\n for (var i = 0; i < maskDigitPosArr.length; i++) {\n p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1;\n }\n },\n callbacks: function (e) {\n var val = p.val(),\n changed = val !== oldValue,\n defaultArgs = [val, e, el, options],\n callback = function(name, criteria, args) {\n if (typeof options[name] === 'function' && criteria) {\n options[name].apply(this, args);\n }\n };\n\n callback('onChange', changed === true, defaultArgs);\n callback('onKeyPress', changed === true, defaultArgs);\n callback('onComplete', val.length === mask.length, defaultArgs);\n callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]);\n }\n };\n\n el = $(el);\n var jMask = this, oldValue = p.val(), regexMask;\n\n mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask;\n\n // public methods\n jMask.mask = mask;\n jMask.options = options;\n jMask.remove = function() {\n var caret = p.getCaret();\n if (jMask.options.placeholder) {\n el.removeAttr('placeholder');\n }\n if (el.data('mask-maxlength')) {\n el.removeAttr('maxlength');\n }\n p.destroyEvents();\n p.val(jMask.getCleanVal());\n p.setCaret(caret);\n return el;\n };\n\n // get value without mask\n jMask.getCleanVal = function() {\n return p.getMasked(true);\n };\n\n // get masked value without the value being in the input or element\n jMask.getMaskedVal = function(val) {\n return p.getMasked(false, val);\n };\n\n jMask.init = function(onlyMask) {\n onlyMask = onlyMask || false;\n options = options || {};\n\n jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch;\n jMask.byPassKeys = $.jMaskGlobals.byPassKeys;\n jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation);\n\n jMask = $.extend(true, {}, jMask, options);\n\n regexMask = p.getRegexMask();\n\n if (onlyMask) {\n p.events();\n p.val(p.getMasked());\n } else {\n if (options.placeholder) {\n el.attr('placeholder' , options.placeholder);\n }\n\n // this is necessary, otherwise if the user submit the form\n // and then press the \"back\" button, the autocomplete will erase\n // the data. Works fine on IE9+, FF, Opera, Safari.\n if (el.data('mask')) {\n el.attr('autocomplete', 'off');\n }\n\n // detect if is necessary let the user type freely.\n // for is a lot faster than forEach.\n for (var i = 0, maxlength = true; i < mask.length; i++) {\n var translation = jMask.translation[mask.charAt(i)];\n if (translation && translation.recursive) {\n maxlength = false;\n break;\n }\n }\n\n if (maxlength) {\n el.attr('maxlength', mask.length).data('mask-maxlength', true);\n }\n\n p.destroyEvents();\n p.events();\n\n var caret = p.getCaret();\n p.val(p.getMasked());\n p.setCaret(caret);\n }\n };\n\n jMask.init(!el.is('input'));\n };\n\n $.maskWatchers = {};\n var HTMLAttributes = function () {\n var input = $(this),\n options = {},\n prefix = 'data-mask-',\n mask = input.attr('data-mask');\n\n if (input.attr(prefix + 'reverse')) {\n options.reverse = true;\n }\n\n if (input.attr(prefix + 'clearifnotmatch')) {\n options.clearIfNotMatch = true;\n }\n\n if (input.attr(prefix + 'selectonfocus') === 'true') {\n options.selectOnFocus = true;\n }\n\n if (notSameMaskObject(input, mask, options)) {\n return input.data('mask', new Mask(this, mask, options));\n }\n },\n notSameMaskObject = function(field, mask, options) {\n options = options || {};\n var maskObject = $(field).data('mask'),\n stringify = JSON.stringify,\n value = $(field).val() || $(field).text();\n try {\n if (typeof mask === 'function') {\n mask = mask(value);\n }\n return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask;\n } catch (e) {}\n },\n eventSupported = function(eventName) {\n var el = document.createElement('div'), isSupported;\n\n eventName = 'on' + eventName;\n isSupported = (eventName in el);\n\n if ( !isSupported ) {\n el.setAttribute(eventName, 'return;');\n isSupported = typeof el[eventName] === 'function';\n }\n el = null;\n\n return isSupported;\n };\n\n $.fn.mask = function(mask, options) {\n options = options || {};\n var selector = this.selector,\n globals = $.jMaskGlobals,\n interval = globals.watchInterval,\n watchInputs = options.watchInputs || globals.watchInputs,\n maskFunction = function() {\n if (notSameMaskObject(this, mask, options)) {\n return $(this).data('mask', new Mask(this, mask, options));\n }\n };\n\n $(this).each(maskFunction);\n\n if (selector && selector !== '' && watchInputs) {\n clearInterval($.maskWatchers[selector]);\n $.maskWatchers[selector] = setInterval(function(){\n $(document).find(selector).each(maskFunction);\n }, interval);\n }\n return this;\n };\n\n $.fn.masked = function(val) {\n return this.data('mask').getMaskedVal(val);\n };\n\n $.fn.unmask = function() {\n clearInterval($.maskWatchers[this.selector]);\n delete $.maskWatchers[this.selector];\n return this.each(function() {\n var dataMask = $(this).data('mask');\n if (dataMask) {\n dataMask.remove().removeData('mask');\n }\n });\n };\n\n $.fn.cleanVal = function() {\n return this.data('mask').getCleanVal();\n };\n\n $.applyDataMask = function(selector) {\n selector = selector || $.jMaskGlobals.maskElements;\n var $selector = (selector instanceof $) ? selector : $(selector);\n $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes);\n };\n\n var globals = {\n maskElements: 'input,td,span,div',\n dataMaskAttr: '*[data-mask]',\n dataMask: true,\n watchInterval: 300,\n watchInputs: true,\n keyStrokeCompensation: 10,\n // old versions of chrome dont work great with input event\n useInput: !/Chrome\\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'),\n watchDataMask: false,\n byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],\n translation: {\n '0': {pattern: /\\d/},\n '9': {pattern: /\\d/, optional: true},\n '#': {pattern: /\\d/, recursive: true},\n 'A': {pattern: /[a-zA-Z0-9]/},\n 'S': {pattern: /[a-zA-Z]/}\n }\n };\n\n $.jMaskGlobals = $.jMaskGlobals || {};\n globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals);\n\n // looking for inputs with data-mask attribute\n if (globals.dataMask) {\n $.applyDataMask();\n }\n\n setInterval(function() {\n if ($.jMaskGlobals.watchDataMask) {\n $.applyDataMask();\n }\n }, globals.watchInterval);\n}, window.jQuery, window.Zepto));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/jquery-mask-plugin/dist/jquery.mask.js\n// module id = 10\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 14","/*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n/*global define: false Mustache: true*/\n\n(function defineMustache (global, factory) {\n if (typeof exports === 'object' && exports && typeof exports.nodeName !== 'string') {\n factory(exports); // CommonJS\n } else if (typeof define === 'function' && define.amd) {\n define(['exports'], factory); // AMD\n } else {\n global.Mustache = {};\n factory(global.Mustache); // script, wsh, asp\n }\n}(this, function mustacheFactory (mustache) {\n\n var objectToString = Object.prototype.toString;\n var isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n };\n\n function isFunction (object) {\n return typeof object === 'function';\n }\n\n /**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\n function typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n }\n\n function escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n /**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\n function hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n }\n\n // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n // See https://github.com/janl/mustache.js/issues/189\n var regExpTest = RegExp.prototype.test;\n function testRegExp (re, string) {\n return regExpTest.call(re, string);\n }\n\n var nonSpaceRe = /\\S/;\n function isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n }\n\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n function escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n }\n\n var whiteRe = /\\s*/;\n var spaceRe = /\\s+/;\n var equalsRe = /\\s*=/;\n var curlyRe = /\\s*\\}/;\n var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n /**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n */\n function parseTemplate (template, tags) {\n if (!template)\n return [];\n\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n } else {\n nonSpace = true;\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n')\n stripSpace();\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n token = [ type, value, start, scanner.pos ];\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n }\n\n /**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\n function squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n }\n\n /**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\n function nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n }\n\n /**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\n function Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n }\n\n /**\n * Returns `true` if the tail is empty (end of string).\n */\n Scanner.prototype.eos = function eos () {\n return this.tail === '';\n };\n\n /**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\n Scanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n };\n\n /**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\n Scanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n };\n\n /**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\n function Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n }\n\n /**\n * Creates a new context using the given view with this context\n * as the parent.\n */\n Context.prototype.push = function push (view) {\n return new Context(view, this);\n };\n\n /**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\n Context.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n value = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n **/\n while (value != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = hasProperty(value, names[index]);\n\n value = value[names[index++]];\n }\n } else {\n value = context.view[name];\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit)\n break;\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n };\n\n /**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\n function Writer () {\n this.cache = {};\n }\n\n /**\n * Clears all cached templates in this writer.\n */\n Writer.prototype.clearCache = function clearCache () {\n this.cache = {};\n };\n\n /**\n * Parses and caches the given `template` and returns the array of tokens\n * that is generated from the parse.\n */\n Writer.prototype.parse = function parse (template, tags) {\n var cache = this.cache;\n var tokens = cache[template];\n\n if (tokens == null)\n tokens = cache[template] = parseTemplate(template, tags);\n\n return tokens;\n };\n\n /**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n */\n Writer.prototype.render = function render (template, view, partials) {\n var tokens = this.parse(template);\n var context = (view instanceof Context) ? view : new Context(view);\n return this.renderTokens(tokens, context, partials, template);\n };\n\n /**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\n Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, originalTemplate);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n };\n\n Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate);\n }\n return buffer;\n };\n\n Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate);\n };\n\n Writer.prototype.renderPartial = function renderPartial (token, context, partials) {\n if (!partials) return;\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null)\n return this.renderTokens(this.parse(value), context, partials, value);\n };\n\n Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n };\n\n Writer.prototype.escapedValue = function escapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return mustache.escape(value);\n };\n\n Writer.prototype.rawValue = function rawValue (token) {\n return token[1];\n };\n\n mustache.name = 'mustache.js';\n mustache.version = '2.3.0';\n mustache.tags = [ '{{', '}}' ];\n\n // All high-level mustache.* functions use this writer.\n var defaultWriter = new Writer();\n\n /**\n * Clears all cached templates in the default writer.\n */\n mustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n };\n\n /**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\n mustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n };\n\n /**\n * Renders the `template` with the given `view` and `partials` using the\n * default writer.\n */\n mustache.render = function render (template, view, partials) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials);\n };\n\n // This is here for backwards compatibility with 0.4.x.,\n /*eslint-disable */ // eslint wants camel cased function name\n mustache.to_html = function to_html (template, view, partials, send) {\n /*eslint-enable*/\n\n var result = mustache.render(template, view, partials);\n\n if (isFunction(send)) {\n send(result);\n } else {\n return result;\n }\n };\n\n // Export the escaping function so that the user may override it.\n // See https://github.com/janl/mustache.js/issues/244\n mustache.escape = escapeHtml;\n\n // Export these mainly for testing, but also for advanced usage.\n mustache.Scanner = Scanner;\n mustache.Context = Context;\n mustache.Writer = Writer;\n\n return mustache;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/mustache/mustache.js\n// module id = 11\n// module chunks = 2 3 10 11"],"sourceRoot":""}