{"version":3,"names":[],"mappings":"","sources":["app.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i= (0, _jquery.default)('.c-editor').offset().top) {\n (0, _jquery.default)('.c-anchor-link-box.show-for-large').addClass('c-anchor-link-box__fixed');\n } else {\n (0, _jquery.default)('.c-anchor-link-box.show-for-large').removeClass('c-anchor-link-box__fixed');\n }\n }); //mobile\n\n var $elemContent = (0, _jquery.default)(this.elemContent);\n var anchorLinkBoxHeight = $elemContent.outerHeight() * ((0, _jquery.default)('.c-editor h2').length + 1);\n (0, _jquery.default)(window).on('scroll', function () {\n var windowpos = (0, _jquery.default)(window).scrollTop();\n\n if (!(0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__content').hasClass('active')) {\n if (windowpos >= (0, _jquery.default)('.c-editor').offset().top) {\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large').addClass('c-anchor-link-box__fixed');\n } else {\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large').removeClass('c-anchor-link-box__fixed');\n }\n } else {\n if (windowpos + anchorLinkBoxHeight >= (0, _jquery.default)('.c-editor').offset().top) {\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large').addClass('c-anchor-link-box__fixed');\n } else {\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large').removeClass('c-anchor-link-box__fixed');\n }\n }\n });\n $elemContent.on('click', function () {\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__link').toggleClass('c-anchor-link-box__link__active').animate({\n height: 'toggle'\n }, 500);\n\n if ((0, _jquery.default)('.c-anchor-link-box.hide-for-large').hasClass('c-anchor-link-box__fixed') & !(0, _jquery.default)(this).hasClass('active')) {\n (0, _jquery.default)('html, body').animate({\n scrollTop: (0, _jquery.default)('.c-anchor-link-box.hide-for-large').offset().top - anchorLinkBoxHeight\n }, 800);\n } else if ((0, _jquery.default)('.c-anchor-link-box.hide-for-large').hasClass('c-anchor-link-box__fixed')) {\n (0, _jquery.default)('html, body').animate({\n scrollTop: (0, _jquery.default)('.c-anchor-link-box.hide-for-large').offset().top + anchorLinkBoxHeight\n }, 800);\n }\n\n (0, _jquery.default)(this).toggleClass('active');\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__link').attr('aria-expanded', function (i, attr) {\n return attr == 'true' ? 'false' : 'true';\n });\n });\n\n this.__createAnchorLinks();\n }\n },\n __createAnchorLinks: function __createAnchorLinks() {\n var headings = (0, _jquery.default)('.c-editor h2');\n headings.each(function (index) {\n var heading = (0, _jquery.default)(this);\n var headingText = heading.text();\n heading.attr('id', 'heading-' + headingText);\n var headingId = heading.attr('id');\n var anchorLink = (0, _jquery.default)('' + headingText + '');\n var anchorLinkDesktop = (0, _jquery.default)('' + headingText + '');\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__link').append(anchorLink);\n (0, _jquery.default)('.c-anchor-link-box.show-for-large .c-anchor-link-box__link').append(anchorLinkDesktop); //desktop\n\n (0, _jquery.default)(window).on('scroll', function () {\n var pos = heading.offset().top;\n var windowpos = (0, _jquery.default)(window).scrollTop();\n\n if (windowpos + heading.height() >= pos & windowpos + heading.height() <= (headings[index + 1] != null ? (0, _jquery.default)(headings[index + 1]).offset().top : (0, _jquery.default)(document).height())) {\n anchorLinkDesktop.addClass('active');\n heading.addClass('active');\n } else {\n anchorLinkDesktop.removeClass('active');\n heading.removeClass('active');\n }\n });\n anchorLinkDesktop.on('click', function (e) {\n e.preventDefault();\n (0, _jquery.default)('html, body').animate({\n scrollTop: heading.offset().top\n }, 800);\n }); //mobile\n\n (0, _jquery.default)(window).on('scroll', function () {\n var pos = heading.offset().top;\n var windowpos = (0, _jquery.default)(window).scrollTop();\n var anchorLinkBoxHeight = (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__content').outerHeight() * ((0, _jquery.default)('.c-editor h2').length + 2) + 4 * ((0, _jquery.default)('.c-editor h2').length - 1);\n\n if (!(0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__content').hasClass('active')) {\n if (windowpos + heading.height() + (0, _jquery.default)('.c-anchor-link-box.hide-for-large').outerHeight() >= pos & windowpos + heading.height() + (0, _jquery.default)('.c-anchor-link-box.hide-for-large').outerHeight() <= (headings[index + 1] != null ? (0, _jquery.default)(headings[index + 1]).offset().top : (0, _jquery.default)(document).height())) {\n anchorLink.addClass('active');\n heading.addClass('active');\n } else {\n anchorLink.removeClass('active');\n heading.removeClass('active');\n }\n } else {\n if (windowpos + anchorLinkBoxHeight >= pos & windowpos + anchorLinkBoxHeight <= (headings[index + 1] != null ? (0, _jquery.default)(headings[index + 1]).offset().top : (0, _jquery.default)(document).height())) {\n anchorLink.addClass('active');\n heading.addClass('active');\n } else {\n anchorLink.removeClass('active');\n heading.removeClass('active');\n }\n }\n });\n anchorLink.on('click', function (e) {\n e.preventDefault();\n var scrollMargin = 10;\n var boxHeight = (0, _jquery.default)('.c-anchor-link-box.hide-for-large').hasClass('c-anchor-link-box__fixed') ? (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__content').height() * 2 + scrollMargin : (0, _jquery.default)('.c-anchor-link-box.hide-for-large').height() + (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__content').height() * 2 + scrollMargin;\n (0, _jquery.default)('html, body').animate({\n scrollTop: heading.offset().top - boxHeight\n }, 800);\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__content').removeClass('active');\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__link').attr('aria-expanded', function (i, attr) {\n return attr == 'true' ? 'false' : 'true';\n });\n (0, _jquery.default)('.c-anchor-link-box.hide-for-large .c-anchor-link-box__link').toggleClass('c-anchor-link-box__link__active').animate({\n height: 'toggle'\n }, 500);\n });\n });\n },\n __hasHeadings: function __hasHeadings() {\n if ((0, _jquery.default)('.c-editor h2').length === 0) {\n (0, _jquery.default)('.c-anchor-link-box').hide();\n (0, _jquery.default)('.p-standard__container').addClass('p-standard__container--no-h2');\n return false;\n }\n\n return true;\n }\n};\nvar _default = anchorLinkBox;\nexports.default = _default;\n\n},{\"jquery\":44}],4:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentBlockGrid = {\n init: function init() {\n var $elemBlock = (0, _jquery.default)('.c-article, .c-news, .c-calendar');\n\n if ($elemBlock.parents('.p-landing').length) {\n $elemBlock = (0, _jquery.default)('.c-article, .c-calendar');\n }\n\n (0, _jquery.default)($elemBlock).each(function () {\n if ((0, _jquery.default)(this).parent().next().length == 0) {\n (0, _jquery.default)(this).parent().removeClass('c-block-grid--margin');\n } else if ((0, _jquery.default)(this).parent().next().find($elemBlock).length == 0) {\n (0, _jquery.default)(this).parent().addClass('c-block-grid--margin');\n }\n\n if ((0, _jquery.default)(this).parent().is(':last-child')) {\n (0, _jquery.default)(this).parent().addClass('c-block-grid--selector');\n }\n\n if ((0, _jquery.default)(this).parent().is(':first-child')) {\n (0, _jquery.default)(this).parent().addClass('c-block-grid--selector');\n }\n });\n }\n};\nvar _default = componentBlockGrid;\nexports.default = _default;\n\n},{\"jquery\":44}],5:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentCalendArchive = {\n archiveContainer: '#archiveContainer',\n elemEventPanel: '.c-events__section--panel',\n elemEventGroup: '.c-events__group',\n elemEventButton: '.c-events__button',\n elemList: '.c-events__group',\n elemSelectList: '.c-select-bar__list',\n elemButtonExpanded: 'c-events__button--expanded',\n elemEventListID: '#eventList',\n elemSelectListInput: '.c-select-bar__input',\n elemSelectListButton: 'button.c-select-bar__button span',\n SessionStorageURLParameters: 'CalendarURL',\n init: function init() {\n var initMonthsExpanded = false;\n var filterParameter = componentCalendArchive.getUrlParameter('filters');\n\n if (typeof filterParameter !== 'undefined' && filterParameter != '') {\n var filterValue = filterParameter.split(';');\n var filterListItems = (0, _jquery.default)(componentCalendArchive.elemSelectList).find(componentCalendArchive.elemSelectListInput);\n\n for (var i = 0; i < filterValue.length; i++) {\n if (filterValue != '') {\n filterListItems[filterValue[i]].checked = true;\n }\n }\n\n componentCalendArchive.ChangeSelectFilterText();\n var monthsParameterCheck = componentCalendArchive.getUrlParameter('months');\n\n if (typeof monthsParameterCheck !== 'undefined' && monthsParameterCheck != '') {\n initMonthsExpanded = true;\n componentCalendArchive.GetFilteredEvents(true);\n } else {\n componentCalendArchive.GetFilteredEvents(false);\n }\n }\n\n if (initMonthsExpanded == false) {\n componentCalendArchive.ExpandMonths();\n }\n\n if (document.getElementById('eventList') === null) {\n return;\n }\n\n (0, _jquery.default)('.c-select-bar__reset').on('click', function () {\n (0, _jquery.default)('input[type=\\'checkbox\\']:checked').prop('checked', false);\n (0, _jquery.default)(componentCalendArchive.elemSelectListButton).text('Inga utvalda ämnen');\n componentCalendArchive.GetFilteredEvents(false);\n });\n (0, _jquery.default)(componentCalendArchive.elemSelectListInput).on('change', function () {\n componentCalendArchive.ChangeSelectFilterText();\n componentCalendArchive.GetFilteredEvents(false);\n });\n (0, _jquery.default)(componentCalendArchive.archiveContainer).on('click', (0, _jquery.default)(componentCalendArchive.elemEventPanel), function () {\n componentCalendArchive.UpdateURLParameter();\n });\n },\n ChangeSelectFilterText: function ChangeSelectFilterText() {\n var numberOfCheckedSubjects = (0, _jquery.default)('input:checkbox:checked').length;\n\n if (numberOfCheckedSubjects == 0) {\n (0, _jquery.default)(componentCalendArchive.elemSelectListButton).text('Inga utvalda ämnen');\n } else {\n (0, _jquery.default)(componentCalendArchive.elemSelectListButton).text(numberOfCheckedSubjects + ' valda ämnen');\n }\n },\n GetFilteredEvents: function GetFilteredEvents(shouldMonthsBeExpanded) {\n var selectedAreas = [];\n (0, _jquery.default)(componentCalendArchive.elemSelectList + ' input:checked').each(function () {\n selectedAreas.push(this.value);\n });\n var ajaxUrl = window.eventsListConfig.url;\n var filterParam = {\n 'areas': selectedAreas\n };\n\n _jquery.default.ajax({\n type: 'POST',\n url: ajaxUrl,\n contentType: 'application/json; charset=utf-8',\n dataType: 'html',\n data: JSON.stringify(filterParam),\n success: function success(response) {\n (0, _jquery.default)(componentCalendArchive.elemEventListID).html(response);\n\n if (shouldMonthsBeExpanded) {\n componentCalendArchive.ExpandMonths();\n }\n\n componentCalendArchive.UpdateURLParameter();\n }\n });\n },\n getUrlParameter: function getUrlParameter(sParam) {\n var sPageURL = window.location.search.substring(1),\n sURLVariables = sPageURL.split('&'),\n sParameterName,\n i;\n\n for (i = 0; i < sURLVariables.length; i++) {\n sParameterName = sURLVariables[i].split('=');\n\n if (sParameterName[0] === sParam) {\n return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);\n }\n }\n },\n UpdateURLParameter: function UpdateURLParameter() {\n var selectedFilters,\n selectedMonths,\n parameters = '';\n selectedFilters = componentCalendArchive.GetFilters();\n selectedMonths = componentCalendArchive.GetMonths();\n parameters = componentCalendArchive.CreateURLParameters(selectedFilters, selectedMonths);\n window.history.pushState({}, '', window.location.pathname + parameters);\n sessionStorage.setItem(componentCalendArchive.SessionStorageURLParameters, window.location.pathname + parameters);\n },\n CreateURLParameters: function CreateURLParameters(selectedFilters, selectedMonths) {\n var parameters = '';\n\n if (typeof selectedFilters !== 'undefined' && selectedFilters != '') {\n parameters += (parameters.indexOf('?') >= 0 ? '&' : '?') + 'filters=' + selectedFilters;\n }\n\n if (typeof selectedMonths !== 'undefined' && selectedMonths != '') {\n parameters += (parameters.indexOf('?') >= 0 ? '&' : '?') + 'months=' + selectedMonths;\n }\n\n return parameters;\n },\n GetFilters: function GetFilters() {\n var selectedFilters,\n filterListItems = (0, _jquery.default)(componentCalendArchive.elemSelectList).find('li > label > input');\n\n for (var i = 0; i < filterListItems.length; i++) {\n if (filterListItems[i].checked == true) {\n selectedFilters += i + ';';\n }\n }\n\n if (typeof selectedFilters !== 'undefined' && selectedFilters != '') {\n if (selectedFilters.indexOf(';') != -1) {\n selectedFilters = selectedFilters.substring(0, selectedFilters.length - 1);\n }\n\n if (selectedFilters.indexOf('undefined') != -1) {\n selectedFilters = selectedFilters.split('undefined')[1];\n }\n }\n\n return selectedFilters;\n },\n GetMonths: function GetMonths() {\n var selectedMonths;\n (0, _jquery.default)(componentCalendArchive.elemEventPanel).each(function () {\n if ((0, _jquery.default)(this).find((0, _jquery.default)(componentCalendArchive.elemEventButton)).hasClass(componentCalendArchive.elemButtonExpanded)) {\n var monthText = (0, _jquery.default)(this).find('time')[0].innerText;\n selectedMonths += monthText + ';';\n }\n });\n\n if (typeof selectedMonths !== 'undefined' && selectedMonths != '') {\n if (selectedMonths.indexOf(';') != -1) {\n selectedMonths = selectedMonths.substring(0, selectedMonths.length - 1);\n }\n\n if (selectedMonths.indexOf('undefined') != -1) {\n selectedMonths = selectedMonths.split('undefined')[1];\n }\n }\n\n return selectedMonths;\n },\n ExpandMonths: function ExpandMonths() {\n var monthsParameter = componentCalendArchive.getUrlParameter('months');\n\n if (typeof monthsParameter !== 'undefined' && monthsParameter != '') {\n var monthsValue = monthsParameter.split(';');\n (0, _jquery.default)(componentCalendArchive.elemEventPanel).each(function () {\n var monthText = (0, _jquery.default)(this).find('time')[0].innerText;\n\n if (_jquery.default.inArray(monthText, monthsValue) != -1) {\n (0, _jquery.default)(this).siblings((0, _jquery.default)(this.elemEventGroup)).show();\n (0, _jquery.default)(this).find((0, _jquery.default)(componentCalendArchive.elemEventButton)).toggleClass(componentCalendArchive.elemButtonExpanded);\n (0, _jquery.default)(this).next((0, _jquery.default)(this.elemList)).attr('aria-hidden', false);\n (0, _jquery.default)(this).attr('aria-expanded', true);\n }\n });\n }\n }\n};\nvar _default = componentCalendArchive;\nexports.default = _default;\n\n},{\"jquery\":44}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar checkList = {\n elemAccordionLink: '.c-checklist__link',\n elemAccordionArea: '.c-checklist__area',\n elemAccordion: '.c-checklist',\n elemListItem: '.c-checklist__item',\n elemAccordionButton: '.c-checklist__button',\n init: function init() {\n this._accordion();\n\n var self = this;\n (0, _jquery.default)('[data-checklist]').each(function (_, element) {\n var checkBoxes = (0, _jquery.default)(element).find('input[data-checklist-item]');\n var countLabel = (0, _jquery.default)('[data-checklist-count]');\n var totalLabel = (0, _jquery.default)('[data-checklist-total]');\n var progress = (0, _jquery.default)('[data-checklist-progress]');\n countLabel.html(self._getCheckedCount(checkBoxes));\n totalLabel.html(self._getCount(checkBoxes));\n progress.css('width', self._getPercent(checkBoxes) + '%');\n checkBoxes.change(function () {\n countLabel.html(self._getCheckedCount(checkBoxes));\n progress.css('width', self._getPercent(checkBoxes) + '%');\n });\n });\n },\n _getCheckedCount: function _getCheckedCount(checkBoxes) {\n var checkedCount = 0;\n checkBoxes.each(function (_, item) {\n if ((0, _jquery.default)(item).is(':checked')) {\n checkedCount++;\n }\n });\n return checkedCount;\n },\n _getCount: function _getCount(checkBoxes) {\n return checkBoxes.length;\n },\n _getPercent: function _getPercent(checkBoxes) {\n var percent = 0;\n\n var count = this._getCount(checkBoxes);\n\n var checkedCount = this._getCheckedCount(checkBoxes);\n\n percent = checkedCount / count * 100;\n return percent;\n },\n _accordion: function _accordion() {\n var $elemAccordionLink = (0, _jquery.default)(this.elemAccordionLink);\n var $elemListExpanded = 'c-checklist__item--expanded';\n var $elemAccordionArea = (0, _jquery.default)(this.elemAccordionArea);\n var self = this;\n $elemAccordionLink.on('click', function (e) {\n e.preventDefault();\n /* Expand Instruction */\n\n (0, _jquery.default)(this).closest(self.elemListItem).toggleClass($elemListExpanded);\n (0, _jquery.default)(this).parent().parent().siblings().slideToggle();\n /* WAI-ARIA */\n\n if ((0, _jquery.default)(this).parent().parent().siblings($elemAccordionArea).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).parent().parent().siblings($elemAccordionArea).attr('aria-hidden', false);\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).parent().parent().siblings($elemAccordionArea).attr('aria-hidden', true);\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n }\n};\nvar _default = checkList;\nexports.default = _default;\n\n},{\"jquery\":44}],7:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentContactCard = {\n elem: '.c-contact-card',\n elemTab: '.c-contact-card__tab',\n elemContent: '.c-contact-card__content',\n elemRight: '.c-contact-card__right',\n elemLeft: '.c-contact-card__left',\n init: function init() {\n var $elem = (0, _jquery.default)(this.elem);\n var $elemTab = (0, _jquery.default)(this.elemTab);\n var $elemLeft = (0, _jquery.default)(this.elemLeft);\n var $elemRight = (0, _jquery.default)(this.elemRight);\n var $elemTabCurrent = 'c-contact-card__tab--current';\n var $elemContentCurrent = 'c-contact-card__content--current';\n var $elemTabsShadow = 'c-contact-card__tabs--shadow';\n var $elemTabsRight = 'c-contact-card__right--tabs';\n var $elemTabs = 'c-contact-card__tabs';\n $elem.each(function () {\n (0, _jquery.default)(this).find($elemTab).click(function () {\n /* WAI-ARIA */\n (0, _jquery.default)(this).children().attr('aria-selected', false);\n (0, _jquery.default)(this).siblings().removeClass($elemTabCurrent);\n (0, _jquery.default)(this).addClass($elemTabCurrent);\n (0, _jquery.default)(this).children().attr('aria-selected', true);\n (0, _jquery.default)(this).parent().siblings().each(function () {\n if ((0, _jquery.default)(this).attr('id') == (0, _jquery.default)(this).parent().parent().find('.c-contact-card__tab--current').attr('data-tabs-target')) {\n (0, _jquery.default)(this).addClass($elemContentCurrent).attr('aria-hidden', false);\n } else {\n (0, _jquery.default)(this).removeClass($elemContentCurrent).attr('aria-hidden', true);\n }\n });\n /* Tabs Shadow on Map */\n\n if ((0, _jquery.default)(this).parent().siblings('.c-contact-card__content--map').css('opacity') == '1') {\n (0, _jquery.default)(this).parent().addClass($elemTabsShadow);\n } else {\n $elemTab.parent().removeClass($elemTabsShadow);\n }\n });\n });\n /* Equal Height */\n\n $elemRight.each(function () {\n if ((0, _jquery.default)(this).children('ul').hasClass($elemTabs)) {\n (0, _jquery.default)(this).addClass($elemTabsRight);\n var maxHeight = 0;\n (0, _jquery.default)(this).parent().find('.c-contact-card__left, .c-contact-card__content').each(function () {\n if ((0, _jquery.default)(this).outerHeight(true) > maxHeight) {\n maxHeight = (0, _jquery.default)(this).outerHeight(true);\n }\n });\n (0, _jquery.default)(this).parent().find('.c-contact-card__right, .c-contact-card__content').outerHeight(maxHeight);\n (0, _jquery.default)(window).resize(function () {\n var windowWidth = (0, _jquery.default)(window).width();\n\n if (windowWidth > 1023) {\n (0, _jquery.default)(this).parent().find($elemLeft).outerHeight(maxHeight);\n }\n });\n }\n });\n }\n};\nvar _default = componentContactCard;\nexports.default = _default;\n\n},{\"jquery\":44}],8:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _review = _interopRequireDefault(require(\"../../helpers/buildpermit/review\"));\n\nvar _controlpoints = _interopRequireDefault(require(\"../../helpers/buildpermit/controlpoints\"));\n\nvar _entrepreneurs = _interopRequireDefault(require(\"../../helpers/buildpermit/entrepreneurs\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar controlPlan = {\n init: function init() {\n _entrepreneurs.default.init();\n\n _controlpoints.default.init();\n\n _review.default.init();\n }\n};\nvar _default = controlPlan;\nexports.default = _default;\n\n},{\"../../helpers/buildpermit/controlpoints\":33,\"../../helpers/buildpermit/entrepreneurs\":34,\"../../helpers/buildpermit/review\":35}],9:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentControlPoints = {\n elemAccordionLink: '.c-control-points__link',\n elemAccordionArea: '.c-control-points__area',\n elemAccordion: '.c-control-points',\n elemListItem: '.c-control-points__item',\n expandedClass: 'c-control-points__item--expanded',\n init: function init() {\n this._accordion();\n },\n _accordion: function _accordion() {\n var elemListExpanded = this.expandedClass;\n var $elemAccordionArea = (0, _jquery.default)(this.elemAccordionArea);\n var self = this;\n (0, _jquery.default)('body').on('click', function (e) {\n var elemAccordion = (0, _jquery.default)(e.target).closest(self.elemAccordionLink);\n\n if (!elemAccordion.length) {\n return;\n }\n\n e.preventDefault();\n /* Expand Instruction */\n\n (0, _jquery.default)(elemAccordion).closest(self.elemListItem).toggleClass(elemListExpanded);\n (0, _jquery.default)(elemAccordion).parent().parent().siblings().slideToggle();\n /* WAI-ARIA */\n\n if ((0, _jquery.default)(elemAccordion).parent().parent().siblings($elemAccordionArea).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(elemAccordion).parent().parent().siblings($elemAccordionArea).attr('aria-hidden', false);\n return (0, _jquery.default)(elemAccordion).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(elemAccordion).parent().parent().siblings($elemAccordionArea).attr('aria-hidden', true);\n return (0, _jquery.default)(elemAccordion).attr('aria-expanded', false);\n }\n });\n }\n};\nvar _default = componentControlPoints;\nexports.default = _default;\n\n},{\"jquery\":44}],10:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar cookieConcent = {\n init: function init() {\n bindCookieConsent();\n var consentcookie = getCookie('ConsentCookie');\n var cookieModal = document.querySelector('.cookieModal');\n var dontShowCookiePrompt = document.querySelector('.dontShowCookiePrompt');\n console.log(dontShowCookiePrompt);\n\n if (consentcookie && cookieModal) {\n // cookieModal.classList.remove('show');\n cookieModal.style.display = 'none';\n setCookieSettings(consentcookie);\n } else if (dontShowCookiePrompt) {\n cookieModal.style.display = 'none';\n } else if (cookieModal) {\n // cookieModal.classList.add('show');\n cookieModal.style.display = 'flex'; // Set focus in the modal\n\n cookieModal.focus();\n }\n\n function getCookie(name) {\n var cookieName = name + '=';\n var cookies = document.cookie.split(';');\n\n for (var i = 0; i < cookies.length; i++) {\n var c = cookies[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1);\n }\n\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n\n return '';\n } // function EraseCookie (name) {\n // document.cookie = `${name}=; Max-Age=-99999999;`;\n // }\n\n\n function setCookie(name, value, expirationDays) {\n var d = new Date();\n d.setTime(d.getTime() + expirationDays * 24 * 60 * 60 * 1000);\n var expires = 'expires=' + d.toUTCString();\n document.cookie = name + '=' + value + ';' + expires + ';path=/';\n }\n\n function setCookieSettings(cookie) {\n // console.log('settings - ',cookie);\n var cookiearray = _toConsumableArray(cookie);\n\n if (cookiearray[1] == '1') {\n //statistic cookies accepted\n if (typeof $vizzit !== 'undefined') {\n $vizzit.cookie.set();\n }\n }\n\n for (var i = 0; i < cookiearray.length; i++) {\n var value = cookiearray[i];\n\n if (i != 0 && value === '1') {\n document.querySelector(\"#cookie-option-\".concat(i + 1)).checked = true;\n } else if (i != 0 && value === '0') {\n document.querySelector(\"#cookie-option-\".concat(i + 1)).checked = false;\n }\n }\n }\n\n function isHidden(el) {\n var style = window.getComputedStyle(el);\n return style.display === 'none';\n }\n\n function bindCookieConsent() {\n var cookieModal = document.querySelector('.cookieModal');\n var acceptAll = document.querySelector('.acceptAll');\n\n if (acceptAll) {\n acceptAll.addEventListener('click', function () {\n setCookie('ConsentCookie', '111', 365);\n cookieModal.classList.remove('show');\n setCookieSettings('111');\n location.reload();\n }, false);\n }\n\n var acceptAllPolicy = document.querySelector('.acceptAllPolicy');\n\n if (acceptAllPolicy) {\n acceptAllPolicy.addEventListener('click', function () {\n setCookie('ConsentCookie', '111', 365);\n cookieModal.classList.remove('show');\n setCookieSettings('111');\n location.reload();\n }, false);\n }\n\n var declineAll = document.querySelector('.declineAll');\n\n if (declineAll) {\n declineAll.addEventListener('click', function () {\n setCookie('ConsentCookie', '100', 365);\n cookieModal.style.display = 'none';\n setCookieSettings('100');\n }, false);\n }\n\n var saveSettings = document.querySelector('.saveSettings');\n\n if (saveSettings) {\n saveSettings.addEventListener('click', function (e) {\n e.preventDefault();\n var $inputs = document.querySelectorAll('.content.settings input[type=checkbox]');\n var cookiestring = '';\n\n for (var i = 0; i < $inputs.length; i++) {\n var input = $inputs[i];\n var value = '';\n\n if (input.checked) {\n value = '1';\n } else if (input.checked === false) {\n value = '0';\n }\n\n if (i == 0) {\n cookiestring += '1';\n } else if (i == 1) {\n cookiestring += \"\".concat(value);\n } else if (i == 2) {\n cookiestring += \"\".concat(value);\n }\n }\n\n setCookie('ConsentCookie', cookiestring, 365);\n setCookieSettings(cookiestring);\n cookieModal.classList.remove('show'); // reload page to show videos of forms\n\n location.reload();\n }, false);\n } // add all the elements inside modal which you want to make focusable\n\n\n var focusableElements = 'button, [href], input:not([disabled]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n var consentmodal = document.querySelector('.content.consent');\n var consentfirstFocusableElement = '';\n var consentlastFocusableElement = '';\n\n if (consentmodal) {\n consentfirstFocusableElement = consentmodal.querySelectorAll(focusableElements)[0];\n var consentfocusableContent = consentmodal.querySelectorAll(focusableElements);\n consentlastFocusableElement = consentfocusableContent[consentfocusableContent.length - 1];\n }\n\n var settingsmodal = document.querySelector('.content.settings');\n var settingsfirstFocusableElement = '';\n var settingslastFocusableElement = '';\n\n if (settingsmodal) {\n settingsfirstFocusableElement = settingsmodal.querySelectorAll(focusableElements)[0];\n var settingsfocusableContent = settingsmodal.querySelectorAll(focusableElements);\n settingslastFocusableElement = settingsfocusableContent[settingsfocusableContent.length - 1];\n }\n\n var policymodal = document.querySelector('.content.policy');\n var policyfirstFocusableElement = '';\n var policylastFocusableElement = '';\n\n if (policymodal) {\n policyfirstFocusableElement = policymodal.querySelectorAll(focusableElements)[0];\n var policyfocusableContent = policymodal.querySelectorAll(focusableElements);\n policylastFocusableElement = policyfocusableContent[policyfocusableContent.length - 1];\n }\n\n var cookieSettings = document.querySelector('.cookieSettings');\n\n if (cookieSettings) {\n cookieSettings.addEventListener('click', function () {\n consentmodal.classList.remove('show');\n settingsmodal.classList.add('show');\n policymodal.classList.remove('show');\n\n if (isHidden(cookieModal)) {\n cookieModal.classList.add('show');\n }\n\n cookieModal.focus();\n }, false);\n }\n\n var changeCookieSettings = document.querySelector('.changeCookieSettings');\n\n if (changeCookieSettings) {\n changeCookieSettings.addEventListener('click', function () {\n consentmodal.classList.remove('show');\n settingsmodal.classList.add('show');\n policymodal.classList.remove('show');\n\n if (isHidden(cookieModal)) {\n cookieModal.style.display = 'flex'; // cookieModal.classList.add('show');\n }\n\n cookieModal.focus();\n }, false);\n }\n\n var backbtn = document.querySelectorAll('.cookieModal .backbtn');\n\n if (backbtn) {\n backbtn.forEach(function (item) {\n item.addEventListener('click', function (e) {\n e.preventDefault();\n consentmodal.classList.add('show');\n settingsmodal.classList.remove('show');\n policymodal.classList.remove('show');\n acceptAll.focus();\n }, false);\n });\n }\n\n var closebtn = document.querySelector('.cookieModal .closebtn');\n\n if (closebtn) {\n closebtn.addEventListener('click', function () {\n cookieModal.classList.remove('show');\n consentmodal.classList.remove('show');\n settingsmodal.classList.remove('show');\n policymodal.classList.remove('show');\n }, false);\n }\n\n var cookieinfo = document.querySelectorAll('.cookieModal .cookieinfo');\n\n if (cookieinfo) {\n cookieinfo.forEach(function (item) {\n item.addEventListener('click', function (e) {\n e.preventDefault();\n var $this = e.currentTarget;\n var content = $this.parentElement.querySelector('.cookieinfo_content');\n\n if ($this.getAttribute('aria-expanded') == 'false') {\n $this.setAttribute('aria-expanded', 'true');\n content.classList.add('show');\n $this.classList.add('minify');\n } else {\n $this.setAttribute('aria-expanded', 'false');\n content.classList.remove('show');\n $this.classList.remove('minify');\n }\n }, false);\n });\n }\n\n function handleKeyDown(e) {\n var isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n\n if (!isTabPressed) {\n return;\n }\n\n if (consentmodal && !isHidden(consentmodal)) {\n if (e.shiftKey) {\n // if shift key pressed for shift + tab combination\n if (document.activeElement === consentfirstFocusableElement) {\n consentlastFocusableElement.focus();\n e.preventDefault();\n }\n } else {\n // if tab key is pressed\n if (document.activeElement === consentlastFocusableElement) {\n consentfirstFocusableElement.focus();\n e.preventDefault();\n }\n }\n } else if (settingsmodal && !isHidden(settingsmodal)) {\n if (e.shiftKey) {\n // if shift key pressed for shift + tab combination\n if (document.activeElement === settingsfirstFocusableElement) {\n settingslastFocusableElement.focus();\n e.preventDefault();\n }\n } else {\n // if tab key is pressed\n if (document.activeElement === settingslastFocusableElement) {\n settingsfirstFocusableElement.focus();\n e.preventDefault();\n }\n }\n } else if (policymodal && !isHidden(policymodal)) {\n if (e.shiftKey) {\n // if shift key pressed for shift + tab combination\n if (document.activeElement === policyfirstFocusableElement) {\n policylastFocusableElement.focus();\n e.preventDefault();\n }\n } else {\n // if tab key is pressed\n if (document.activeElement === policylastFocusableElement) {\n policyfirstFocusableElement.focus();\n e.preventDefault();\n }\n }\n }\n }\n\n window.addEventListener('keydown', handleKeyDown);\n }\n }\n};\nvar _default = cookieConcent;\nexports.default = _default;\n\n},{\"jquery\":44}],11:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CustomFileInput = {\n fileInput: '.c-dynamic-form__file-input',\n init: function init() {\n var $fileInput = (0, _jquery.default)(this.fileInput);\n $fileInput.each(function () {\n var $input = (0, _jquery.default)(this),\n $label = $input.next('label'),\n labelVal = $label.html();\n $input.on('change', function (e) {\n var fileName = '';\n if (this.files && this.files.length > 1) fileName = (this.getAttribute('data-multiple-caption') || '').replace('{count}', this.files.length);else if (e.target.value) fileName = e.target.value.split('\\\\').pop();\n if (fileName) $label.find('span.file').html(fileName);else $label.html(labelVal);\n }); // Firefox bug fix\n\n $input.on('focus', function () {\n $input.addClass('has-focus');\n }).on('blur', function () {\n $input.removeClass('has-focus');\n });\n });\n }\n};\nvar _default = CustomFileInput;\nexports.default = _default;\n\n},{\"jquery\":44}],12:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentEditor = {\n elemEditor: '.c-editor',\n elemEditorLink: '.c-editor__link',\n init: function init() {\n var $elemEditorHighlight = 'c-editor__highlight';\n var $elemEditorHighlightLast = 'c-editor__highlight--last';\n var $elemEditorIframe = '

';\n var $elemEditorLink = (0, _jquery.default)(this.elemEditorLink);\n var $elemEditor = (0, _jquery.default)(this.elemEditor);\n /* Editor Highlight Link */\n\n $elemEditorLink.each(function () {\n if ((0, _jquery.default)(this).hasClass('c-editor__link')) {\n (0, _jquery.default)(this).wrapInner('');\n (0, _jquery.default)(this).parent().addClass($elemEditorHighlight);\n }\n\n if ((0, _jquery.default)(this).parent().next().length == 0) {\n (0, _jquery.default)(this).parent().removeClass($elemEditorHighlightLast);\n } else if ((0, _jquery.default)(this).parent().next().find($elemEditorLink).length == 0) {\n (0, _jquery.default)(this).parent().addClass($elemEditorHighlightLast);\n }\n });\n /* Editor Iframe */\n\n $elemEditor.each(function () {\n (0, _jquery.default)(this).find('iframe').wrap($elemEditorIframe);\n });\n }\n};\nvar _default = componentEditor;\nexports.default = _default;\n\n},{\"jquery\":44}],13:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentEventInfo = {\n elemEventLink: '.c-event-info__link',\n elemEventWrapper: '.c-event-info__events .c-event-info__wrapper',\n elemServicesInstructions: '.c-event-info__instructions',\n init: function init() {\n var $elemEventLink = (0, _jquery.default)(this.elemEventLink);\n var $elemEventExpanded = 'c-event-info__secondary--expanded';\n var $elemEventWrapper = (0, _jquery.default)(this.elemEventWrapper);\n var $elemServicesInstructions = (0, _jquery.default)(this.elemServicesInstructions);\n $elemEventLink.on('click', function (e) {\n e.preventDefault();\n /* Expand Instruction */\n\n (0, _jquery.default)(this).parent().parent().parent().parent().toggleClass($elemEventExpanded);\n (0, _jquery.default)($elemEventWrapper).slideToggle();\n /* WAI-ARIA */\n\n if ((0, _jquery.default)(this).parent().parent().parent().siblings($elemServicesInstructions).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).parent().parent().parent().siblings($elemServicesInstructions).attr('aria-hidden', false);\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).parent().parent().parent().siblings($elemServicesInstructions).attr('aria-hidden', true);\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n }\n};\nvar _default = componentEventInfo;\nexports.default = _default;\n\n},{\"jquery\":44}],14:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentEventGroup = {\n archiveContainer: '#archiveContainer',\n elemEventPanel: '.c-events__section--panel',\n elemEventButton: '.c-events__button',\n elemEventGroup: '.c-events__group',\n elemList: '.c-events__group',\n init: function init() {\n var $archiveContainer = (0, _jquery.default)(this.archiveContainer);\n var $elemEventGroup = (0, _jquery.default)(this.elemEventGroup);\n var $elemEventButton = (0, _jquery.default)(this.elemEventButton);\n var $elemList = (0, _jquery.default)(this.elemList);\n var $elemButtonExpanded = 'c-events__button--expanded';\n $archiveContainer.on('click', this.elemEventPanel, function () {\n (0, _jquery.default)(this).children().children().children($elemEventButton).toggleClass($elemButtonExpanded);\n (0, _jquery.default)(this).siblings($elemEventGroup).slideToggle('fast');\n\n if ((0, _jquery.default)(this).next($elemList).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).next($elemList).attr('aria-hidden', false);\n (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).next($elemList).attr('aria-hidden', true);\n (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n }\n};\nvar _default = componentEventGroup;\nexports.default = _default;\n\n},{\"jquery\":44}],15:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentFAQ = {\n elemServicesLink: '.c-faq__item--question .c-faq__link',\n elemServicesQuestion: '.c-faq__question',\n elemSelector: '.c-faq',\n elemListItem: '.c-faq__item',\n elemExtend: '.c-faq__extend',\n elemServicesButton: '.c-faq__button',\n init: function init() {\n var $elemServicesLink = (0, _jquery.default)(this.elemServicesLink);\n var $elemListExpanded = 'c-faq__item--expanded';\n var $elemListVisible = 'c-faq__item--visible';\n var $elemServicesQuestion = (0, _jquery.default)(this.elemServicesQuestion);\n var $elem = (0, _jquery.default)(this.elemSelector);\n var $elemListItem = (0, _jquery.default)(this.elemListItem);\n var $elemListItemHidden = '.c-faq__item--hidden';\n var $elemExtend = (0, _jquery.default)(this.elemExtend);\n var $elemServicesButton = (0, _jquery.default)(this.elemServicesButton);\n $elemServicesLink.on('click', function (e) {\n e.preventDefault();\n /* Expand Question */\n\n (0, _jquery.default)(this).parent().parent().parent().toggleClass($elemListExpanded);\n (0, _jquery.default)(this).parent().parent().siblings().slideToggle();\n /* WAI-ARIA */\n\n if ((0, _jquery.default)(this).parent().parent().siblings($elemServicesQuestion).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).parent().parent().siblings($elemServicesQuestion).attr('aria-hidden', false);\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).parent().parent().siblings($elemServicesQuestion).attr('aria-hidden', true);\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n /* Show List Items*/\n\n $elem.each(function () {\n (0, _jquery.default)(this).find($elemServicesButton).on('click', function (e) {\n e.preventDefault();\n var elemParentSelector = (0, _jquery.default)(this).closest($elem);\n (0, _jquery.default)($elemListItem).addClass($elemListVisible);\n (0, _jquery.default)(elemParentSelector).find($elemExtend).hide();\n (0, _jquery.default)($elemListItemHidden).first().attr('tabindex', -1);\n (0, _jquery.default)($elemListItemHidden).first().trigger('focus');\n });\n });\n }\n};\nvar _default = componentFAQ;\nexports.default = _default;\n\n},{\"jquery\":44}],16:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentFeedback = {\n elemButton: '.c-feedback .c-button--small',\n elemPositive: '.c-feedback .js-button-pos',\n elemNegative: '.c-feedback .js-button-neg',\n elemMessage: '.c-feedback__message',\n elemForm: '.c-feedback__form',\n elemTextArea: '.c-feedback__textarea',\n elemSubmit: '.c-feedback__submit .c-button',\n elemClose: '.c-feedback__close',\n init: function init() {\n var $elemButton = (0, _jquery.default)(this.elemButton);\n var $elemPositive = (0, _jquery.default)(this.elemPositive);\n var $elemNegative = (0, _jquery.default)(this.elemNegative);\n var $elemMessage = (0, _jquery.default)(this.elemMessage);\n var $elemForm = (0, _jquery.default)(this.elemForm);\n var $elemTextArea = (0, _jquery.default)(this.elemTextArea);\n var $elemSubmit = (0, _jquery.default)(this.elemSubmit);\n var $elemClose = (0, _jquery.default)(this.elemClose);\n $elemPositive.on('click', function () {\n $elemMessage.addClass('c-feedback__message--visible');\n $elemButton.attr('disabled', 'true');\n\n if ($elemMessage.attr('aria-hidden') === 'true') {\n $elemMessage.attr('aria-hidden', false);\n return $elemPositive.attr('aria-expanded', true);\n } else {\n $elemMessage.attr('aria-hidden', true);\n return $elemPositive.attr('aria-expanded', false);\n }\n });\n $elemNegative.on('click', function () {\n $elemForm.addClass('c-feedback__form--visible');\n $elemButton.attr('disabled', 'true');\n\n if ($elemForm.attr('aria-hidden') === 'true') {\n $elemForm.attr('aria-hidden', false);\n return $elemNegative.attr('aria-expanded', true);\n } else {\n $elemForm.attr('aria-hidden', true);\n return $elemNegative.attr('aria-expanded', false);\n }\n });\n $elemClose.on('click', function () {\n $elemMessage.removeClass('c-feedback__message--visible');\n $elemForm.removeClass('c-feedback__form--visible');\n\n if ($elemMessage.attr('aria-hidden') === 'true') {\n $elemMessage.attr('aria-hidden', false);\n } else if ($elemMessage.attr('aria-hidden') === 'false') {\n $elemMessage.attr('aria-hidden', true);\n }\n\n if ($elemForm.attr('aria-hidden') === 'true') {\n $elemForm.attr('aria-hidden', false);\n } else {\n $elemForm.attr('aria-hidden', true);\n }\n });\n $elemSubmit.on('click', function (e) {\n // Should be if form is validating correctly\n e.preventDefault();\n ClearPreviousValidation();\n\n _jquery.default.ajax({\n type: 'POST',\n url: $elemForm.attr('action'),\n data: $elemForm.serialize(),\n success: function success() {\n $elemMessage.removeClass('c-feedback__message--visible');\n $elemForm.removeClass('c-feedback__form--visible');\n },\n error: function error(xhr) {\n if (xhr.status == 400 && xhr.responseJSON.ValidationErrors) {\n //validation failed\n $elemTextArea.after('' + xhr.responseJSON.Message + '');\n }\n\n if (xhr.status == 500) {\n //form threw errors\n $elemTextArea.after('' + xhr.responseJSON.Message + '');\n }\n }\n });\n });\n\n function ClearPreviousValidation() {\n if ((0, _jquery.default)('.c-feedback__error').length > 0) {\n (0, _jquery.default)('.c-feedback__error').remove();\n }\n }\n }\n};\nvar _default = componentFeedback;\nexports.default = _default;\n\n},{\"jquery\":44}],17:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nvar _objectFitImages = _interopRequireDefault(require(\"object-fit-images\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentHero = {\n elemHeroItem: '.c-hero--login .c-hero__item',\n init: function init() {\n var $elemHeroItem = (0, _jquery.default)(this.elemHeroItem);\n var maxWidth = 0;\n /* Hero Login Buttons - Equal Width */\n\n $elemHeroItem.each(function () {\n if ((0, _jquery.default)(this).innerWidth() > maxWidth) {\n maxWidth = (0, _jquery.default)(this).innerWidth();\n }\n });\n\n var elemHeroWidth = function elemHeroWidth() {\n if ((0, _jquery.default)(window).width() > 639) {\n $elemHeroItem.innerWidth(maxWidth);\n } else {\n $elemHeroItem.css('width', 'auto');\n }\n };\n\n (0, _jquery.default)(window).resize(function () {\n elemHeroWidth();\n });\n elemHeroWidth();\n (0, _objectFitImages.default)();\n }\n};\nvar _default = componentHero;\nexports.default = _default;\n\n},{\"jquery\":44,\"object-fit-images\":45}],18:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentIconList = {\n elemFiletype: '.c-icon-list-item__filetype',\n init: function init() {\n var $elemFiletype = (0, _jquery.default)(this.elemFiletype);\n var $elemFiletypePDF = 'c-icon-list-item__filetype--pdf';\n var $elemFiletypeDoc = 'c-icon-list-item__filetype--doc';\n var $elemFiletypeTxt = 'c-icon-list-item__filetype--txt';\n var $elemFiletypePPT = 'c-icon-list-item__filetype--ppt';\n var $elemFiletypeJPG = 'c-icon-list-item__filetype--jpg';\n var $FilesListPDF = 'a[href$=\".pdf\"]';\n var $FilesListDoc = 'a[href$=\".doc\"], a[href$=\".docx\"]';\n var $FilesListTxt = 'a[href$=\".odt\"], a[href$=\".rtf\"], a[href$=\".txt\"]';\n var $FilesListPPT = 'a[href$=\".ppt\"], a[href$=\".pps\"], a[href$=\".pptx\"]';\n var $FilesListJPG = 'a[href$=\".ai\"], a[href$=\".eps\"], a[href$=\".ps\"], a[href$=\".svg\"], a[href$=\".gif\"], a[href$=\".jpg\"], a[href$=\".png\"], a[href$=\".psd\"], a[href$=\".tif\"], a[href$=\".tiff\"]';\n (0, _jquery.default)($FilesListPDF).parent().siblings().find($elemFiletype).addClass($elemFiletypePDF);\n (0, _jquery.default)($FilesListDoc).parent().siblings().find($elemFiletype).addClass($elemFiletypeDoc);\n (0, _jquery.default)($FilesListTxt).parent().siblings().find($elemFiletype).addClass($elemFiletypeTxt);\n (0, _jquery.default)($FilesListPPT).parent().siblings().find($elemFiletype).addClass($elemFiletypePPT);\n (0, _jquery.default)($FilesListJPG).parent().siblings().find($elemFiletype).addClass($elemFiletypeJPG);\n }\n};\nvar _default = componentIconList;\nexports.default = _default;\n\n},{\"jquery\":44}],19:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nvar _shave = _interopRequireDefault(require(\"shave\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nrequire('../../helpers/utils/FCInstagram');\n\nvar componentInstagramFeed = {\n captionSelector: '.c-instagram-feed__caption',\n shavedCaptionClassName: 'c-instagram-feed__shaved-caption',\n captionMaxHeight: 90,\n init: function init() {\n var $instafeed = (0, _jquery.default)('[data-instafeed]');\n $instafeed.each(function () {\n $instafeed = (0, _jquery.default)(this);\n var $accesstoken = $instafeed.data('accesstoken');\n var $numberofitems = $instafeed.data('numberofitems');\n var $autoplayvideos = $instafeed.data('autoplayvideos');\n console.log($accesstoken);\n _jquery.default.fn.FCInstagram.accessData = {\n accessToken: $accesstoken // Token\n\n };\n $instafeed.FCInstagram({\n max: $numberofitems,\n // A number between 1 and 25 of photos to show. Default: 9\n autoplay: $autoplayvideos,\n // Set autoplay video: true/false. Default: false\n complete: function complete() {\n // A callback function to execute after the display of the photos.\n componentInstagramFeed._shaveCaption();\n }\n });\n });\n },\n _shaveCaption: function _shaveCaption() {\n (0, _shave.default)(componentInstagramFeed.captionSelector, componentInstagramFeed.captionMaxHeight, {\n classname: componentInstagramFeed.shavedCaptionClassName\n });\n }\n};\nvar _default = componentInstagramFeed;\nexports.default = _default;\n\n},{\"../../helpers/utils/FCInstagram\":36,\"jquery\":44,\"shave\":46}],20:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentInstructions = {\n elemInstructionsLink: '.c-instructions__item--instructions .c-instructions__link',\n elemInstructionsArea: '.c-instructions__area',\n elemInstructions: '.c-instructions',\n elemListItem: '.c-instructions__item',\n elemInstructionsButton: '.c-instructions__button',\n elemInstructionsClose: '.c-instructions__close',\n init: function init() {\n var $elemInstructionsLink = (0, _jquery.default)(this.elemInstructionsLink);\n var $elemListExpanded = 'c-instructions__item--expanded';\n var $elemItemVisible = 'c-instructions__item--visible';\n var $elemButtonExpanded = 'c-instructions__button--expanded';\n var $elemInstructionsArea = (0, _jquery.default)(this.elemInstructionsArea);\n var $elemInstructions = (0, _jquery.default)(this.elemInstructions);\n var $elemListItem = (0, _jquery.default)(this.elemListItem);\n var $elemInstructionsButton = (0, _jquery.default)(this.elemInstructionsButton);\n var $elemInstructionsClose = (0, _jquery.default)(this.elemInstructionsClose);\n $elemInstructionsLink.on('click', function (e) {\n e.preventDefault();\n /* Expand Instruction */\n\n (0, _jquery.default)(this).parent().parent().parent().toggleClass($elemListExpanded);\n (0, _jquery.default)(this).parent().parent().siblings().slideToggle();\n /* WAI-ARIA */\n\n if ((0, _jquery.default)(this).parent().parent().siblings($elemInstructionsArea).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).parent().parent().siblings($elemInstructionsArea).attr('aria-hidden', false);\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).parent().parent().siblings($elemInstructionsArea).attr('aria-hidden', true);\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n $elemInstructionsClose.on('click', function (e) {\n e.preventDefault();\n (0, _jquery.default)(this).parent().parent().parent().parent().toggleClass($elemListExpanded);\n (0, _jquery.default)(this).parent().parent().parent().slideToggle();\n });\n /* Show More List Items */\n\n $elemInstructions.each(function () {\n (0, _jquery.default)(this).find($elemInstructionsButton).on('click', function (e) {\n e.preventDefault();\n (0, _jquery.default)(this).parent().siblings().find($elemListItem).toggleClass($elemItemVisible);\n (0, _jquery.default)(this).toggleClass($elemButtonExpanded);\n (0, _jquery.default)(this).children().text(function (i, v) {\n return v === 'Visa färre' ? 'Visa fler' : 'Visa färre';\n });\n\n if ((0, _jquery.default)(this).parent().siblings().children().hasClass($elemItemVisible)) {\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n });\n }\n};\nvar _default = componentInstructions;\nexports.default = _default;\n\n},{\"jquery\":44}],21:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar cIsyCaseMap = {\n isyCaseContainer: '.isyCase-container',\n isyCaseBtn: '.isyCase-button',\n isyCaseFullscreen: '.isyCase-fullscreen',\n isyCaseBtnClose: '.isyCase-button-close',\n isyCaseBtnHidden: '.isyCase-button__hidden',\n init: function init() {\n var $isyCaseBtn = (0, _jquery.default)(this.isyCaseBtn);\n var $isyCaseFullscreen = 'isyCase-fullscreen';\n var $isyCaseContainer = (0, _jquery.default)(this.isyCaseContainer);\n var $isyCaseBtnClose = (0, _jquery.default)(this.isyCaseBtnClose);\n var $isyCaseBtnHidden = 'isyCase-button__hidden';\n var $isyCaseContainerList = (0, _jquery.default)('.isyCase-container-list');\n var $isyCaseButtonCloseList = (0, _jquery.default)('.isyCase-button-close-list');\n var $isyCaseButtonList = (0, _jquery.default)('.isyCase-button-list');\n var $isyCaseFullscreenList = 'isyCase-fullscreen-list';\n var $isyCaseBtnListHidden = 'isyCase-button-list__hidden';\n $isyCaseBtn.on('click', function () {\n $isyCaseContainer.addClass($isyCaseFullscreen);\n $isyCaseBtn.addClass($isyCaseBtnHidden);\n $isyCaseButtonList.addClass($isyCaseBtnListHidden);\n });\n $isyCaseBtnClose.on('click', function () {\n $isyCaseContainer.removeClass($isyCaseFullscreen);\n $isyCaseBtn.removeClass($isyCaseBtnHidden);\n $isyCaseButtonList.removeClass($isyCaseBtnListHidden);\n });\n $isyCaseButtonList.on('click', function () {\n var $isyCaseListParent = (0, _jquery.default)(this).parent();\n $isyCaseListParent.addClass($isyCaseFullscreenList);\n $isyCaseButtonList.addClass($isyCaseBtnListHidden);\n $isyCaseBtn.addClass($isyCaseBtnHidden);\n });\n $isyCaseButtonCloseList.on('click', function () {\n $isyCaseContainerList.removeClass($isyCaseFullscreenList);\n $isyCaseButtonList.removeClass($isyCaseBtnListHidden);\n $isyCaseBtn.removeClass($isyCaseBtnHidden);\n });\n }\n};\nvar _default = cIsyCaseMap;\nexports.default = _default;\n\n},{\"jquery\":44}],22:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentNewsArchive = {\n elemViewMoreButton: '.viewMoreBtn',\n elemNewsList: '#newsList',\n elemLoadNewsCounter: '#loadNewsCounter',\n init: function init() {\n if (document.getElementById('newsList') === null) return;\n var $elemViewMoreButton = (0, _jquery.default)(this.elemViewMoreButton);\n var $elemNewsList = (0, _jquery.default)(this.elemNewsList);\n var $elemLoadNewsCounter = (0, _jquery.default)(this.elemLoadNewsCounter);\n var ajaxUrl = window.newsListConfig.url;\n var skipTake = window.newsListConfig.skipTake;\n\n function showMoreBtnVisible() {\n if ((0, _jquery.default)('ul#newsList li').length < window.newsArchivePagePartialConfig.maxCount) {\n $elemViewMoreButton.show();\n } else {\n $elemViewMoreButton.hide();\n }\n }\n\n $elemViewMoreButton.on('click', function () {\n var selectedAreas = [];\n (0, _jquery.default)('.c-select-bar__list input:checked').each(function () {\n selectedAreas.push(this.value);\n console.log(this.value);\n });\n var loadNewsCounter = $elemLoadNewsCounter;\n var counter = parseInt(loadNewsCounter.val());\n counter++;\n loadNewsCounter.val(counter);\n var filterParam = {\n 'areas': selectedAreas,\n 'loadNewsCounter': $elemLoadNewsCounter.val(),\n 'skipTake': skipTake\n };\n\n _jquery.default.ajax({\n type: 'POST',\n url: ajaxUrl,\n contentType: 'application/json; charset=utf-8',\n dataType: 'html',\n data: JSON.stringify(filterParam),\n success: function success(response) {\n var newsList = $elemNewsList;\n (0, _jquery.default)(newsList).append(response);\n showMoreBtnVisible();\n },\n failure: function failure() {}\n });\n });\n (0, _jquery.default)('.c-select-bar__reset').on('click', function () {\n (0, _jquery.default)('input[type=\\'checkbox\\']:checked').prop('checked', false);\n (0, _jquery.default)('button.c-select-bar__button span').text('Inga utvalda ämnen');\n GetFilteredEvents();\n });\n (0, _jquery.default)('.c-select-bar__input').on('change', function () {\n var numberOfCheckedSubjects = (0, _jquery.default)('input:checkbox:checked').length;\n\n if (numberOfCheckedSubjects == 0) {\n (0, _jquery.default)('button.c-select-bar__button span').text('Inga utvalda ämnen');\n } else {\n (0, _jquery.default)('button.c-select-bar__button span').text(numberOfCheckedSubjects + ' valda ämnen');\n }\n\n GetFilteredEvents();\n });\n\n function GetFilteredEvents() {\n var selectedAreas = [];\n (0, _jquery.default)('.c-select-bar__list input:checked').each(function () {\n selectedAreas.push(this.value);\n });\n var loadNewsCounter = '0';\n var filterParam = {\n 'areas': selectedAreas,\n 'loadNewsCounter': loadNewsCounter,\n 'skipTake': skipTake\n };\n\n _jquery.default.ajax({\n type: 'POST',\n url: ajaxUrl,\n contentType: 'application/json; charset=utf-8',\n dataType: 'html',\n data: JSON.stringify(filterParam),\n success: function success(response) {\n $elemNewsList.html(response);\n $elemLoadNewsCounter.val(0);\n showMoreBtnVisible();\n },\n failure: function failure() {}\n });\n }\n }\n};\nvar _default = componentNewsArchive;\nexports.default = _default;\n\n},{\"jquery\":44}],23:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentPermitFilter = {\n elemFilterExtend: '[data-permit-filter-extend]',\n elemFilter: '[data-permit-filters]',\n elemFilterWrapper: '[data-permit-filter-wrapper]',\n filterExpandClass: 'c-permit-filter__outer--expanded',\n extendExpandClass: 'c-permit-filter__extend--expanded',\n extendShowClass: 'c-permit-filter__extend--show',\n elemFilterButton: '[data-permit-filter-button]',\n filterButtonActiveClass: 'c-permit-filter__button--active',\n elemAppliedFiltersWrapper: '[data-permit-filter-applied-filter-wrapper]',\n elemRemoveFilters: '[data-permit-filter-remove-filters]',\n appliedFiltersShowClass: 'c-permit-filter__applied--show',\n elemClearFilters: '[data-permit-filter-clear]',\n elemViewMoreButton: '[data-view-more-button]',\n elemBuildingPermitList: '[data-permit-list]',\n elemBuildingPermitListItems: '.p-permit-listing__list .c-permit-card',\n elemBuildingPermitResultLabel: '.p-permit-listing__label',\n searchForm: '[data-permit-search-form]',\n filterList: [],\n init: function init() {\n this.__expandButton(this);\n\n this.__filterButtons(this);\n\n this.__toggleAppliedFilters(this);\n\n this.__viewMoreButton(this);\n\n this.__searchForm();\n },\n updatePermitList: function updatePermitList(filterParam) {\n var self = this;\n\n _jquery.default.ajax({\n type: 'POST',\n url: window.permitListPageConfig.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'html',\n data: JSON.stringify(filterParam),\n success: function success(response) {\n var buildPermitList = (0, _jquery.default)(componentPermitFilter.elemBuildingPermitList);\n buildPermitList.html(response);\n var itemsInList = (0, _jquery.default)(componentPermitFilter.elemBuildingPermitListItems).length;\n\n if (itemsInList < window.permitListPageConfig.totalResults) {\n (0, _jquery.default)(self.elemViewMoreButton).show();\n } else {\n (0, _jquery.default)(self.elemViewMoreButton).hide();\n }\n\n (0, _jquery.default)(componentPermitFilter.elemBuildingPermitResultLabel).html(window.permitListPageConfig.resultSummaryString.replace('X', itemsInList));\n }\n });\n },\n __encodeString: function __encodeString(s) {\n return encodeURI(s.replace(/&/g, '&').replace(//g, '>').replace(/'/g, ''').replace(/\"/g, '"'));\n },\n __searchForm: function __searchForm() {\n var self = this;\n (0, _jquery.default)('[data-permit-search-form]').on('submit', function (e) {\n e.preventDefault();\n\n var q = self.__encodeString((0, _jquery.default)(this).find('input[name=q]').val());\n\n self.updatePermitList({\n filterList: self.filterList,\n page: 1,\n q: q\n });\n window.history.pushState(null, null, '?q=' + q);\n });\n },\n __expandButton: function __expandButton(self) {\n if ((0, _jquery.default)(self.elemFilter).outerHeight() - 1 > (0, _jquery.default)(self.elemFilterWrapper).outerHeight()) {\n (0, _jquery.default)(self.elemFilterExtend).toggleClass(self.extendShowClass, true);\n }\n\n (0, _jquery.default)(self.elemFilterExtend).on('click', function () {\n (0, _jquery.default)(self.elemFilterWrapper).toggleClass(self.filterExpandClass, true);\n (0, _jquery.default)(self.elemFilterExtend).toggleClass(self.extendExpandClass, true);\n });\n },\n __filterButtons: function __filterButtons(self) {\n (0, _jquery.default)(self.elemFilterButton).on('click', function () {\n var id = (0, _jquery.default)(this).data('identifier');\n\n if ((0, _jquery.default)(this).hasClass(self.filterButtonActiveClass)) {\n self.__removeFilter(self, id, self.filterList);\n } else {\n self.__addFilter(self, id, self.filterList);\n }\n\n self.__toggleAppliedFilters(self);\n });\n (0, _jquery.default)(self.elemClearFilters).on('click', function () {\n self.__clearFilters(self, self.filterList);\n\n self.__toggleAppliedFilters(self);\n });\n },\n __toggleAppliedFilters: function __toggleAppliedFilters(self) {\n if ((0, _jquery.default)(self.elemRemoveFilters).find((0, _jquery.default)(self.elemFilterButton)).length > 0) {\n (0, _jquery.default)(self.elemAppliedFiltersWrapper).toggleClass(self.appliedFiltersShowClass, true);\n } else {\n (0, _jquery.default)(self.elemAppliedFiltersWrapper).toggleClass(self.appliedFiltersShowClass, false);\n }\n },\n __removeFilter: function __removeFilter(self, id) {\n var $filterButtons = (0, _jquery.default)('[data-identifier=\"' + id + '\"]');\n $filterButtons.toggleClass(self.filterButtonActiveClass, false);\n (0, _jquery.default)(self.elemRemoveFilters).find($filterButtons).remove();\n var filterIndex = self.filterList.indexOf(id);\n\n if (filterIndex > -1) {\n self.filterList.splice(filterIndex, 1);\n }\n\n var filterParam = {\n 'filterList': self.filterList,\n 'page': 1,\n 'q': window.permitListPageConfig.query\n };\n this.updatePermitList(filterParam);\n },\n __addFilter: function __addFilter(self, id) {\n var $filterButtons = (0, _jquery.default)('[data-identifier=\"' + id + '\"]');\n $filterButtons.toggleClass(self.filterButtonActiveClass, true);\n var $filterButtonClones = $filterButtons.clone(true);\n (0, _jquery.default)(self.elemRemoveFilters).append($filterButtonClones);\n self.filterList.push(id);\n var filterParam = {\n 'filterList': self.filterList,\n 'page': 1,\n 'q': window.permitListPageConfig.query\n };\n this.updatePermitList(filterParam);\n },\n __clearFilters: function __clearFilters(self) {\n var $filterButtons = (0, _jquery.default)(self.elemFilterButton);\n $filterButtons.toggleClass(self.filterButtonActiveClass, false);\n (0, _jquery.default)(self.elemRemoveFilters).find($filterButtons).remove();\n self.filterList.splice(0, self.filterList.length);\n var filterParam = {\n 'filterList': self.filterList,\n 'page': 1,\n 'q': window.permitListPageConfig.query\n };\n this.updatePermitList(filterParam);\n },\n __viewMoreButton: function __viewMoreButton(self) {\n (0, _jquery.default)(self.elemViewMoreButton).on('click', function () {\n var page = window.permitListPageConfig.page + 1;\n var filterParam = {\n 'filterList': self.filterList,\n 'page': page,\n 'q': window.permitListPageConfig.query\n };\n\n _jquery.default.ajax({\n type: 'POST',\n url: window.permitListPageConfig.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'html',\n data: JSON.stringify(filterParam),\n success: function success(response) {\n var resultContainer = (0, _jquery.default)(componentPermitFilter.elemBuildingPermitList);\n resultContainer.append(response);\n var itemsInList = (0, _jquery.default)(componentPermitFilter.elemBuildingPermitListItems).length;\n\n if (itemsInList < window.permitListPageConfig.totalResults) {\n (0, _jquery.default)(self.elemViewMoreButton).show();\n } else {\n (0, _jquery.default)(self.elemViewMoreButton).hide();\n }\n\n (0, _jquery.default)(componentPermitFilter.elemBuildingPermitResultLabel).html(window.permitListPageConfig.resultSummaryString.replace('X', itemsInList));\n }\n });\n });\n }\n};\nvar _default = componentPermitFilter;\nexports.default = _default;\n\n},{\"jquery\":44}],24:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentProgressBar = {\n elem: '[data-progress-bar]',\n count: '[data-count]',\n total: '[data-total]',\n progress: '[data-progress]',\n init: function init() {\n var self = this;\n (0, _jquery.default)(self.elem).each(function () {\n var $countLabel = (0, _jquery.default)(this).find(self.count).text();\n var $totalLabel = (0, _jquery.default)(this).find(self.total).text();\n var $progress = (0, _jquery.default)(this).find(self.progress);\n var count = parseInt($countLabel);\n var total = parseInt($totalLabel);\n $progress.css('width', self._getPercent(count, total) + '%');\n });\n },\n _getPercent: function _getPercent(count, total) {\n var percent = 0;\n percent = count / total * 100;\n return percent;\n }\n};\nvar _default = componentProgressBar;\nexports.default = _default;\n\n},{\"jquery\":44}],25:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentSerachFilter = {\n elemSearchExpand: '.c-search-filter__button--expand',\n elemSearchFilter: '.c-search-filter__outer--filter',\n elemSearchOuter: '.c-search-filter__outer--first',\n elemSelectBar: '.c-search-filter .c-select-bar__select',\n elemSearchReset: '.c-search-filter__button--reset',\n elemSearchSelected: '.c-search-filter__link.c-search-filter__link--selected',\n init: function init() {\n var $elemSearchExpand = (0, _jquery.default)(this.elemSearchExpand);\n var $elemSearchFilter = (0, _jquery.default)(this.elemSearchFilter);\n var $elemSearchOuter = (0, _jquery.default)(this.elemSearchOuter);\n var $elemSelectBar = (0, _jquery.default)(this.elemSelectBar);\n var $elemSearchReset = (0, _jquery.default)(this.elemSearchReset);\n var $elemSearchSelected = (0, _jquery.default)(this.elemSearchSelected);\n var $elemSearchExpanded = 'c-search-filter__button--expanded';\n $elemSearchExpand.on('click', function (e) {\n e.preventDefault();\n (0, _jquery.default)($elemSearchFilter).slideToggle('fast');\n (0, _jquery.default)(this).toggleClass($elemSearchExpanded);\n /* WAI-ARIA */\n\n if ((0, _jquery.default)(this).closest($elemSearchOuter).siblings($elemSearchFilter).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).closest($elemSearchOuter).siblings($elemSearchFilter).attr('aria-hidden', false);\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).closest($elemSearchOuter).siblings($elemSearchFilter).attr('aria-hidden', true);\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n\n if ((0, _jquery.default)($elemSearchSelected).length > 0 || $elemSelectBar.val() !== '') {\n (0, _jquery.default)($elemSearchReset).show();\n }\n }\n};\nvar _default = componentSerachFilter;\nexports.default = _default;\n\n},{\"jquery\":44}],26:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentSearchForm = {\n elemSearchInput: '.has-autocomplete',\n elemSearchSuggestionContainer: 'div[class$=\"__autocomplete\"]',\n displayElement: function displayElement(element) {\n element.removeAttr('aria-hidden');\n element.show();\n },\n hideElement: function hideElement(element) {\n element.attr('aria-hidden', 'true');\n element.hide();\n },\n bindSearchInputKeyboardNavigation: function bindSearchInputKeyboardNavigation(element) {\n element.keydown(function (e) {\n var $siblingSuggestionContainer = (0, _jquery.default)(this).siblings(componentSearchForm.elemSearchSuggestionContainer);\n var keyCode = e.keyCode || e.which,\n downArrow = 40;\n\n if (keyCode == downArrow && $siblingSuggestionContainer.is(':visible')) {\n e.preventDefault();\n document.body.classList.add('using-keyboard');\n $siblingSuggestionContainer.find('ul li:first-child').focus();\n }\n });\n },\n bindAutoCompleteKeyboardNavigation: function bindAutoCompleteKeyboardNavigation(element) {\n element.keydown(function (e) {\n var $siblingSearchInput = (0, _jquery.default)(this).siblings(componentSearchForm.elemSearchInput);\n var keyCode = e.keyCode || e.which,\n enter = 13,\n esc = 27,\n upArrow = 38,\n downArrow = 40;\n\n if (keyCode == upArrow || keyCode == downArrow) {\n e.preventDefault();\n }\n\n switch (keyCode) {\n case enter:\n (0, _jquery.default)(document.activeElement).trigger('click');\n break;\n\n case upArrow:\n (0, _jquery.default)(document.activeElement).prev().focus();\n break;\n\n case downArrow:\n (0, _jquery.default)(document.activeElement).next().focus();\n break;\n\n case esc:\n componentSearchForm.hideElement((0, _jquery.default)(this));\n $siblingSearchInput.focus();\n break;\n }\n });\n },\n bindHideElementOnClickOutside: function bindHideElementOnClickOutside(element) {\n (0, _jquery.default)('body').on('click', function (event) {\n if (!element.is(event.target) && element.has(event.target).length === 0) {\n componentSearchForm.hideElement(element);\n }\n });\n },\n bindAutoCompleteAction: function bindAutoCompleteAction(suggestionsContainer, suggestionSelector) {\n suggestionsContainer.on('click', suggestionSelector, function () {\n componentSearchForm.hideElement(suggestionsContainer);\n var querySuggestion = (0, _jquery.default)(this).find('span').text();\n var $currentSearchInput = (0, _jquery.default)(this).parents('form').children(componentSearchForm.elemSearchInput);\n $currentSearchInput.val(querySuggestion);\n $currentSearchInput.parent('form').submit();\n });\n },\n init: function init() {\n var $elemSearchInput = (0, _jquery.default)(this.elemSearchInput);\n var $elemSearchSuggestionContainer = (0, _jquery.default)(this.elemSearchSuggestionContainer);\n var letterLimit = 2;\n var resultCount = 5;\n var queryUrl = '/find_v2/_autocomplete';\n var queryInProgress = false;\n var currentHits = '';\n $elemSearchInput.on('keyup', function () {\n var query = (0, _jquery.default)(this).val();\n var $currentSuggestionContainer = (0, _jquery.default)(this).siblings(componentSearchForm.elemSearchSuggestionContainer);\n\n if (query.length > letterLimit && !queryInProgress) {\n queryInProgress = true;\n\n _jquery.default.ajax({\n url: queryUrl,\n dataType: 'json',\n data: {\n prefix: query,\n size: resultCount\n },\n success: function success(data) {\n if (data.hits.length > 0 && currentHits !== data.hits) {\n var $currentSuggestionsList = $currentSuggestionContainer.find('ul'); // remove any old results\n\n $currentSuggestionsList.empty();\n\n _jquery.default.each(data.hits, function (index, value) {\n var elemSuggestionsListItem = document.createElement('li');\n elemSuggestionsListItem.setAttribute('role', 'option');\n elemSuggestionsListItem.setAttribute('tabindex', 0);\n var elemSuggestionSpan = document.createElement('span');\n elemSuggestionSpan.innerText = value.query;\n elemSuggestionsListItem.appendChild(elemSuggestionSpan);\n $currentSuggestionsList.append(elemSuggestionsListItem);\n });\n\n componentSearchForm.displayElement($currentSuggestionContainer);\n currentHits = data.hits;\n } else if (data.hits.length == 0) {\n componentSearchForm.hideElement($currentSuggestionContainer);\n }\n },\n complete: function complete() {\n queryInProgress = false;\n },\n error: function error() {\n queryInProgress = false;\n }\n });\n } else if (query.length < letterLimit) {\n componentSearchForm.hideElement($currentSuggestionContainer);\n }\n });\n componentSearchForm.bindAutoCompleteAction($elemSearchSuggestionContainer, 'li');\n componentSearchForm.bindHideElementOnClickOutside($elemSearchSuggestionContainer);\n componentSearchForm.bindSearchInputKeyboardNavigation($elemSearchInput);\n componentSearchForm.bindAutoCompleteKeyboardNavigation($elemSearchSuggestionContainer);\n }\n};\nvar _default = componentSearchForm;\nexports.default = _default;\n\n},{\"jquery\":44}],27:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar componentSelectBar = {\n archiveContainer: '#archiveContainer',\n elemSelectButton: '.c-select-bar__button',\n elemSelectList: '.c-select-bar__list',\n init: function init() {\n var $archiveContainer = (0, _jquery.default)(this.archiveContainer);\n var $elemSelectList = (0, _jquery.default)(this.elemSelectList);\n var $elemCategoriesExpanded = 'c-select-bar__categories--expanded';\n $archiveContainer.on('click', this.elemSelectButton, function (e) {\n e.preventDefault();\n e.stopPropagation();\n (0, _jquery.default)($elemSelectList).toggle();\n (0, _jquery.default)($elemSelectList).parent().toggleClass($elemCategoriesExpanded);\n\n if ((0, _jquery.default)(this).next($elemSelectList).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).next($elemSelectList).attr('aria-hidden', false);\n (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).next($elemSelectList).attr('aria-hidden', true);\n (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n (0, _jquery.default)('body').on('click', function (e) {\n if ($elemSelectList.is(':visible') && e.target !== $elemSelectList[0] && !$elemSelectList.has(e.target).length) {\n $elemSelectList.toggle();\n (0, _jquery.default)($elemSelectList).parent().toggleClass($elemCategoriesExpanded);\n }\n });\n }\n};\nvar _default = componentSelectBar;\nexports.default = _default;\n\n},{\"jquery\":44}],28:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar baseTypography = {\n init: function init() {\n if (!$('body').hasClass('edit-mode-active')) {\n document.body.addEventListener('mousedown', function () {\n document.body.classList.remove('using-keyboard');\n });\n document.body.addEventListener('keydown', function (e) {\n var $code = e.keyCode || e.which;\n\n if ($code == '9') {\n document.body.classList.add('using-keyboard');\n }\n });\n }\n }\n};\nvar _default = baseTypography;\nexports.default = _default;\n\n},{}],29:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalHeader = {\n elemHeaderSearchIcon: '.g-header__icon--search',\n elemHeaderMenuIcon: '.g-header__icon--menu',\n elemSearchMobile: '.g-search--mobile',\n elemNavMobile: '.g-navigation-mobile',\n init: function init() {\n var $elemHeaderSearchIcon = (0, _jquery.default)(this.elemHeaderSearchIcon);\n var $elemHeaderMenuIcon = (0, _jquery.default)(this.elemHeaderMenuIcon);\n var $elemSearchMobile = (0, _jquery.default)(this.elemSearchMobile);\n var $elemNavMobile = (0, _jquery.default)(this.elemNavMobile);\n var $elemIconExpanded = 'g-header__icon--expanded';\n $elemHeaderSearchIcon.on('click', function (e) {\n e.stopPropagation();\n (0, _jquery.default)($elemSearchMobile).toggle();\n (0, _jquery.default)($elemNavMobile).hide();\n (0, _jquery.default)($elemHeaderMenuIcon).removeClass($elemIconExpanded);\n (0, _jquery.default)(this).toggleClass($elemIconExpanded);\n\n if ($elemSearchMobile.attr('aria-hidden') === 'true') {\n $elemSearchMobile.attr('aria-hidden', false);\n return $elemHeaderSearchIcon.attr('aria-expanded', true);\n } else {\n $elemSearchMobile.attr('aria-hidden', true);\n return $elemHeaderSearchIcon.attr('aria-expanded', false);\n }\n }), $elemHeaderMenuIcon.on('click', function (e) {\n e.stopPropagation();\n (0, _jquery.default)($elemSearchMobile).hide();\n (0, _jquery.default)($elemNavMobile).toggle();\n (0, _jquery.default)($elemHeaderSearchIcon).removeClass($elemIconExpanded);\n (0, _jquery.default)(this).toggleClass($elemIconExpanded);\n\n if ($elemNavMobile.attr('aria-hidden') === 'true') {\n $elemNavMobile.attr('aria-hidden', false);\n return $elemHeaderMenuIcon.attr('aria-expanded', true);\n } else {\n $elemNavMobile.attr('aria-hidden', true);\n return $elemHeaderMenuIcon.attr('aria-expanded', false);\n }\n });\n (0, _jquery.default)(document).click(function (e) {\n if (!$elemNavMobile.is(e.target) && $elemNavMobile.has(e.target).length === 0) {\n $elemNavMobile.hide();\n (0, _jquery.default)($elemHeaderMenuIcon).removeClass($elemIconExpanded);\n }\n\n if (!$elemSearchMobile.is(e.target) && $elemSearchMobile.has(e.target).length === 0) {\n $elemSearchMobile.hide();\n (0, _jquery.default)($elemHeaderSearchIcon).removeClass($elemIconExpanded);\n }\n });\n }\n};\n\nfunction toggleOverlay() {\n var overlay = document.querySelector('.overlay');\n var mobileNav = document.querySelector('.g-navigation-mobile');\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\n if (mobileNav && getComputedStyle(mobileNav).display === 'block') {\n if (scrollTop <= 255) {\n overlay.style.top = '255px';\n } else {\n overlay.style.top = '0';\n }\n }\n}\n\nwindow.addEventListener('scroll', toggleOverlay);\nvar menuIcon = document.querySelector('.overlay');\nvar mobileNav = document.querySelector('.g-header__icon');\nnew MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (mutation.attributeName === 'aria-expanded') {\n var ariaExpanded = mutation.target.getAttribute('aria-expanded');\n menuIcon.style.display = ariaExpanded === 'true' ? 'block' : 'none';\n toggleOverlay();\n }\n });\n}).observe(mobileNav, {\n attributes: true\n});\nvar _default = globalHeader;\nexports.default = _default;\n\n},{\"jquery\":44}],30:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalNavMobile = {\n elemMobileExpand: '.g-navigation-mobile__button',\n elemMobileList: '.g-navigation-mobile__list',\n init: function init() {\n var $elemMobileExpand = (0, _jquery.default)(this.elemMobileExpand);\n var $elemMobileExpanded = 'g-navigation-mobile__button--collapsed';\n var $elemListExpanded = 'g-navigation-mobile__item--expanded';\n var $elemMobileList = (0, _jquery.default)(this.elemMobileList);\n $elemMobileExpand.on('click', function () {\n if ((0, _jquery.default)(this).next('ul').is(':visible')) {\n (0, _jquery.default)(this).addClass($elemMobileExpanded);\n } else {\n (0, _jquery.default)(this).removeClass($elemMobileExpanded);\n }\n\n (0, _jquery.default)(this).parent().toggleClass($elemListExpanded);\n (0, _jquery.default)(this).next('ul').slideToggle();\n\n if ((0, _jquery.default)(this).next($elemMobileList).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).next($elemMobileList).attr('aria-hidden', false);\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n } else {\n (0, _jquery.default)(this).next($elemMobileList).attr('aria-hidden', true);\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n }\n });\n }\n};\nvar _default = globalNavMobile;\nexports.default = _default;\n\n},{\"jquery\":44}],31:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalSidenav = {\n elemExpand: '.g-navigation-side__button',\n elemList: '.g-navigation-side__list',\n init: function init() {\n var $elemExpand = (0, _jquery.default)(this.elemExpand);\n var $elemList = (0, _jquery.default)(this.elemList);\n var $elemButtonExpanded = 'g-navigation-side__button--expanded';\n var $elemItemExpanded = 'g-navigation-side__item--expanded';\n $elemExpand.on('click', function (e) {\n e.preventDefault();\n e.stopPropagation();\n (0, _jquery.default)(this).next().slideToggle('fast');\n (0, _jquery.default)(this).parent().toggleClass($elemItemExpanded);\n (0, _jquery.default)(this).toggleClass($elemButtonExpanded);\n\n if ((0, _jquery.default)(this).next($elemList).attr('aria-hidden') === 'true') {\n (0, _jquery.default)(this).next($elemList).attr('aria-hidden', false);\n return (0, _jquery.default)(this).attr('aria-expanded', true);\n } else {\n (0, _jquery.default)(this).next($elemList).attr('aria-hidden', true);\n return (0, _jquery.default)(this).attr('aria-expanded', false);\n }\n });\n }\n};\nvar _default = globalSidenav;\nexports.default = _default;\n\n},{\"jquery\":44}],32:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalSearch = {\n elemSearch: '.g-search',\n elemSearchInput: '.g-search__input',\n elemSearchClear: '.g-search__clear',\n init: function init() {\n var $elemSearch = (0, _jquery.default)(this.elemSearch);\n var $elemSearchInput = (0, _jquery.default)(this.elemSearchInput);\n var $elemSearchClear = (0, _jquery.default)(this.elemSearchClear);\n $elemSearch.each(function () {\n if (!window.matchMedia('(max-width: 639px)').matches) {\n $elemSearchInput.on('input', function () {\n $elemSearchClear.toggle(!!this.value);\n });\n }\n\n if (window.matchMedia('(max-width: 639px)').matches) {\n $elemSearchInput.attr('placeholder', 'Sök');\n }\n\n $elemSearchClear.on('touchstart click', function (e) {\n e.preventDefault();\n $elemSearchInput.val('').trigger('input');\n });\n });\n }\n};\nvar _default = globalSearch;\nexports.default = _default;\n\n},{\"jquery\":44}],33:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _storage = _interopRequireDefault(require(\"../utils/storage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar controlPoints = {\n controlPointsKey: '',\n controlPlanKey: 'controlPlan',\n controlPoints: [],\n init: function init() {\n this._initControlPlanSelector();\n\n this.controlPointsKey = 'controlPoints-' + _storage.default.get(this.controlPlanKey);\n\n if (!window.controlPlanConfig) {\n return;\n }\n\n this.controlPoints = _storage.default.get(this.controlPointsKey);\n\n this._renderControlPoints();\n },\n _initControlPlanSelector: function _initControlPlanSelector() {\n var controlPlanSelector = $('[data-controlplan-selector]');\n\n if (controlPlanSelector.length) {\n var selectedControlPlan = _storage.default.get(this.controlPlanKey);\n\n var selectedControlPlanIsAvailable = controlPlanSelector.children('option[value=' + selectedControlPlan + ']').length;\n\n if (selectedControlPlan && selectedControlPlanIsAvailable) {\n controlPlanSelector.val(selectedControlPlan);\n } else {\n _storage.default.set(this.controlPlanKey, controlPlanSelector.val());\n }\n\n var self = this;\n $('[data-controlplan-selector]').on('change', function (e) {\n _storage.default.set(self.controlPlanKey, $(e.currentTarget).val());\n });\n }\n },\n _initStorage: function _initStorage() {\n _storage.default.set(this.controlPointsKey, window.controlPlanConfig.controlPoints);\n\n this.controlPoints = window.controlPlanConfig.controlPoints;\n },\n _initControlPointsEvents: function _initControlPointsEvents() {\n var controlPointsContainer = $('[data-control-points]');\n\n if (!controlPointsContainer.length) {\n return;\n }\n\n var actionButtons = controlPointsContainer.find('[data-form-action=button]');\n var removeButtons = controlPointsContainer.find('[data-control-point-remove]');\n var editButtons = controlPointsContainer.find('[data-control-point-edit]');\n actionButtons.off('click');\n removeButtons.off('click');\n editButtons.off('click');\n var self = this;\n actionButtons.on('click', function (e) {\n e.preventDefault();\n var form = $(e.currentTarget).closest('form');\n var identifier = form.data('edit-identifier');\n form.data('edit-identifier', null);\n var controlPointsIdentifier = $(e.currentTarget).closest('[data-controlpoints-identifier]').data('controlpoints-identifier');\n\n if (!controlPointsIdentifier) {\n return;\n }\n\n if (identifier) {\n var controlPoint = self._getControlPoint(identifier);\n\n Object.keys(controlPoint).forEach(function (key) {\n var elem = form.find('[data-reference=' + key + ']');\n\n if (elem.val()) {\n controlPoint[key] = elem.val();\n }\n });\n } else {\n for (var i = 0; i < self.controlPoints.length; i++) {\n var controlPointsItem = self.controlPoints[i];\n\n if (controlPointsItem.Identifier == controlPointsIdentifier) {\n controlPointsItem.ControlPoints.push({\n Identifier: window.controlPlanConfig.newIdentifier,\n Heading: form.find('[data-reference=Heading]').val(),\n Performer: form.find('[data-reference=Performer]').val(),\n Method: form.find('[data-reference=Method]').val(),\n ControlTarget: form.find('[data-reference=ControlTarget]').val(),\n Remark: form.find('[data-reference=Remark]').val(),\n Visible: true\n });\n break;\n }\n }\n }\n\n self._saveControlPoints();\n\n self._renderControlPoint(controlPointsIdentifier);\n });\n removeButtons.on('click', function (e) {\n var identifier = self._getControlPointIdentifierForContainedElement(e.currentTarget);\n\n if (!identifier) {\n return;\n }\n\n var controlPointsIdentifier = $(e.currentTarget).closest('[data-controlpoints-identifier]').data('controlpoints-identifier');\n\n if (!controlPointsIdentifier) {\n return;\n }\n\n var controlPoint = self._getControlPoint(identifier);\n\n if (controlPoint) {\n controlPoint.Visible = false;\n\n self._saveControlPoints();\n\n self._renderControlPoint(controlPointsIdentifier);\n }\n });\n editButtons.on('click', function (e) {\n var identifier = self._getControlPointIdentifierForContainedElement(e.currentTarget);\n\n if (!identifier) {\n return;\n }\n\n var controlPoint = self._getControlPoint(identifier);\n\n if (!controlPoint) {\n return;\n }\n\n var form = self._getControlPointForm(controlPoint);\n\n if (!form) {\n return;\n }\n\n Object.keys(controlPoint).forEach(function (key) {\n form.find('[data-reference=' + key + ']').val(self._decodeHtml(controlPoint[key]));\n });\n form.find('[data-form-action=button]').html(window.controlPlanConfig.saveControlPointText);\n form.data('edit-identifier', identifier);\n $([document.documentElement, document.body]).animate({\n scrollTop: form.offset().top\n }, 500);\n });\n },\n _getControlPoint: function _getControlPoint(identifier) {\n for (var i = 0; i < this.controlPoints.length; i++) {\n var controlPointsItem = this.controlPoints[i];\n\n for (var j = 0; j < controlPointsItem.ControlPoints.length; j++) {\n var controlPoint = controlPointsItem.ControlPoints[j];\n\n if (controlPoint.Identifier == identifier) {\n return controlPoint;\n }\n }\n }\n\n return null;\n },\n _renderControlPoint: function _renderControlPoint(identifier) {\n if (!identifier) {\n return;\n }\n\n var controlPointsContainer = $('[data-control-points]');\n\n if (!controlPointsContainer.length) {\n return;\n }\n\n var controlPointContainer = controlPointsContainer.find('[data-controlpoints-identifier=' + identifier + ']');\n\n if (!controlPointContainer.length) {\n return;\n }\n\n var controlPoints = this.controlPoints.filter(function (p) {\n return p.Identifier == identifier;\n });\n\n if (!controlPoints.length) {\n return;\n }\n\n var self = this;\n $.ajax({\n type: 'POST',\n url: window.controlPlanConfig.controlPointUrl,\n contentType: 'application/json',\n data: JSON.stringify({\n clientControlPoints: controlPoints[0]\n }),\n success: function success(data) {\n if (!data) {\n return;\n }\n\n controlPointContainer.replaceWith(data);\n\n self._initStorage();\n\n self._initControlPointsEvents();\n },\n error: function error() {\n controlPointContainer.html(window.controlPlanConfig.generalErrorText);\n }\n });\n },\n _renderControlPoints: function _renderControlPoints() {\n var controlPointsContainer = $('[data-control-points]');\n\n if (!controlPointsContainer.length) {\n return;\n }\n\n var self = this;\n $.ajax({\n type: 'POST',\n url: window.controlPlanConfig.controlPointsUrl,\n contentType: 'application/json',\n data: JSON.stringify({\n clientControlPoints: this.controlPoints,\n selectedPlan: _storage.default.get(this.controlPlanKey)\n }),\n success: function success(data) {\n if (!data) {\n return;\n }\n\n controlPointsContainer.html(data);\n\n self._initStorage();\n\n self._initControlPointsEvents();\n },\n error: function error() {\n controlPointsContainer.html(window.controlPlanConfig.generalErrorText);\n }\n });\n },\n _getControlPointIdentifierForContainedElement: function _getControlPointIdentifierForContainedElement(element) {\n var controlPoint = this._getControlPointForContainedElement(element);\n\n if (controlPoint) {\n return controlPoint.data('control-point');\n }\n\n return null;\n },\n _getControlPointForContainedElement: function _getControlPointForContainedElement(element) {\n return $(element).closest('[data-control-point]');\n },\n _getControlPointForm: function _getControlPointForm(controlPoint) {\n return $('[data-control-point=' + controlPoint.Identifier + ']').parent().children('form');\n },\n _saveControlPoints: function _saveControlPoints() {\n _storage.default.set(this.controlPointsKey, this.controlPoints);\n },\n _decodeHtml: function _decodeHtml(html) {\n var txt = document.createElement('textarea');\n txt.innerHTML = html;\n return txt.value;\n }\n};\nvar _default = controlPoints;\nexports.default = _default;\n\n},{\"../utils/storage\":39}],34:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _storage = _interopRequireDefault(require(\"../utils/storage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar entrepreneurs = {\n entrepreneursKey: 'entrepreneurs',\n entrepreneurs: [],\n init: function init() {\n if (!window.controlPlanConfig) {\n return;\n }\n\n this.entrepreneurs = _storage.default.get(this.entrepreneursKey);\n\n this._renderEntrepreneurs();\n },\n _initEntrepreneursEvents: function _initEntrepreneursEvents() {\n var entrepreneursContainer = $('[data-entrepreneurs]');\n\n if (!entrepreneursContainer) {\n return;\n }\n\n var self = this;\n entrepreneursContainer.find('[data-form-action=button]').on('click', function (e) {\n e.preventDefault();\n var form = $(e.currentTarget).closest('form');\n var identifier = form.data('edit-identifier');\n form.data('edit-identifier', null);\n\n if (identifier) {\n var entrepreneur = self._getEntrepreneur(identifier);\n\n Object.keys(entrepreneur).forEach(function (key) {\n var elem = form.find('[data-reference=' + key + ']');\n\n if (elem.length) {\n entrepreneur[key] = elem.val();\n }\n });\n } else {\n self.entrepreneurs.push({\n Identifier: window.controlPlanConfig.newEntrepreneurIdentifier,\n Name: form.find('[data-reference=Name]').val(),\n Ssn: form.find('[data-reference=Ssn]').val(),\n Role: form.find('[data-reference=Role]').val(),\n SupervisorName: form.find('[data-reference=SupervisorName]').val(),\n Phone: form.find('[data-reference=Phone]').val(),\n Visible: true\n });\n }\n\n _storage.default.set(self.entrepreneursKey, self.entrepreneurs);\n\n self._renderEntrepreneurs();\n });\n entrepreneursContainer.find('[data-entrepreneur-remove]').on('click', function (e) {\n var identifier = $(e.currentTarget).closest('div[data-entrepreneur]').data('entrepreneur');\n\n if (!identifier) {\n return;\n }\n\n var entrepreneur = self._getEntrepreneur(identifier);\n\n if (entrepreneur) {\n self.entrepreneurs = self.entrepreneurs.filter(function (entrepreneur) {\n return entrepreneur.Identifier != identifier;\n });\n\n _storage.default.set(self.entrepreneursKey, self.entrepreneurs);\n\n self._renderEntrepreneurs();\n }\n });\n entrepreneursContainer.find('[data-entrepreneur-edit]').on('click', function (e) {\n var identifier = $(e.currentTarget).closest('div[data-entrepreneur]').data('entrepreneur');\n\n if (!identifier) {\n return;\n }\n\n var entrepreneur = self._getEntrepreneur(identifier);\n\n if (!entrepreneur) {\n return;\n }\n\n var form = $('[data-entrepreneur=' + entrepreneur.Identifier + ']').siblings('form');\n\n if (!form.length) {\n return;\n }\n\n Object.keys(entrepreneur).forEach(function (key) {\n form.find('[data-reference=' + key + ']').val(self._decodeHtml(entrepreneur[key]));\n });\n form.find('[data-form-action=button]').html(window.controlPlanConfig.saveEntrepreneurText);\n form.data('edit-identifier', identifier);\n });\n },\n _getEntrepreneur: function _getEntrepreneur(identifier) {\n for (var i = 0; i < this.entrepreneurs.length; i++) {\n var entrepreneur = this.entrepreneurs[i];\n\n if (entrepreneur.Identifier == identifier) {\n return entrepreneur;\n }\n }\n\n return null;\n },\n _renderEntrepreneurs: function _renderEntrepreneurs() {\n var entrepreneursContainer = $('[data-entrepreneurs]');\n\n if (!entrepreneursContainer.length) {\n return;\n }\n\n var self = this;\n $.ajax({\n type: 'POST',\n url: window.controlPlanConfig.entrepreneursUrl,\n contentType: 'application/json',\n data: JSON.stringify({\n clientEntrepreneurs: this.entrepreneurs\n }),\n success: function success(data) {\n if (!data) {\n return;\n }\n\n entrepreneursContainer.html(data);\n\n _storage.default.set(self.entrepreneursKey, window.controlPlanConfig.entrepreneurs);\n\n self.entrepreneurs = window.controlPlanConfig.entrepreneurs;\n\n self._initEntrepreneursEvents();\n },\n error: function error() {\n entrepreneursContainer.html(window.controlPlanConfig.generalErrorText);\n }\n });\n },\n _decodeHtml: function _decodeHtml(html) {\n var txt = document.createElement('textarea');\n txt.innerHTML = html;\n return txt.value;\n }\n};\nvar _default = entrepreneurs;\nexports.default = _default;\n\n},{\"../utils/storage\":39}],35:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _storage = _interopRequireDefault(require(\"../utils/storage\"));\n\nvar _dynamicFormStorage = _interopRequireDefault(require(\"../utils/dynamic-form-storage\"));\n\nvar _controlpoints = _interopRequireDefault(require(\"./controlpoints\"));\n\nvar _entrepreneurs = _interopRequireDefault(require(\"./entrepreneurs\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar review = {\n init: function init() {\n var reviewContainers = $(document).find('div[data-review]');\n\n if (!reviewContainers.length) {\n return;\n }\n\n var self = this;\n reviewContainers.each(function (_, container) {\n var type = $(container).data('review');\n\n self._renderReview($(container), type);\n });\n },\n _renderReview: function _renderReview(container, type) {\n var controlPointsItems = _storage.default.get(_controlpoints.default.controlPointsKey);\n\n var controlPlanKey = _storage.default.get(_controlpoints.default.controlPlanKey);\n\n var entrepreneursItems = _storage.default.get(_entrepreneurs.default.entrepreneursKey);\n\n var formValues = _storage.default.get(_dynamicFormStorage.default.dynamicFormKey);\n\n $.ajax({\n type: 'POST',\n url: window.controlPlanConfig.reviewUrl,\n contentType: 'application/json',\n data: JSON.stringify({\n controlPoints: controlPointsItems,\n selectedPlan: controlPlanKey,\n formValues: formValues,\n entrepreneurs: entrepreneursItems,\n print: type == 'print'\n }),\n success: function success(data) {\n if (!data) {\n return;\n }\n\n container.html(data);\n },\n error: function error() {\n container.html(window.controlPlanConfig.generalErrorText);\n }\n });\n }\n};\nvar _default = review;\nexports.default = _default;\n\n},{\"../utils/dynamic-form-storage\":37,\"../utils/storage\":39,\"./controlpoints\":33,\"./entrepreneurs\":34}],36:[function(require,module,exports){\n\"use strict\";\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*!\r\n * FC Instagram - Development FCV Team\r\n * Website: https://foodconnection.vn\r\n * Since: 2019-11\r\n * Version: v2.0.0\r\n * Document Instagram Basic Display API: https://developers.facebook.com/docs/instagram-basic-display-api\r\n */\nvar FCInstagram = window.FCInstagram || {};\nFCInstagram.name = 'FC Instagram';\nFCInstagram.version = '2.0.0'; // Info\n\nconsole.info('%c ' + FCInstagram.name + ' %c v' + FCInstagram.version + ' %c', 'margin-left: 5px; padding: 1px; color: #FEFEFE; font-size: 12px; line-height: 15px; background: #F79433; border-radius: 3px 0 0 3px;', 'padding: 1px; color: #FEFEFE; font-size: 12px; line-height: 15px; background: #FF5722; border-radius: 0 3px 3px 0;', 'background: transparent;'); // Utility for older browsers\n\nif (typeof Object.create !== 'function') {\n Object.create = function (obj) {\n function F() {}\n\n F.prototype = obj;\n return new F();\n };\n}\n\n(function (window, document, undefined) {\n var Instagram = {\n API_URL: 'https://graph.instagram.com/me/media?fields=',\n API_FIELDS: 'caption,media_url,media_type,permalink,timestamp,username',\n\n /**\r\n * Initializes the plugin.\r\n * @param {object} options\r\n * @param {jQuery Object} elem\r\n */\n initialize: function initialize(options, elem) {\n this.elem = elem;\n this.$elem = (0, _jquery.default)(elem);\n this.accessToken = _jquery.default.fn.FCInstagram.accessData.accessToken, this.options = _jquery.default.extend({}, _jquery.default.fn.FCInstagram.options, options);\n this.messages = {\n defaultImageAltText: 'Instagram-bild',\n notFound: 'This user account is private or doesn\\'t have any photos.'\n };\n this.getPhotos();\n },\n\n /**\r\n * Calls the fetch function and work with the response.\r\n */\n getPhotos: function getPhotos() {\n var self = this; // messages = null;\n\n self.fetch().done(function (results) {\n if (results.data) {\n self.displayPhotos(results);\n } else if (results.error.message) {\n _jquery.default.error('FCInstagram.js - Error: ' + results.error.message);\n } else {\n _jquery.default.error('FCInstagram.js - Error: user does not have photos.');\n }\n });\n },\n\n /**\r\n * Makes the ajax call and returns the result.\r\n */\n fetch: function fetch() {\n var getUrl = this.API_URL + this.API_FIELDS + '&access_token=' + this.accessToken;\n return _jquery.default.ajax({\n type: 'GET',\n dataType: 'jsonp',\n cache: false,\n url: getUrl\n });\n },\n getCaption: function getCaption(caption) {\n var hasCaption = caption !== null || caption !== undefined;\n return hasCaption ? (0, _jquery.default)('').text(caption).html() : this.messages.defaultImageAltText;\n },\n\n /**\r\n * Appends the markup to the DOM with the images.\r\n * @param {object} results\r\n */\n displayPhotos: function displayPhotos(results) {\n var $element,\n $source,\n $video,\n $link,\n $img,\n $caption,\n $mediaWrapper,\n imageGroup = [],\n imageCaption,\n linkTitle,\n autoplay,\n max;\n max = this.options.max >= results.data.length ? results.data.length : this.options.max;\n\n if (results.data === undefined || results.data.length === 0) {\n this.$elem.append(this.messages.notFound);\n return;\n }\n\n for (var i = 0; i < max; i++) {\n linkTitle = 'Gå till inlägg ' + (i + 1) + ' på instagram';\n\n if (results.data[i].media_type === 'IMAGE' || results.data[i].media_type === 'CAROUSEL_ALBUM') {\n imageCaption = this.getCaption(results.data[i].caption);\n $img = (0, _jquery.default)('', {\n src: results.data[i].media_url,\n class: 'c-instagram-feed__image',\n alt: imageCaption\n });\n $mediaWrapper = (0, _jquery.default)('
', {\n class: 'c-instagram-feed__media-wrapper'\n }).append($img);\n $caption = (0, _jquery.default)('

', {\n class: 'c-instagram-feed__caption'\n });\n $caption.text(imageCaption);\n $link = (0, _jquery.default)('', {\n href: results.data[i].permalink,\n target: '_blank',\n rel: 'nofollow',\n class: 'c-instagram-feed__link',\n title: linkTitle\n }).append($mediaWrapper);\n $element = (0, _jquery.default)('

', {\n class: 'c-instagram-feed__item'\n }).append($link).append($caption); // Add item\n\n imageGroup.push($element);\n } else if (results.data[i].media_type === 'VIDEO') {\n imageCaption = this.getCaption(results.data[i].caption);\n autoplay = this.options.autoplay == true ? 'autoplay muted loop playsinline' : '';\n $source = (0, _jquery.default)('', {\n src: results.data[i].media_url,\n type: 'video/mp4'\n });\n $video = (0, _jquery.default)('
', {\n class: 'c-instagram-feed__media-wrapper'\n }).append($video);\n $caption = (0, _jquery.default)('

', {\n class: 'c-instagram-feed__caption'\n });\n $caption.text(imageCaption);\n $link = (0, _jquery.default)('', {\n href: results.data[i].permalink,\n target: '_blank',\n rel: 'nofollow',\n class: 'c-instagram-feed__link',\n title: linkTitle\n }).append($mediaWrapper);\n $element = (0, _jquery.default)('

', {\n class: 'c-instagram-feed__item'\n }).append($link).append($caption); // Add item\n\n imageGroup.push($element);\n }\n }\n\n this.$elem.append(imageGroup);\n\n if (typeof this.options.complete === 'function') {\n this.options.complete.call(this);\n }\n }\n };\n /**\r\n * FCInstagram Plugin Definition.\r\n */\n\n _jquery.default.fn.FCInstagram = function (options) {\n if (_jquery.default.fn.FCInstagram.accessData.accessToken) {\n this.each(function () {\n var instagram = Object.create(Instagram);\n instagram.initialize(options, this);\n });\n } else {\n _jquery.default.error('You must define an accessToken on jQuery.FCInstagram');\n }\n }; // Plugin Default Options.\n\n\n _jquery.default.fn.FCInstagram.options = {\n complete: null,\n max: 9,\n autoplay: false\n }; // Instagram Access Data.\n\n _jquery.default.fn.FCInstagram.accessData = {\n accessToken: null\n };\n})(window, document);\n\n},{\"jquery\":44}],37:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _storage = _interopRequireDefault(require(\"./storage\"));\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dynamicFormStorage = {\n dynamicFormKey: 'dynamicForm',\n init: function init() {\n var self = this;\n this.data = _storage.default.get(this.dynamicFormKey);\n\n if (!this.data) {\n this.data = {};\n }\n\n (0, _jquery.default)('[data-identifier]').each(function (index, element) {\n self._restoreElementValue(element);\n\n (0, _jquery.default)(element).change(function (e) {\n self._saveElementValue(e);\n });\n });\n },\n removeStoreData: function removeStoreData() {\n var self = this;\n (0, _jquery.default)('[data-identifier]').each(function (index, element) {\n self._removeElementValue(element);\n });\n },\n _restoreElementValue: function _restoreElementValue(element) {\n var identifier = (0, _jquery.default)(element).data('identifier');\n\n if (!identifier || !this.data[identifier]) {\n return;\n }\n\n var storedValue = this.data[identifier];\n\n if ((0, _jquery.default)(element).attr('type') == 'checkbox') {\n (0, _jquery.default)(element).attr('checked', storedValue.value);\n return;\n }\n\n (0, _jquery.default)(element).val(storedValue.value);\n },\n _saveElementValue: function _saveElementValue(e) {\n var element = (0, _jquery.default)(e.currentTarget);\n var identifier = element.data('identifier');\n\n if (!identifier) {\n return;\n }\n\n var value = element.attr('type') == 'checkbox' ? element.is(':checked') : element.val();\n this.data[identifier] = {\n value: value\n };\n\n _storage.default.set(this.dynamicFormKey, this.data);\n },\n _removeElementValue: function _removeElementValue(element) {\n var identifier = (0, _jquery.default)(element).data('identifier');\n\n if (!identifier || !this.data[identifier]) {\n return;\n }\n\n this.data[identifier] = {\n value: ''\n };\n console.log('storage set', this.dynamicFormKey, this.data);\n\n _storage.default.set(this.dynamicFormKey, this.data);\n }\n};\nvar _default = dynamicFormStorage;\nexports.default = _default;\n\n},{\"./storage\":39,\"jquery\":44}],38:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nvar _dynamicFormStorage = _interopRequireDefault(require(\"./dynamic-form-storage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dynamicForm = {\n init: function init() {\n (0, _jquery.default)('[data-form-action=\"submit\"]').closest('form').on('submit', this.onFormSubmit);\n (0, _jquery.default)('form input, form textarea').on('input', function () {\n var $this = (0, _jquery.default)(this);\n\n if ($this.hasClass('validationerror')) {\n $this.removeClass('validationerror');\n }\n });\n (0, _jquery.default)('form select').on('change', function () {\n var $this = (0, _jquery.default)(this);\n\n if ($this.hasClass('validationerror')) {\n $this.removeClass('validationerror');\n }\n });\n },\n onFormSubmit: function onFormSubmit(e) {\n e.preventDefault();\n var form = (0, _jquery.default)(this);\n var formbody = form.find('[data-form-body]');\n var successContainer = form.find('[data-success-message]');\n var errorContainer = form.find('[data-error-message]');\n var successText = form.find('[data-success-text]');\n var errorHeading = form.find('[data-error-heading]');\n var errorText = form.find('[data-error-text]');\n var formData = new FormData(form.get(0));\n\n _jquery.default.ajax({\n method: 'POST',\n url: window.dynamicFormConfig.url,\n data: formData,\n processData: false,\n contentType: false,\n beforeSend: function beforeSend() {\n errorContainer.hide();\n successContainer.hide();\n },\n success: function success(data) {\n if (data.Error) {\n console.log('messages: ', data.Messages);\n\n if (data.Messages) {\n var errorhtml = '';\n\n for (var key in data.Messages) {\n var value = data.Messages[key];\n var element = form.find('#' + key);\n\n if (element) {\n element.addClass('validationerror');\n }\n\n errorhtml += '';\n }\n\n errorHeading.text(data.Heading);\n errorText.html(errorhtml);\n } else {\n errorText.html(data.Message);\n }\n\n errorContainer.show();\n errorContainer.focus();\n setTimeout(function () {\n errorContainer[0].scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }, 200);\n } else {\n successText.html(data.Message);\n\n _dynamicFormStorage.default.removeStoreData();\n\n formbody.hide();\n successContainer.show();\n successContainer.focus();\n setTimeout(function () {\n successContainer[0].scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }, 200);\n }\n },\n error: function error() {\n errorContainer.prepend('');\n errorText.html(window.dynamicFormConfig.genericError);\n errorContainer.show();\n }\n });\n }\n};\nvar _default = dynamicForm;\nexports.default = _default;\n\n},{\"./dynamic-form-storage\":37,\"jquery\":44}],39:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar storage = {\n dataKey: 'sollentuna-local-storage',\n init: function init() {\n this._readFromStorage();\n },\n set: function set(key, obj) {\n this.data[key] = JSON.stringify(obj);\n\n this._saveToStorage();\n },\n get: function get(key) {\n if (this.hasKey(key)) {\n return JSON.parse(this.data[key]);\n }\n\n return null;\n },\n hasKey: function hasKey(key) {\n if (!this.data[key]) {\n return false;\n }\n\n return true;\n },\n keys: function keys() {\n Object.keys(this.data);\n },\n _readFromStorage: function _readFromStorage() {\n var data = localStorage.getItem(this.dataKey);\n\n if (data) {\n this.data = JSON.parse(data);\n } else {\n this.data = {};\n }\n },\n _clearStorage: function _clearStorage() {\n localStorage.removeItem(this.dataKey);\n\n this._readFromStorage();\n },\n _saveToStorage: function _saveToStorage() {\n localStorage.setItem(this.dataKey, JSON.stringify(this.data));\n }\n};\nvar _default = storage;\nexports.default = _default;\n\n},{}],40:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar pageEvent = {\n SessionStorageURLParameters: 'CalendarURL',\n init: function init() {\n (0, _jquery.default)('.p-event .c-go-back').on('click', function (e) {\n if (sessionStorage.getItem('CalendarURL') != null) {\n e.preventDefault();\n window.location.href = sessionStorage.getItem(pageEvent.SessionStorageURLParameters);\n }\n });\n }\n};\nvar _default = pageEvent;\nexports.default = _default;\n\n},{\"jquery\":44}],41:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar pageJobs = {\n elemJobs: '.p-jobs',\n elemJobsList: '.c-jobs__content',\n elemJobsListItem: '.c-jobs__content tr',\n elemJobSortSelect: '#jobs-select-id',\n elemJobTitle: '.c-jobs__title span',\n elemJobPublishDate: '.c-jobs__published time',\n elemJobEndDate: '.c-jobs__end time',\n sortAsc: function sortAsc(valueSelector) {\n return function (a, b) {\n var aText = (0, _jquery.default)(valueSelector, a).text().trim(),\n bText = (0, _jquery.default)(valueSelector, b).text().trim();\n return aText < bText ? -1 : aText > bText ? 1 : 0;\n };\n },\n sortDesc: function sortDesc(valueSelector) {\n return function (a, b) {\n var aDate = (0, _jquery.default)(valueSelector, a).attr('datetime'),\n bDate = (0, _jquery.default)(valueSelector, b).attr('datetime');\n return new Date(bDate) - new Date(aDate);\n };\n },\n sortListAsc: function sortListAsc(listItems, valueSelector) {\n listItems.sort(this.sortAsc(valueSelector));\n listItems.appendTo(this.elemJobsList);\n },\n sortListDesc: function sortListDesc(listItems, valueSelector) {\n listItems.sort(this.sortDesc(valueSelector));\n listItems.appendTo(this.elemJobsList);\n },\n init: function init() {\n var $elemJobSortSelect = (0, _jquery.default)(this.elemJobSortSelect),\n $elemJobListItem = (0, _jquery.default)(this.elemJobsListItem);\n $elemJobSortSelect.on('change', function (e) {\n e.preventDefault();\n var currentSelection = (0, _jquery.default)(this).val();\n\n switch (currentSelection) {\n case 'title':\n pageJobs.sortListAsc($elemJobListItem, pageJobs.elemJobTitle);\n break;\n\n case 'publish':\n pageJobs.sortListDesc($elemJobListItem, pageJobs.elemJobPublishDate);\n break;\n\n case 'enddate':\n pageJobs.sortListAsc($elemJobListItem, pageJobs.elemJobEndDate);\n break;\n }\n });\n }\n};\nvar _default = pageJobs;\nexports.default = _default;\n\n},{\"jquery\":44}],42:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _jquery = _interopRequireDefault(require(\"jquery\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar pageSearch = {\n elemSearchResultList: '.c-icon-list--search-results .c-icon-list__list',\n elemSearchResultListItem: '.c-icon-list--search-results .c-icon-list-item',\n elemSearchPaginationButton: '.c-icon-list--search-results .c-icon-list__button.c-button--plus',\n elemSearchResultSummary: '.c-search-filter__outer .c-search-filter__total',\n elemSearchFilterSelection: '.p-search .c-select-bar__select',\n updateQueryStringParam: function updateQueryStringParam(key, value) {\n var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),\n urlQueryString = document.location.search,\n newParam = key + '=' + value,\n params = '?' + newParam;\n\n if (urlQueryString) {\n var keyRegex = new RegExp('([?&])' + key + '[^&]*');\n\n if (urlQueryString.match(keyRegex) !== null) {\n params = urlQueryString.replace(keyRegex, '$1' + newParam);\n } else {\n params = urlQueryString + '&' + newParam;\n }\n }\n\n return baseUrl + params;\n },\n init: function init() {\n var $elemSearchResultList = (0, _jquery.default)(this.elemSearchResultList);\n var $elemSearchPaginationButton = (0, _jquery.default)(this.elemSearchPaginationButton);\n var $elemSearchResultSummary = (0, _jquery.default)(this.elemSearchResultSummary);\n var $elemSearchFilterSelection = (0, _jquery.default)(this.elemSearchFilterSelection);\n var $currentPageNumber = 1;\n $elemSearchFilterSelection.on('change', function (e) {\n e.preventDefault();\n window.location.href = pageSearch.updateQueryStringParam('category', $elemSearchFilterSelection.val());\n });\n $elemSearchPaginationButton.on('click', function (e) {\n e.preventDefault();\n $currentPageNumber++;\n var ajaxUrl = window.location.href + '&page=' + $currentPageNumber;\n\n _jquery.default.get(ajaxUrl, function (data) {\n $elemSearchResultList.append(data);\n }).done(function () {\n // update result summary\n $elemSearchResultSummary.html(window.searchPageConfig.resultSummaryString.replace('X', (0, _jquery.default)(pageSearch.elemSearchResultListItem).length));\n\n if ((0, _jquery.default)(pageSearch.elemSearchResultListItem).length == window.searchPageConfig.totalResults) {\n $elemSearchPaginationButton.hide();\n }\n });\n });\n }\n};\nvar _default = pageSearch;\nexports.default = _default;\n\n},{\"jquery\":44}],43:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof2(module)) === 'object') module.exports = factory(require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"jquery\"], factory);else {\n var a = (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\n for (var i in a) {\n ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' ? exports : root)[i] = a[i];\n }\n }\n})(window, function (__WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && _typeof2(value) === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) {\n __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n }\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 0);\n /******/\n }(\n /************************************************************************/\n\n /******/\n {\n /***/\n \"./js/entries/foundation.js\":\n /*!**********************************!*\\\n !*** ./js/entries/foundation.js ***!\n \\**********************************/\n\n /*! exports provided: Foundation, CoreUtils, Box, onImagesLoaded, Keyboard, MediaQuery, Motion, Nest, Timer, Touch, Triggers, Abide, Accordion, AccordionMenu, Drilldown, Dropdown, DropdownMenu, Equalizer, Interchange, Magellan, OffCanvas, Orbit, ResponsiveMenu, ResponsiveToggle, Reveal, Slider, SmoothScroll, Sticky, Tabs, Toggler, Tooltip, ResponsiveAccordionTabs, default */\n\n /***/\n function jsEntriesFoundationJs(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default =\n /*#__PURE__*/\n __webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../foundation.core */\n \"./js/foundation.core.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ../foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n /* harmony reexport (module object) */\n\n\n __webpack_require__.d(__webpack_exports__, \"CoreUtils\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__;\n });\n /* harmony import */\n\n\n var _foundation_util_box__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ../foundation.util.box */\n \"./js/foundation.util.box.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Box\", function () {\n return _foundation_util_box__WEBPACK_IMPORTED_MODULE_3__[\"Box\"];\n });\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\n /*! ../foundation.util.imageLoader */\n \"./js/foundation.util.imageLoader.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function () {\n return _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__[\"onImagesLoaded\"];\n });\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\n /*! ../foundation.util.keyboard */\n \"./js/foundation.util.keyboard.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Keyboard\", function () {\n return _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_5__[\"Keyboard\"];\n });\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\n /*! ../foundation.util.mediaQuery */\n \"./js/foundation.util.mediaQuery.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function () {\n return _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_6__[\"MediaQuery\"];\n });\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\n /*! ../foundation.util.motion */\n \"./js/foundation.util.motion.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Motion\", function () {\n return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_7__[\"Motion\"];\n });\n /* harmony import */\n\n\n var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\n /*! ../foundation.util.nest */\n \"./js/foundation.util.nest.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Nest\", function () {\n return _foundation_util_nest__WEBPACK_IMPORTED_MODULE_8__[\"Nest\"];\n });\n /* harmony import */\n\n\n var _foundation_util_timer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\n /*! ../foundation.util.timer */\n \"./js/foundation.util.timer.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Timer\", function () {\n return _foundation_util_timer__WEBPACK_IMPORTED_MODULE_9__[\"Timer\"];\n });\n /* harmony import */\n\n\n var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\n /*! ../foundation.util.touch */\n \"./js/foundation.util.touch.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Touch\", function () {\n return _foundation_util_touch__WEBPACK_IMPORTED_MODULE_10__[\"Touch\"];\n });\n /* harmony import */\n\n\n var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\n /*! ../foundation.util.triggers */\n \"./js/foundation.util.triggers.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Triggers\", function () {\n return _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_11__[\"Triggers\"];\n });\n /* harmony import */\n\n\n var _foundation_abide__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\n /*! ../foundation.abide */\n \"./js/foundation.abide.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Abide\", function () {\n return _foundation_abide__WEBPACK_IMPORTED_MODULE_12__[\"Abide\"];\n });\n /* harmony import */\n\n\n var _foundation_accordion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\n /*! ../foundation.accordion */\n \"./js/foundation.accordion.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Accordion\", function () {\n return _foundation_accordion__WEBPACK_IMPORTED_MODULE_13__[\"Accordion\"];\n });\n /* harmony import */\n\n\n var _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(\n /*! ../foundation.accordionMenu */\n \"./js/foundation.accordionMenu.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"AccordionMenu\", function () {\n return _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_14__[\"AccordionMenu\"];\n });\n /* harmony import */\n\n\n var _foundation_drilldown__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(\n /*! ../foundation.drilldown */\n \"./js/foundation.drilldown.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Drilldown\", function () {\n return _foundation_drilldown__WEBPACK_IMPORTED_MODULE_15__[\"Drilldown\"];\n });\n /* harmony import */\n\n\n var _foundation_dropdown__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(\n /*! ../foundation.dropdown */\n \"./js/foundation.dropdown.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Dropdown\", function () {\n return _foundation_dropdown__WEBPACK_IMPORTED_MODULE_16__[\"Dropdown\"];\n });\n /* harmony import */\n\n\n var _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(\n /*! ../foundation.dropdownMenu */\n \"./js/foundation.dropdownMenu.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function () {\n return _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_17__[\"DropdownMenu\"];\n });\n /* harmony import */\n\n\n var _foundation_equalizer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(\n /*! ../foundation.equalizer */\n \"./js/foundation.equalizer.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Equalizer\", function () {\n return _foundation_equalizer__WEBPACK_IMPORTED_MODULE_18__[\"Equalizer\"];\n });\n /* harmony import */\n\n\n var _foundation_interchange__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(\n /*! ../foundation.interchange */\n \"./js/foundation.interchange.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Interchange\", function () {\n return _foundation_interchange__WEBPACK_IMPORTED_MODULE_19__[\"Interchange\"];\n });\n /* harmony import */\n\n\n var _foundation_magellan__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(\n /*! ../foundation.magellan */\n \"./js/foundation.magellan.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Magellan\", function () {\n return _foundation_magellan__WEBPACK_IMPORTED_MODULE_20__[\"Magellan\"];\n });\n /* harmony import */\n\n\n var _foundation_offcanvas__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(\n /*! ../foundation.offcanvas */\n \"./js/foundation.offcanvas.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"OffCanvas\", function () {\n return _foundation_offcanvas__WEBPACK_IMPORTED_MODULE_21__[\"OffCanvas\"];\n });\n /* harmony import */\n\n\n var _foundation_orbit__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(\n /*! ../foundation.orbit */\n \"./js/foundation.orbit.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Orbit\", function () {\n return _foundation_orbit__WEBPACK_IMPORTED_MODULE_22__[\"Orbit\"];\n });\n /* harmony import */\n\n\n var _foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(\n /*! ../foundation.responsiveMenu */\n \"./js/foundation.responsiveMenu.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"ResponsiveMenu\", function () {\n return _foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_23__[\"ResponsiveMenu\"];\n });\n /* harmony import */\n\n\n var _foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(\n /*! ../foundation.responsiveToggle */\n \"./js/foundation.responsiveToggle.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"ResponsiveToggle\", function () {\n return _foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_24__[\"ResponsiveToggle\"];\n });\n /* harmony import */\n\n\n var _foundation_reveal__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(\n /*! ../foundation.reveal */\n \"./js/foundation.reveal.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Reveal\", function () {\n return _foundation_reveal__WEBPACK_IMPORTED_MODULE_25__[\"Reveal\"];\n });\n /* harmony import */\n\n\n var _foundation_slider__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(\n /*! ../foundation.slider */\n \"./js/foundation.slider.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Slider\", function () {\n return _foundation_slider__WEBPACK_IMPORTED_MODULE_26__[\"Slider\"];\n });\n /* harmony import */\n\n\n var _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(\n /*! ../foundation.smoothScroll */\n \"./js/foundation.smoothScroll.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"SmoothScroll\", function () {\n return _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_27__[\"SmoothScroll\"];\n });\n /* harmony import */\n\n\n var _foundation_sticky__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(\n /*! ../foundation.sticky */\n \"./js/foundation.sticky.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Sticky\", function () {\n return _foundation_sticky__WEBPACK_IMPORTED_MODULE_28__[\"Sticky\"];\n });\n /* harmony import */\n\n\n var _foundation_tabs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(\n /*! ../foundation.tabs */\n \"./js/foundation.tabs.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Tabs\", function () {\n return _foundation_tabs__WEBPACK_IMPORTED_MODULE_29__[\"Tabs\"];\n });\n /* harmony import */\n\n\n var _foundation_toggler__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(\n /*! ../foundation.toggler */\n \"./js/foundation.toggler.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Toggler\", function () {\n return _foundation_toggler__WEBPACK_IMPORTED_MODULE_30__[\"Toggler\"];\n });\n /* harmony import */\n\n\n var _foundation_tooltip__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(\n /*! ../foundation.tooltip */\n \"./js/foundation.tooltip.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Tooltip\", function () {\n return _foundation_tooltip__WEBPACK_IMPORTED_MODULE_31__[\"Tooltip\"];\n });\n /* harmony import */\n\n\n var _foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(\n /*! ../foundation.responsiveAccordionTabs */\n \"./js/foundation.responsiveAccordionTabs.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"ResponsiveAccordionTabs\", function () {\n return _foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_32__[\"ResponsiveAccordionTabs\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].addToJquery(jquery__WEBPACK_IMPORTED_MODULE_0___default.a); // Add Foundation Utils to Foundation global namespace for backwards\n // compatibility.\n\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].rtl = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"rtl\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].GetYoDigits = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].transitionend = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"transitionend\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].RegExpEscape = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"RegExpEscape\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].onLoad = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"onLoad\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Box = _foundation_util_box__WEBPACK_IMPORTED_MODULE_3__[\"Box\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].onImagesLoaded = _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__[\"onImagesLoaded\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Keyboard = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_5__[\"Keyboard\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].MediaQuery = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_6__[\"MediaQuery\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Motion = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_7__[\"Motion\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Move = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_7__[\"Move\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Nest = _foundation_util_nest__WEBPACK_IMPORTED_MODULE_8__[\"Nest\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Timer = _foundation_util_timer__WEBPACK_IMPORTED_MODULE_9__[\"Timer\"]; // Touch and Triggers previously were almost purely sede effect driven,\n // so no need to add it to Foundation, just init them.\n\n _foundation_util_touch__WEBPACK_IMPORTED_MODULE_10__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_11__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a, _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"]);\n\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_6__[\"MediaQuery\"]._init();\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_abide__WEBPACK_IMPORTED_MODULE_12__[\"Abide\"], 'Abide');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_accordion__WEBPACK_IMPORTED_MODULE_13__[\"Accordion\"], 'Accordion');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_14__[\"AccordionMenu\"], 'AccordionMenu');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_drilldown__WEBPACK_IMPORTED_MODULE_15__[\"Drilldown\"], 'Drilldown');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_dropdown__WEBPACK_IMPORTED_MODULE_16__[\"Dropdown\"], 'Dropdown');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_17__[\"DropdownMenu\"], 'DropdownMenu');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_equalizer__WEBPACK_IMPORTED_MODULE_18__[\"Equalizer\"], 'Equalizer');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_interchange__WEBPACK_IMPORTED_MODULE_19__[\"Interchange\"], 'Interchange');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_magellan__WEBPACK_IMPORTED_MODULE_20__[\"Magellan\"], 'Magellan');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_21__[\"OffCanvas\"], 'OffCanvas');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_orbit__WEBPACK_IMPORTED_MODULE_22__[\"Orbit\"], 'Orbit');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_23__[\"ResponsiveMenu\"], 'ResponsiveMenu');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_24__[\"ResponsiveToggle\"], 'ResponsiveToggle');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_reveal__WEBPACK_IMPORTED_MODULE_25__[\"Reveal\"], 'Reveal');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_slider__WEBPACK_IMPORTED_MODULE_26__[\"Slider\"], 'Slider');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_27__[\"SmoothScroll\"], 'SmoothScroll');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_sticky__WEBPACK_IMPORTED_MODULE_28__[\"Sticky\"], 'Sticky');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_tabs__WEBPACK_IMPORTED_MODULE_29__[\"Tabs\"], 'Tabs');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_toggler__WEBPACK_IMPORTED_MODULE_30__[\"Toggler\"], 'Toggler');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_tooltip__WEBPACK_IMPORTED_MODULE_31__[\"Tooltip\"], 'Tooltip');\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_32__[\"ResponsiveAccordionTabs\"], 'ResponsiveAccordionTabs');\n /* harmony default export */\n\n\n __webpack_exports__[\"default\"] = _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"];\n /***/\n },\n\n /***/\n \"./js/foundation.abide.js\":\n /*!********************************!*\\\n !*** ./js/foundation.abide.js ***!\n \\********************************/\n\n /*! exports provided: Abide */\n\n /***/\n function jsFoundationAbideJs(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Abide\", function () {\n return Abide;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default =\n /*#__PURE__*/\n __webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.plugin */\n \"./js/foundation.core.plugin.js\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n /**\n * Abide module.\n * @module foundation.abide\n */\n\n\n var Abide =\n /*#__PURE__*/\n function (_Plugin) {\n _inherits(Abide, _Plugin);\n\n function Abide() {\n _classCallCheck(this, Abide);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Abide).apply(this, arguments));\n }\n\n _createClass(Abide, [{\n key: \"_setup\",\n\n /**\n * Creates a new instance of Abide.\n * @class\n * @name Abide\n * @fires Abide#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n value: function _setup(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(true, {}, Abide.defaults, this.$element.data(), options);\n this.className = 'Abide'; // ie9 back compat\n\n this._init();\n }\n /**\n * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n\n this.$inputs = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.merge( // Consider as input to validate:\n this.$element.find('input').not('[type=submit]'), // * all input fields expect submit\n this.$element.find('textarea, select') // * all textareas and select fields\n );\n var $globalErrors = this.$element.find('[data-abide-error]'); // Add a11y attributes to all fields\n\n if (this.options.a11yAttributes) {\n this.$inputs.each(function (i, input) {\n return _this2.addA11yAttributes(jquery__WEBPACK_IMPORTED_MODULE_0___default()(input));\n });\n $globalErrors.each(function (i, error) {\n return _this2.addGlobalErrorA11yAttributes(jquery__WEBPACK_IMPORTED_MODULE_0___default()(error));\n });\n }\n\n this._events();\n }\n /**\n * Initializes events for Abide.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n var _this3 = this;\n\n this.$element.off('.abide').on('reset.zf.abide', function () {\n _this3.resetForm();\n }).on('submit.zf.abide', function () {\n return _this3.validateForm();\n });\n\n if (this.options.validateOn === 'fieldChange') {\n this.$inputs.off('change.zf.abide').on('change.zf.abide', function (e) {\n _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n });\n }\n\n if (this.options.liveValidate) {\n this.$inputs.off('input.zf.abide').on('input.zf.abide', function (e) {\n _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n });\n }\n\n if (this.options.validateOnBlur) {\n this.$inputs.off('blur.zf.abide').on('blur.zf.abide', function (e) {\n _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n });\n }\n }\n /**\n * Calls necessary functions to update Abide upon DOM change\n * @private\n */\n\n }, {\n key: \"_reflow\",\n value: function _reflow() {\n this._init();\n }\n /**\n * Checks whether or not a form element has the required attribute and if it's checked or not\n * @param {Object} element - jQuery object to check for required attribute\n * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n */\n\n }, {\n key: \"requiredCheck\",\n value: function requiredCheck($el) {\n if (!$el.attr('required')) return true;\n var isGood = true;\n\n switch ($el[0].type) {\n case 'checkbox':\n isGood = $el[0].checked;\n break;\n\n case 'select':\n case 'select-one':\n case 'select-multiple':\n var opt = $el.find('option:selected');\n if (!opt.length || !opt.val()) isGood = false;\n break;\n\n default:\n if (!$el.val() || !$el.val().length) isGood = false;\n }\n\n return isGood;\n }\n /**\n * Get:\n * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n * 1. The element's direct sibling('s).\n * 2. The element's parent's children.\n * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n *\n * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n *\n * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n * @returns {Object} jQuery object with the selector.\n */\n\n }, {\n key: \"findFormError\",\n value: function findFormError($el) {\n var id = $el[0].id;\n var $error = $el.siblings(this.options.formErrorSelector);\n\n if (!$error.length) {\n $error = $el.parent().find(this.options.formErrorSelector);\n }\n\n if (id) {\n $error = $error.add(this.$element.find(\"[data-form-error-for=\\\"\".concat(id, \"\\\"]\")));\n }\n\n return $error;\n }\n /**\n * Get the first element in this order:\n * 2. The