(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
	typeof define === 'function' && define.amd ? define(['jquery'], factory) :
	(global = global || self, global.Site = factory(global.jQuery));
}(this, function ($$1) { 'use strict';

	$$1 = $$1 && $$1.hasOwnProperty('default') ? $$1['default'] : $$1;

	var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};

	function commonjsRequire () {
		throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');
	}

	function unwrapExports (x) {
		return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
	}

	function createCommonjsModule(fn, module) {
		return module = { exports: {} }, fn(module, module.exports), module.exports;
	}

	var bows_min = createCommonjsModule(function (module, exports) {
	!function(e){{ module.exports=e(); }}(function(){return function e(n,o,r){function t(f,d){if(!o[f]){if(!n[f]){var u="function"==typeof commonjsRequire&&commonjsRequire;if(!d&&u){ return u(f,!0); }if(i){ return i(f,!0); }var a=new Error("Cannot find module '"+f+"'");throw a.code="MODULE_NOT_FOUND",a}var s=o[f]={exports:{}};n[f][0].call(s.exports,function(e){var o=n[f][1][e];return t(o||e)},s,s.exports,e,n,o,r);}return o[f].exports}for(var i="function"==typeof commonjsRequire&&commonjsRequire,f=0;f<r.length;f++){ t(r[f]); }return t}({1:[function(e,n,o){(function(o){(function(){var r=function(){return s+=.618033988749895,360*(s%=1)},t="undefined"==typeof window,i=!t&&function(){var e;try{e=window.localStorage;}catch(e){}return e}(),f=i&&i.andlogKey?i.andlogKey:"debug",d=!(!i||!i[f])&&i[f],u=e("andlog"),a=Function.prototype.bind,s=0,c=!0,l="|",p=15,w=function(){},g=i&&i.debugColors?"false"!==i.debugColors:function(){if("undefined"==typeof window||"undefined"==typeof navigator){ return !1; }var e,n=!!window.chrome,r=/firefox/i.test(navigator.userAgent),t=o&&o.versions&&o.versions.electron;if(r){var i=navigator.userAgent.match(/Firefox\/(\d+\.\d+)/);i&&i[1]&&Number(i[1])&&(e=Number(i[1]));}return n||e>=31||t}(),v=null,h=null,y=!1,m={};d&&"!"===d[0]&&"/"===d[1]&&(y=!0,d=d.slice(1)),h=d&&"/"===d[0]&&new RegExp(d.substring(1,d.length-1));for(var b=["log","debug","warn","error","info"],x=0,E=b.length;x<E;x++){ w[b[x]]=w; }v=function(e){if(!i){ return w; }var n,o,t;if(c?(n=e.slice(0,p),n+=Array(p+3-n.length).join(" ")+l):n=e+Array(3).join(" ")+l,h){var f=e.match(h);if(!y&&!f||y&&f){ return w }}if(!a){ return w; }var d=[u];if(g){m[e]||(m[e]=r());var s=m[e];n="%c"+n,o="color: hsl("+s+",99%,40%); font-weight: bold",d.push(n,o);}else { d.push(n); }if(arguments.length>1){var v=Array.prototype.slice.call(arguments,1);d=d.concat(v);}return t=a.apply(u.log,d),b.forEach(function(e){t[e]=a.apply(u[e]||t,d);}),t},v.config=function(e){e.padLength&&(p=e.padLength),"boolean"==typeof e.padding&&(c=e.padding),e.separator?l=e.separator:!1!==e.separator&&""!==e.separator||(l="");},void 0!==n?n.exports=v:window.bows=v;}).call();}).call(this,e("_process"));},{_process:3,andlog:2}],2:[function(e,n,o){!function(){var e="undefined"==typeof window,r=!e&&function(){var e;try{e=window.localStorage;}catch(e){}return e}(),t={};if(e||!r){ return void(n.exports=console); }var i=r.andlogKey||"debug";if(r&&r[i]&&window.console){ t=window.console; }else { for(var f="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),d=f.length,u=function(){};d--;){ t[f[d]]=u; } }void 0!==o?n.exports=t:window.console=t;}();},{}],3:[function(e,n,o){function r(){}var t=n.exports={};t.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,n="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e){ return function(e){return window.setImmediate(e)}; }if(n){var o=[];return window.addEventListener("message",function(e){var n=e.source;if((n===window||null===n)&&"process-tick"===e.data&&(e.stopPropagation(),o.length>0)){o.shift()();}},!0),function(e){o.push(e),window.postMessage("process-tick","*");}}return function(e){setTimeout(e,0);}}(),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=r,t.addListener=r,t.once=r,t.off=r,t.removeListener=r,t.removeAllListeners=r,t.emit=r,t.binding=function(e){throw new Error("process.binding is not supported")},t.cwd=function(){return "/"},t.chdir=function(e){throw new Error("process.chdir is not supported")};},{}]},{},[1])(1)});
	});

	//ForEach Polly
	if (window.NodeList && !NodeList.prototype.forEach) {
		NodeList.prototype.forEach = function (callback, thisArg) {
			thisArg = thisArg || window;
			for (var i = 0; i < this.length; i++) {
				callback.call(thisArg, this[i], i, this);
			}
		};
	}

	//Closest Polly
	//https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
	if (window.Element && !Element.prototype.closest) {
		Element.prototype.closest =
			function (s) {
				var matches = (this.document || this.ownerDocument).querySelectorAll(s),
					i,
					el = this;
				do {
					i = matches.length;
					while (--i >= 0 && matches.item(i) !== el) { }			} while ((i < 0) && (el = el.parentElement));
				return el;
			};
	}

	//Assign Polyfill
	if (typeof Object.assign !== 'function') {
		// Must be writable: true, enumerable: false, configurable: true
		Object.defineProperty(Object, "assign", {
			value: function assign(target, varArgs) { // .length of function is 2
				var arguments$1 = arguments;

				if (target === null || target === undefined) {
					throw new TypeError('Cannot convert undefined or null to object');
				}

				var to = Object(target);

				for (var index = 1; index < arguments.length; index++) {
					var nextSource = arguments$1[index];

					if (nextSource !== null && nextSource !== undefined) {
						for (var nextKey in nextSource) {
							// Avoid bugs when hasOwnProperty is shadowed
							if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
								to[nextKey] = nextSource[nextKey];
							}
						}
					}
				}
				return to;
			},
			writable: true,
			configurable: true
		});
	}

	// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
	(function (arr) {
		arr.forEach(function (item) {
			if (item.hasOwnProperty('append')) {
				return;
			}
			Object.defineProperty(item, 'append', {
				configurable: true,
				enumerable: true,
				writable: true,
				value: function append() {
					var argArr = Array.prototype.slice.call(arguments),
						docFrag = document.createDocumentFragment();

					argArr.forEach(function (argItem) {
						var isNode = argItem instanceof Node;
						docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
					});

					this.appendChild(docFrag);
				}
			});
		});
	})([Element.prototype, Document.prototype, DocumentFragment.prototype]);

	var dateInputPolyfill_dist = createCommonjsModule(function (module, exports) {
	!function(t,e){{ module.exports=e(); }}(commonjsGlobal,function(){return function(t){function e(r){if(n[r]){ return n[r].exports; }var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function r(t){return t&&t.__esModule?t:{"default":t}}n(84);var o=n(41),i=r(o),a=function(){i["default"].addPickerToOtherInputs(),i["default"].supportsDateInput()||i["default"].addPickerToDateInputs();};a(),document.addEventListener("DOMContentLoaded",function(){a();}),document.querySelector("body").addEventListener("mousedown",function(){a();});},function(t,e,n){t.exports=!n(11)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a});},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n);},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)};},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o){ try{return a(t,e,n)}catch(u){} }if("get"in n||"set"in n){ throw TypeError("Accessors not supported!"); }return "value"in n&&(t[e]=n.value),t};},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))};},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t};},function(t,e,n){var r=n(23)("wks"),o=n(15),i=n(2).Symbol,a="function"==typeof i,u=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))};u.store=r;},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n);},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t)){ throw TypeError(t+" is not an object!"); }return t};},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u="prototype",s=function(t,e,n){var c,l,f,d=t&s.F,p=t&s.G,h=t&s.S,y=t&s.P,m=t&s.B,v=t&s.W,b=p?o:o[e]||(o[e]={}),g=b[u],x=p?r:h?r[e]:(r[e]||{})[u];p&&(n=e);for(c in n){ l=!d&&x&&void 0!==x[c],l&&c in b||(f=l?x[c]:n[c],b[c]=p&&"function"!=typeof x[c]?n[c]:m&&l?i(f,r):v&&x[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(f):y&&"function"==typeof f?i(Function.call,f):f,y&&((b.virtual||(b.virtual={}))[c]=f,t&s.R&&g&&!g[c]&&a(g,c,f))); }};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s;},function(t,e){t.exports=function(t){try{return !!t()}catch(e){return !0}};},function(t,e){t.exports=function(t){return "object"==typeof t?null!==t:"function"==typeof t};},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)};},function(t,e){t.exports=function(t,e){return {enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}};},function(t,e){var n=0,r=Math.random();t.exports=function(t){return "Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))};},function(t,e){t.exports=function(t){if(void 0==t){ throw TypeError("Can't call method on  "+t); }return t};},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",");},function(t,e){t.exports={};},function(t,e){t.exports=!0;},function(t,e){e.f={}.propertyIsEnumerable;},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e});};},function(t,e,n){var r=n(23)("keys"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))};},function(t,e,n){var r=n(2),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})};},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)};},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t)){ return t; }var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t))){ return o; }if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t))){ return o; }if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t))){ return o; }throw TypeError("Can't convert object to primitive value")};},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)});};},function(t,e,n){e.f=n(7);},function(t,e){e.__esModule=!0,e["default"]=function(t,e){if(!(t instanceof e)){ throw new TypeError("Cannot call a class as a function") }};},function(t,e,n){function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(45),i=r(o);e["default"]=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0, i["default"])(t,r.key,r);}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)};},function(t,e,n){var r=n(12),o=n(2).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}};},function(t,e,n){t.exports=!n(1)&&!n(11)(function(){return 7!=Object.defineProperty(n(31)("div"),"a",{get:function(){return 7}}).a});},function(t,e,n){var r=n(19),o=n(10),i=n(39),a=n(6),u=n(3),s=n(18),c=n(61),l=n(21),f=n(67),d=n(7)("iterator"),p=!([].keys&&"next"in[].keys()),h="@@iterator",y="keys",m="values",v=function(){return this};t.exports=function(t,e,n,b,g,x,M){c(n,e,b);var w,S,O,D=function(t){if(!p&&t in k){ return k[t]; }switch(t){case y:return function(){return new n(this,t)};case m:return function(){return new n(this,t)}}return function(){return new n(this,t)}},T=e+" Iterator",_=g==m,A=!1,k=t.prototype,E=k[d]||k[h]||g&&k[g],j=E||D(g),C=g?_?D("entries"):j:void 0,N="Array"==e?k.entries||E:E;if(N&&(O=f(N.call(new t)),O!==Object.prototype&&(l(O,T,!0),r||u(O,d)||a(O,d,v))),_&&E&&E.name!==m&&(A=!0,j=function(){return E.call(this)}),r&&!M||!p&&!A&&k[d]||a(k,d,j),s[e]=j,s[T]=v,g){ if(w={values:_?j:D(m),keys:x?j:D(y),entries:C},M){ for(S in w){ S in k||i(k,S,w[S]); } }else { o(o.P+o.F*(p||A),e,w); } }return w};},function(t,e,n){var r=n(9),o=n(35),i=n(17),a=n(22)("IE_PROTO"),u=function(){},s="prototype",c=function(){var t,e=n(31)("iframe"),r=i.length,o="<",a=">";for(e.style.display="none",n(58).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(o+"script"+a+"document.F=Object"+o+"/script"+a),t.close(),c=t.F;r--;){ delete c[s][i[r]]; }return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[s]=r(t),n=new u,u[s]=null,n[a]=t):n=c(),void 0===e?n:o(n,e)};},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,s=0;u>s;){ r.f(t,n=a[s++],e[n]); }return t};},function(t,e,n){var r=n(38),o=n(17).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)};},function(t,e){e.f=Object.getOwnPropertySymbols;},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),s=0,c=[];for(n in u){ n!=a&&r(u,n)&&c.push(n); }for(;e.length>s;){ r(u,n=e[s++])&&(~i(c,n)||c.push(n)); }return c};},function(t,e,n){t.exports=n(6);},function(t,e,n){function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){for(t=String(t),e=e||2;t.length<e;){ t="0"+t; }return t}function i(t){var e=new Date(t.getFullYear(),t.getMonth(),t.getDate());e.setDate(e.getDate()-(e.getDay()+6)%7+3);var n=new Date(e.getFullYear(),0,4);n.setDate(n.getDate()-(n.getDay()+6)%7+3);var r=e.getTimezoneOffset()-n.getTimezoneOffset();e.setHours(e.getHours()-r);var o=(e-n)/6048e5;return 1+Math.floor(o)}function a(t){var e=t.getDay();return 0===e&&(e=7),e}function u(t){return null===t?"null":void 0===t?"undefined":"object"!==("undefined"==typeof t?"undefined":(0, c["default"])(t))?"undefined"==typeof t?"undefined":(0, c["default"])(t):Array.isArray(t)?"array":{}.toString.call(t).slice(8,-1).toLowerCase()}Object.defineProperty(e,"__esModule",{value:!0});var s=n(48),c=r(s),l=function(){var t=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|'[^']*'|'[^']*'/g,e=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,n=/[^-+\dA-Z]/g;return function(r,s,c,f){if(1!==arguments.length||"string"!==u(r)||/\d/.test(r)||(s=r,r=void 0),r=r||new Date,r instanceof Date||(r=new Date(r)),isNaN(r)){ throw TypeError("Invalid date"); }s=String(l.masks[s]||s||l.masks["default"]);var d=s.slice(0,4);"UTC:"!==d&&"GMT:"!==d||(s=s.slice(4),c=!0,"GMT:"===d&&(f=!0));var p=c?"getUTC":"get",h=r[p+"Date"](),y=r[p+"Day"](),m=r[p+"Month"](),v=r[p+"FullYear"](),b=r[p+"Hours"](),g=r[p+"Minutes"](),x=r[p+"Seconds"](),M=r[p+"Milliseconds"](),w=c?0:r.getTimezoneOffset(),S=i(r),O=a(r),D={d:h,dd:o(h),ddd:l.i18n.dayNames[y],dddd:l.i18n.dayNames[y+7],m:m+1,mm:o(m+1),mmm:l.i18n.monthNames[m],mmmm:l.i18n.monthNames[m+12],yy:String(v).slice(2),yyyy:v,h:b%12||12,hh:o(b%12||12),H:b,HH:o(b),M:g,MM:o(g),s:x,ss:o(x),l:o(M,3),L:o(Math.round(M/10)),t:b<12?"a":"p",tt:b<12?"am":"pm",T:b<12?"A":"P",TT:b<12?"AM":"PM",Z:f?"GMT":c?"UTC":(String(r).match(e)||[""]).pop().replace(n,""),o:(w>0?"-":"+")+o(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:["th","st","nd","rd"][h%10>3?0:(h%100-h%10!=10)*h%10],W:S,N:O};return s.replace(t,function(t){return t in D?D[t]:t.slice(1,t.length-1)})}}();l.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},l.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},e["default"]=l;},function(t,e,n){function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(44),i=r(o),a=n(28),u=r(a),s=n(29),c=r(s),l=n(43),f=r(l),d=n(42),p=r(d),h=n(40),y=r(h),m=function(){function t(e){var n=this;(0, u["default"])(this,t),this.element=e,this.element.setAttribute("data-has-picker",""),this.locale=this.element.getAttribute("lang")||document.body.getAttribute("lang")||"en",this.format=this.element.getAttribute("date-format")||document.body.getAttribute("date-format")||this.element.getAttribute("data-date-format")||document.body.getAttribute("data-date-format")||"yyyy-mm-dd",this.localeText=this.getLocaleText(),(0, i["default"])(this.element,{valueAsDate:{get:function(){if(!n.element.value){ return null; }var t=n.format||"yyyy-mm-dd",e=n.element.value.match(/(\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,function(t){o[t]=r++;}),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0, y["default"])(t,n.format);}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t);}}});var r=function(t){var e=n.element;e.locale=n.localeText,f["default"].attachTo(e);};this.element.addEventListener("focus",r),this.element.addEventListener("mouseup",r),this.element.addEventListener("keydown",function(t){var e=new Date;switch(t.keyCode){case 9:case 27:f["default"].hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,f["default"].pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,f["default"].pingInput());}f["default"].sync();}),this.element.addEventListener("keyup",function(t){f["default"].sync();});}return (0, c["default"])(t,[{key:"getLocaleText",value:function(){var t=this.locale.toLowerCase();for(var e in p["default"]){var n=e.split("_");if(n.map(function(t){return t.toLowerCase()}),~n.indexOf(t)||~n.indexOf(t.substr(0,2))){ return p["default"][e] }}}}],[{key:"supportsDateInput",value:function(){var t=document.createElement("input");t.setAttribute("type","date");var e="not-a-date";return t.setAttribute("value",e),!(t.value===e)}},{key:"addPickerToDateInputs",value:function(){var e=document.querySelectorAll('input[type="date"]:not([data-has-picker])'),n=e.length;if(!n){ return !1; }for(var r=0;r<n;++r){ new t(e[r]); }}},{key:"addPickerToOtherInputs",value:function(){var e=document.querySelectorAll('input[type="text"].date-polyfill:not([data-has-picker])'),n=e.length;if(!n){ return !1; }for(var r=0;r<n;++r){ new t(e[r]); }}}]),t}();e["default"]=m;},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n={"en_en-US_en-UK":{days:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"]},"zh_zh-CN":{days:["星期天","星期一","星期二","星期三","星期四","星期五","星期六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},"zh-Hans_zh-Hans-CN":{days:["周日","周一","周二","周三","周四","周五","周六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},"zh-Hant_zh-Hant-TW":{days:["週日","週一","週二","週三","週四","週五","週六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},"de_de-DE":{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},"nl_nl-NL_nl-BE":{days:["Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"],months:["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"],today:"Vandaag",format:"D/M/Y"},"pt_pt-BR":{days:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],today:"Hoje"},"fr_fr-FR_fr-BE":{days:["Di","Lu","Ma","Me","Je","Ve","Sa"],months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],today:"Aujourd'hui",format:"D/M/Y"},"es_es-VE":{days:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],today:"Hoy",format:"D/M/Y"},"da_da-dk":{days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],today:"I dag",format:"dd/MM-YYYY"},"ru_ru-RU_ru-UA_ru-KZ_ru-MD":{days:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],today:"Сегодня",format:"D.M.Y"},"uk_uk-UA":{days:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],today:"Cьогодні",format:"D.M.Y"},"sv_sv-SE":{days:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],today:"Idag",format:"YYYY-MM-dd"},"test_test-TEST":{days:["Foo","Mon","Tue","Wed","Thu","Fri","Sat"],months:["Foo","February","March","April","May","June","July","August","September","October","November","December"]},ja:{days:["日","月","火","水","木","金","土"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],today:"今日",format:"YYYY-MM-dd"}};e["default"]=n;},function(t,e,n){function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(28),i=r(o),a=n(29),u=r(a),s=function(){function t(){var e=this;if((0, i["default"])(this,t),window.thePicker){ return window.thePicker; }this.date=new Date,this.input=null,this.isOpen=!1,this.container=document.createElement("date-input-polyfill"),this.year=document.createElement("select"),t.createRangeSelect(this.year,1890,this.date.getFullYear()+20),this.year.className="yearSelect",this.year.addEventListener("change",function(){e.date.setYear(e.year.value),e.refreshDaysMatrix();});var n=document.createElement("span");n.className="yearSelect-wrapper",n.appendChild(this.year),this.container.appendChild(n),this.month=document.createElement("select"),this.month.className="monthSelect",this.month.addEventListener("change",function(){e.date.setMonth(e.month.value),e.refreshDaysMatrix();});var r=document.createElement("span");r.className="monthSelect-wrapper",r.appendChild(this.month),this.container.appendChild(r),this.today=document.createElement("button"),this.today.textContent="Today",this.today.addEventListener("click",function(){var t=new Date;e.date=new Date(t.getFullYear()+"/"+("0"+(t.getMonth()+1)).slice(-2)+"/"+("0"+t.getDate()).slice(-2)),e.setInput();}),this.container.appendChild(this.today);var o=document.createElement("table");this.daysHead=document.createElement("thead"),this.days=document.createElement("tbody"),this.days.addEventListener("click",function(t){var n=t.target;if(!n.hasAttribute("data-day")){ return !1; }var r=e.days.querySelector("[data-selected]");r&&r.removeAttribute("data-selected"),n.setAttribute("data-selected",""),e.date.setDate(parseInt(n.textContent)),e.setInput();}),o.appendChild(this.daysHead),o.appendChild(this.days),this.container.appendChild(o),this.hide(),document.body.appendChild(this.container),this.removeClickOut=function(t){if(e.isOpen){for(var n=t.target,r=n===e.container||n===e.input;!r&&(n=n.parentNode);){ r=n===e.container; }("date"!==t.target.getAttribute("type")&&!r||!r)&&e.hide();}},this.removeBlur=function(t){e.isOpen&&e.hide();};}return (0, u["default"])(t,[{key:"hide",value:function(){this.container.setAttribute("data-open",this.isOpen=!1),this.input&&this.input.blur(),document.removeEventListener("mousedown",this.removeClickOut),document.removeEventListener("touchstart",this.removeClickOut);}},{key:"show",value:function(){var t=this;this.container.setAttribute("data-open",this.isOpen=!0),setTimeout(function(){document.addEventListener("mousedown",t.removeClickOut),document.addEventListener("touchstart",t.removeClickOut);},500),window.onpopstate=function(){t.hide();};}},{key:"goto",value:function(t){var e=this,n=t.getBoundingClientRect();this.container.style.top=n.top+n.height+(document.documentElement.scrollTop||document.body.scrollTop)+3+"px";var r=this.container.getBoundingClientRect(),o=r.width?r.width:280,i=function(){return e.container.className.replace("polyfill-left-aligned","").replace("polyfill-right-aligned","").replace(/\s+/g," ").trim()},a=n.right-o;n.right<o?(a=n.left,this.container.className=i()+" polyfill-left-aligned"):this.container.className=i()+" polyfill-right-aligned",this.container.style.left=a+(document.documentElement.scrollLeft||document.body.scrollLeft)+"px",this.show();}},{key:"attachTo",value:function(t){return !(t===this.input&&this.isOpen||(this.input=t,this.refreshLocale(),this.sync(),this["goto"](this.input),0))}},{key:"sync",value:function(){isNaN(Date.parse(this.input.valueAsDate))?this.date=new Date:this.date=t.absoluteDate(this.input.valueAsDate),this.year.value=this.date.getFullYear(),this.month.value=this.date.getMonth(),this.refreshDaysMatrix();}},{key:"setInput",value:function(){var t=this;this.input.valueAsDate=this.date,this.input.focus(),setTimeout(function(){t.hide();},100),this.pingInput();}},{key:"refreshLocale",value:function(){if(this.locale===this.input.locale){ return !1; }this.locale=this.input.locale,this.today.textContent=this.locale.today||"Today";for(var e=["<tr>"],n=0,r=this.locale.days.length;n<r;++n){ e.push('<th scope="col">'+this.locale.days[n]+"</th>"); }this.daysHead.innerHTML=e.join(""),t.createRangeSelect(this.month,0,11,this.locale.months);}},{key:"refreshDaysMatrix",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],s=0;s<o+r;++s){ if(s%7===0&&u.push("\n          "+(0!==s?"</tr>":"")+"\n          <tr>\n        "),s+1<=r){ u.push("<td></td>"); }else{var c=s+1-r,l=a&&i.getDate()===c;u.push("<td data-day "+(l?"data-selected":"")+">\n          "+c+"\n        </td>");} }this.days.innerHTML=u.join("");}},{key:"pingInput",value:function(){var t=void 0,e=void 0;try{t=new Event("input"),e=new Event("change");}catch(n){t=document.createEvent("KeyboardEvent"),t.initEvent("input",!0,!1),e=document.createEvent("KeyboardEvent"),e.initEvent("change",!0,!1);}this.input.dispatchEvent(t),this.input.dispatchEvent(e);}}],[{key:"createRangeSelect",value:function(t,e,n,r){t.innerHTML="";for(var o=e;o<=n;++o){var i=document.createElement("option");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o;}return t}},{key:"absoluteDate",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new s,e["default"]=window.thePicker;},function(t,e,n){t.exports={"default":n(49),__esModule:!0};},function(t,e,n){t.exports={"default":n(50),__esModule:!0};},function(t,e,n){t.exports={"default":n(51),__esModule:!0};},function(t,e,n){t.exports={"default":n(52),__esModule:!0};},function(t,e,n){function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(47),i=r(o),a=n(46),u=r(a),s="function"==typeof u["default"]&&"symbol"==typeof i["default"]?function(t){return typeof t}:function(t){return t&&"function"==typeof u["default"]&&t.constructor===u["default"]?"symbol":typeof t};e["default"]="function"==typeof u["default"]&&"symbol"===s(i["default"])?function(t){return "undefined"==typeof t?"undefined":s(t)}:function(t){return t&&"function"==typeof u["default"]&&t.constructor===u["default"]?"symbol":"undefined"==typeof t?"undefined":s(t)};},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)};},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)};},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol;},function(t,e,n){n(76),n(80),t.exports=n(27).f("iterator");},function(t,e){t.exports=function(t){if("function"!=typeof t){ throw TypeError(t+" is not a function!"); }return t};},function(t,e){t.exports=function(){};},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,s=r(e),c=o(s.length),l=i(a,c);if(t&&n!=n){for(;c>l;){ if(u=s[l++],u!=u){ return !0 } }}else { for(;c>l;l++){ if((t||l in s)&&s[l]===n){ return t||l||0; } } }return !t&&-1}};},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e){ return t; }switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}};},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n){ for(var a,u=n(t),s=i.f,c=0;u.length>c;){ s.call(t,a=u[c++])&&e.push(a); } }return e};},function(t,e,n){t.exports=n(2).document&&document.documentElement;},function(t,e,n){var r=n(30);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return "String"==r(t)?t.split(""):Object(t)};},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return "Array"==r(t)};},function(t,e,n){var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator");};},function(t,e){t.exports=function(t,e){return {value:e,done:!!t}};},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,s=0;u>s;){ if(i[n=a[s++]]===e){ return n } }};},function(t,e,n){var r=n(15)("meta"),o=n(12),i=n(3),a=n(4).f,u=0,s=Object.isExtensible||function(){return !0},c=!n(11)(function(){return s(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++u,w:{}}});},f=function(t,e){if(!o(t)){ return "symbol"==typeof t?t:("string"==typeof t?"S":"P")+t; }if(!i(t,r)){if(!s(t)){ return "F"; }if(!e){ return "E"; }l(t);}return t[r].i},d=function(t,e){if(!i(t,r)){if(!s(t)){ return !0; }if(!e){ return !1; }l(t);}return t[r].w},p=function(t){return c&&h.NEED&&s(t)&&!i(t,r)&&l(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:f,getWeak:d,onFreeze:p};},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),s=n(32),c=Object.getOwnPropertyDescriptor;e.f=n(1)?c:function(t,e){if(t=i(t),e=a(e,!0),s){ try{return c(t,e)}catch(n){} }if(u(t,e)){ return o(!r.f.call(t,e),t[e]) }};},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return o(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?u(t):o(r(t))};},function(t,e,n){var r=n(3),o=n(71),i=n(22)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null};},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),s=r(n),c=u.length;return s<0||s>=c?t?"":void 0:(i=u.charCodeAt(s),i<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?t?u.charAt(s):i:t?u.slice(s,s+2):(i-55296<<10)+(a-56320)+65536)}};},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)};},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0};},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))};},function(t,e,n){var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e;},function(){var t=this._t,e=this._k,n=this._i++;return !t||n>=t.length?(this._t=void 0,o(1)):"keys"==e?o(0,n):"values"==e?o(0,t[n]):o(0,[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries");},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperties:n(35)});},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperty:n(4).f});},function(t,e){},function(t,e,n){var r=n(68)(!0);n(33)(String,"String",function(t){this._t=String(t),this._i=0;},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})});},function(t,e,n){var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),s=n(64).KEY,c=n(11),l=n(23),f=n(21),d=n(15),p=n(7),h=n(27),y=n(26),m=n(63),v=n(57),b=n(60),g=n(9),x=n(5),M=n(25),w=n(14),S=n(34),O=n(66),D=n(65),T=n(4),_=n(13),A=D.f,k=T.f,E=O.f,j=r.Symbol,C=r.JSON,N=C&&C.stringify,L="prototype",P=p("_hidden"),F=p("toPrimitive"),J={}.propertyIsEnumerable,H=l("symbol-registry"),I=l("symbols"),Y=l("op-symbols"),R=Object[L],z="function"==typeof j,U=r.QObject,B=!U||!U[L]||!U[L].findChild,W=i&&c(function(){return 7!=S(k({},"a",{get:function(){return k(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(R,e);r&&delete R[e],k(t,e,n),r&&t!==R&&k(R,e,r);}:k,Z=function(t){var e=I[t]=S(j[L]);return e._k=t,e},G=z&&"symbol"==typeof j.iterator?function(t){return "symbol"==typeof t}:function(t){return t instanceof j},K=function(t,e,n){return t===R&&K(Y,e,n),g(t),e=M(e,!0),g(n),o(I,e)?(n.enumerable?(o(t,P)&&t[P][e]&&(t[P][e]=!1),n=S(n,{enumerable:w(0,!1)})):(o(t,P)||k(t,P,w(1,{})),t[P][e]=!0),W(t,e,n)):k(t,e,n)},V=function(t,e){g(t);for(var n,r=v(e=x(e)),o=0,i=r.length;i>o;){ K(t,n=r[o++],e[n]); }return t},q=function(t,e){return void 0===e?S(t):V(S(t),e)},Q=function(t){var e=J.call(this,t=M(t,!0));return !(this===R&&o(I,t)&&!o(Y,t))&&(!(e||!o(this,t)||!o(I,t)||o(this,P)&&this[P][t])||e)},X=function(t,e){if(t=x(t),e=M(e,!0),t!==R||!o(I,e)||o(Y,e)){var n=A(t,e);return !n||!o(I,e)||o(t,P)&&t[P][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=E(x(t)),r=[],i=0;n.length>i;){ o(I,e=n[i++])||e==P||e==s||r.push(e); }return r},tt=function(t){for(var e,n=t===R,r=E(n?Y:x(t)),i=[],a=0;r.length>a;){ !o(I,e=r[a++])||n&&!o(R,e)||i.push(I[e]); }return i};z||(j=function(){if(this instanceof j){ throw TypeError("Symbol is not a constructor!"); }var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(Y,n),o(this,P)&&o(this[P],t)&&(this[P][t]=!1),W(this,t,w(1,n));};return i&&B&&W(R,t,{configurable:!0,set:e}),Z(t)},u(j[L],"toString",function(){return this._k}),D.f=X,T.f=K,n(36).f=O.f=$,n(20).f=Q,n(37).f=tt,i&&!n(19)&&u(R,"propertyIsEnumerable",Q,!0),h.f=function(t){return Z(p(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;){ p(et[nt++]); }for(var et=_(p.store),nt=0;et.length>nt;){ y(et[nt++]); }a(a.S+a.F*!z,"Symbol",{"for":function(t){return o(H,t+="")?H[t]:H[t]=j(t)},keyFor:function(t){if(G(t)){ return m(H,t); }throw TypeError(t+" is not a symbol!")},useSetter:function(){B=!0;},useSimple:function(){B=!1;}}),a(a.S+a.F*!z,"Object",{create:q,defineProperty:K,defineProperties:V,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:tt}),C&&a(a.S+a.F*(!z||c(function(){var t=j();return "[null]"!=N([t])||"{}"!=N({a:t})||"{}"!=N(Object(t))})),"JSON",{stringify:function(t){
	var arguments$1 = arguments;
	if(void 0!==t&&!G(t)){for(var e,n,r=[t],o=1;arguments.length>o;){ r.push(arguments$1[o++]); }return e=r[1],"function"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!G(e)){ return e }}),r[1]=e,N.apply(C,r)}}}),j[L][F]||n(6)(j[L],F,j[L].valueOf),f(j,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0);},function(t,e,n){n(26)("asyncIterator");},function(t,e,n){n(26)("observable");},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],s=0;s<5;s++){var c=u[s],l=r[c],f=l&&l.prototype;f&&!f[a]&&o(f,a,c),i[c]=i.Array;}},function(t,e,n){e=t.exports=n(82)(),e.push([t.id,"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}",""]);
	},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e<this.length;e++){var n=this[e];n[2]?t.push("@media "+n[2]+"{"+n[1]+"}"):t.push(n[1]);}return t.join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0);}for(o=0;o<e.length;o++){var a=e[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a));}},t};},function(t,e,n){function r(t,e){for(var n=0;n<t.length;n++){var r=t[n],o=p[r.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++){ o.parts[i](r.parts[i]); }for(;i<r.parts.length;i++){ o.parts.push(c(r.parts[i],e)); }}else{for(var a=[],i=0;i<r.parts.length;i++){ a.push(c(r.parts[i],e)); }p[r.id]={id:r.id,refs:1,parts:a};}}}function o(t){for(var e=[],n={},r=0;r<t.length;r++){var o=t[r],i=o[0],a=o[1],u=o[2],s=o[3],c={css:a,media:u,sourceMap:s};n[i]?n[i].parts.push(c):e.push(n[i]={id:i,parts:[c]});}return e}function i(t,e){var n=m(),r=g[g.length-1];if("top"===t.insertAt){ r?r.nextSibling?n.insertBefore(e,r.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),g.push(e); }else{if("bottom"!==t.insertAt){ throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'."); }n.appendChild(e);}}function a(t){t.parentNode.removeChild(t);var e=g.indexOf(t);e>=0&&g.splice(e,1);}function u(t){var e=document.createElement("style");return e.type="text/css",i(t,e),e}function s(t){var e=document.createElement("link");return e.rel="stylesheet",i(t,e),e}function c(t,e){var n,r,o;if(e.singleton){var i=b++;n=v||(v=u(e)),r=l.bind(null,n,i,!1),o=l.bind(null,n,i,!0);}else { t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=s(e),r=d.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href);}):(n=u(e),r=f.bind(null,n),o=function(){a(n);}); }return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap){ return; }r(t=e);}else { o(); }}}function l(t,e,n,r){var o=n?"":r.css;if(t.styleSheet){ t.styleSheet.cssText=x(e,o); }else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i);}}function f(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet){ t.styleSheet.cssText=n; }else{for(;t.firstChild;){ t.removeChild(t.firstChild); }t.appendChild(document.createTextNode(n));}}function d(t,e){var n=e.css,r=e.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i);}var p={},h=function(t){var e;return function(){return "undefined"==typeof e&&(e=t.apply(this,arguments)),e}},y=h(function(){return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),m=h(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,b=0,g=[];t.exports=function(t,e){e=e||{},"undefined"==typeof e.singleton&&(e.singleton=y()),"undefined"==typeof e.insertAt&&(e.insertAt="bottom");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a<n.length;a++){var u=n[a],s=p[u.id];s.refs--,i.push(s);}if(t){var c=o(t);r(c,e);}for(var a=0;a<i.length;a++){var s=i[a];if(0===s.refs){for(var l=0;l<s.parts.length;l++){ s.parts[l](); }delete p[s.id];}}}};var x=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}();},function(t,e,n){var r=n(81);"string"==typeof r&&(r=[[t.id,r,""]]),n(83)(r,{}),r.locals&&(t.exports=r.locals);}])});
	});

	unwrapExports(dateInputPolyfill_dist);

	var log = bows_min('throttle');

	function throttle (fn, time) {
		if ( time === void 0 ) time = 50;

		var timer = null;

		log(fn, time);

		function throttledFn() {
			var args = [], len = arguments.length;
			while ( len-- ) args[ len ] = arguments[ len ];

			if (!timer) {
				timer = setTimeout(function () {
					fn.apply(void 0, args);
					timer = null;
				}, time);
			}
		}

		throttledFn.cancel = function () {
			clearTimeout(timer);
			timer = null;
		};

		return throttledFn;
	}

	var sizeResize = {
		xlarge: [],
		large: [],
		medium: [],
		small: [],
		any: [],
		body: document.body,
		small_max: 640,
		medium_max: 1000,
		large_max: 1200,
		pause: 100,
		currentSize: '',
		previousSize: ''
	};


	function addXlarge(func, params) {
		sizeResize.xlarge.push([func, params]);
	}

	function addLarge(func, params) {
		sizeResize.large.push([func, params]);
	}

	function addMedium(func, params) {
		sizeResize.medium.push([func, params]);
	}

	function addSmall(func, params) {
		sizeResize.small.push([func, params]);
	}

	function addAny(func, params) {
		sizeResize.any.push([func, params]);
	}

	function getWidth() {
		return sizeResize.body.clientWidth;
	}

	function getCurrent(width) {
		sizeResize.previousSize = sizeResize.currentSize;
		if (width <= sizeResize.small_max) {
			sizeResize.currentSize = 'small';
		} else if (width > sizeResize.small_max && width <= sizeResize.medium_max) {
			sizeResize.currentSize = 'medium';
		} else if (width > sizeResize.medium_max && width <= sizeResize.large_max) {
			sizeResize.currentSize = 'large';
		} else {
			sizeResize.currentSize = 'xlarge';
		}
		return sizeResize.currentSize;
	}

	function runFunctions() {
		sizeResize.body.classList.remove('size--xlarge');
		sizeResize.body.classList.remove('size--large');
		sizeResize.body.classList.remove('size--medium');
		sizeResize.body.classList.remove('size--small');
		if (sizeResize.currentSize === 'small') {
			sizeResize.body.classList.add('size--small');
			for (var i = 0; i < sizeResize.small.length; i++) {
				sizeResize.small[i][0].apply(this, sizeResize.small[i][1]);
			}
		} else if (sizeResize.currentSize === 'medium') {
			sizeResize.body.classList.add('size--medium');
			for (var i = 0; i < sizeResize.medium.length; i++) {
				sizeResize.medium[i][0].apply(this, sizeResize.medium[i][1]);
			}
		} else if (sizeResize.currentSize === 'large') {
			sizeResize.body.classList.add('size--large');
			for (var i = 0; i < sizeResize.large.length; i++) {
				sizeResize.large[i][0].apply(this, sizeResize.large[i][1]);
			}
		} else if (sizeResize.currentSize === 'xlarge') {
			sizeResize.body.classList.add('size--xlarge');
			for (var i = 0; i < sizeResize.xlarge.length; i++) {
				sizeResize.xlarge[i][0].apply(this, sizeResize.xlarge[i][1]);
			}
		}

		for (var i = 0; i < sizeResize.any.length; i++) {
			sizeResize.any[i][0].apply(this, sizeResize.any[i][1]);
		}
	}

	function sizeCheck() {
		var _this = this;
		if (_this.getCurrent(_this.getWidth()) === sizeResize.previousSize) {
			return false;
		}

		_this.runFunctions();
	}

	function init() {
		var _this = this;
		_this.getCurrent(_this.getWidth());
		_this.runFunctions();

		var endResizeEvent;
		window.onresize = function () {
			clearTimeout(endResizeEvent);
			endResizeEvent = setTimeout(function () {
				// Run code here, resizing has "stopped"
				_this.sizeCheck();
			}, sizeResize.pause);
		};
	}


	var size = {
		init: init,
		addXlarge: addXlarge,
		addLarge: addLarge,
		addMedium: addMedium,
		addSmall: addSmall,
		addAny: addAny,
		getWidth: getWidth,
		getCurrent: getCurrent,
		runFunctions: runFunctions,
		sizeCheck: sizeCheck
	};

	var istouch = {
	    $html: ''
	};

	function is_touch_device() {
	    return (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));
	}

	function init$1() {
	    var _this = this;
	    istouch.$html = document.querySelector('html');
	    if (!_this.is_touch_device()) {
	        istouch.$html.classList.add('no-touchevents');
	    } else {
	        istouch.$html.classList.add('touchevents');
	    }
	}


	var isTouch = {
	    init: init$1,
	    is_touch_device: is_touch_device
	};

	/**
	 * this implementation of fitvid doesn't force items to 16/9.  It measures them and then keeps the ratio unique per embed
	 *
	 * @var selectors (string|array) additional selectors search for in the DOM
	 * @return nodes - array of matched items
	 */

	function fitvid (selectors) {
		var config = {
			selectors: [
				'iframe[src*="player.vimeo.com"]',
				'iframe[src*="youtube.com"]',
				'iframe[src*="youtube-nocookie.com"]',
				'iframe[src*="matterport.com"]',
				'object',
				'embed',
				'#pgHeaderVid',
				'#mmVid',
				'.jwplayer'
			]
		};

		if (selectors) {
			if (!Array.isArray(selectors)) {
				selectors = [selectors];
			}
			config.selectors = config.selectors.concat(opts.selectors).filter(function (val, index, arr) { return arr.indexOf(val) === index; });
		}

		var nodes = Array.prototype.slice.call(document.querySelectorAll(config.selectors.join(',')));

		if (nodes.length > 0) {
			nodes.forEach(function (node) {
				if (node.getAttribute('data-fitvid')) {
					return;
				}
				var wrapper = document.createElement('div');
				var computed = window.getComputedStyle(node);
				var ratio = ((computed.height > 0 && computed.width > 0) ? computed.height / computed.width : 9 / 16) * 100;

				wrapper.className = 'fitvid';
				wrapper.style.width = '100%';
				wrapper.style.height = 0;
				wrapper.style.position = 'relative';
				wrapper.style.paddingTop = ratio + "%";

				node.style.position = 'absolute';
				node.style.top = 0;
				node.style.left = 0;
				node.style.width = '100%';
				node.style.height = '100%';
				node.setAttribute('data-fitvid', ratio);
				node.parentNode.insertBefore(wrapper, node);

				wrapper.appendChild(node);
			});
		}

		return nodes;
	}

	var log$1 = bows_min('keyboardFocus');
	var keyboardFocusClass = 'keyboard--focus';

	// Internal flag
	var keyboardFocus = false;

	function init$2() {
		// Keydown event trigger
		window.addEventListener('keydown', function (e) {
			if (e.defaultPrevented || keyboardFocus) {
				return; // Do nothing
			}
			// Capture certain keys (or alt key press)
			if ('Tab' === e.key || 'Enter' === e.key || e.altKey) {
				keyboardFocus = true;
				document.body.classList.add(keyboardFocusClass);
				log$1('site.keyboardFocus', keyboardFocus);
			}
		});

		// Mousedown event cancel
		window.addEventListener('mousedown', function (e) {
			if (e.defaultPrevented || !keyboardFocus) {
				return; // Do nothing
			}
			// Cancel keyboard active
			keyboardFocus = false;
			document.body.classList.remove(keyboardFocusClass);
			log$1('site.keyboardFocus', keyboardFocus);
		});
	}
	var keyboardFocus$1 = {
		init: init$2
	};

	//import $ from "jquery";

	var linksToAnchors = document.querySelectorAll('a[href^="#"]:not(.vtabs-nav__link):not(.tab-nav__link)');

	var log$2 = bows_min("scroll");

	function anchorLinkHandler(e) {
		var distanceToTop = function (el) { return Math.floor(el.getBoundingClientRect().top); };

		e.preventDefault();
		var targetID = this.getAttribute("href");
		var split = targetID.split('#');
		if (split[1] === '') { return; }
		var targetAnchor = document.querySelector(targetID);
		if (!targetAnchor) { return; }
		var originalTop = distanceToTop(targetAnchor);

		window.scrollBy({ top: originalTop, left: 0, behavior: "smooth" });

		var checkIfDone = setInterval(function () {
			var atBottom =
				window.innerHeight + window.pageYOffset >= document.body.offsetHeight - 2;
			if (distanceToTop(targetAnchor) === 0 || atBottom) {
				targetAnchor.tabIndex = "-1";
				targetAnchor.focus();

				window.history.pushState("", "", targetID);
				clearInterval(checkIfDone);
			}
			targetAnchor.addEventListener("blur", function () {
				targetAnchor.removeAttribute('tabIndex');
			});
		}, 100);
	}

	function init$3() {
		log$2("scroll init");
		if (linksToAnchors !== undefined) {
			linksToAnchors.forEach(function (each) { return (each.onclick = anchorLinkHandler); });
		}
	}

	var smoothScroll = {
		init: init$3,
		anchorLinkHandler: anchorLinkHandler
	};

	var clipboard = createCommonjsModule(function (module, exports) {
	/*!
	 * clipboard.js v2.0.11
	 * https://clipboardjs.com/
	 *
	 * Licensed MIT © Zeno Rocha
	 */
	(function webpackUniversalModuleDefinition(root, factory) {
		{ module.exports = factory(); }
	})(commonjsGlobal, function() {
	return /******/ (function() { // webpackBootstrap
	/******/ 	var __webpack_modules__ = ({

	/***/ 686:
	/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

	// EXPORTS
	__webpack_require__.d(__webpack_exports__, {
	  "default": function() { return /* binding */ clipboard; }
	});

	// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js
	var tiny_emitter = __webpack_require__(279);
	var tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);
	// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js
	var listen = __webpack_require__(370);
	var listen_default = /*#__PURE__*/__webpack_require__.n(listen);
	// EXTERNAL MODULE: ./node_modules/select/src/select.js
	var src_select = __webpack_require__(817);
	var select_default = /*#__PURE__*/__webpack_require__.n(src_select);
	/**
	 * Executes a given operation type.
	 * @param {String} type
	 * @return {Boolean}
	 */
	function command(type) {
	  try {
	    return document.execCommand(type);
	  } catch (err) {
	    return false;
	  }
	}


	/**
	 * Cut action wrapper.
	 * @param {String|HTMLElement} target
	 * @return {String}
	 */

	var ClipboardActionCut = function ClipboardActionCut(target) {
	  var selectedText = select_default()(target);
	  command('cut');
	  return selectedText;
	};

	/* harmony default export */ var actions_cut = (ClipboardActionCut);
	/**
	 * Creates a fake textarea element with a value.
	 * @param {String} value
	 * @return {HTMLElement}
	 */
	function createFakeElement(value) {
	  var isRTL = document.documentElement.getAttribute('dir') === 'rtl';
	  var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS

	  fakeElement.style.fontSize = '12pt'; // Reset box model

	  fakeElement.style.border = '0';
	  fakeElement.style.padding = '0';
	  fakeElement.style.margin = '0'; // Move element out of screen horizontally

	  fakeElement.style.position = 'absolute';
	  fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically

	  var yPosition = window.pageYOffset || document.documentElement.scrollTop;
	  fakeElement.style.top = "".concat(yPosition, "px");
	  fakeElement.setAttribute('readonly', '');
	  fakeElement.value = value;
	  return fakeElement;
	}



	/**
	 * Create fake copy action wrapper using a fake element.
	 * @param {String} target
	 * @param {Object} options
	 * @return {String}
	 */

	var fakeCopyAction = function fakeCopyAction(value, options) {
	  var fakeElement = createFakeElement(value);
	  options.container.appendChild(fakeElement);
	  var selectedText = select_default()(fakeElement);
	  command('copy');
	  fakeElement.remove();
	  return selectedText;
	};
	/**
	 * Copy action wrapper.
	 * @param {String|HTMLElement} target
	 * @param {Object} options
	 * @return {String}
	 */


	var ClipboardActionCopy = function ClipboardActionCopy(target) {
	  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
	    container: document.body
	  };
	  var selectedText = '';

	  if (typeof target === 'string') {
	    selectedText = fakeCopyAction(target, options);
	  } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {
	    // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange
	    selectedText = fakeCopyAction(target.value, options);
	  } else {
	    selectedText = select_default()(target);
	    command('copy');
	  }

	  return selectedText;
	};

	/* harmony default export */ var actions_copy = (ClipboardActionCopy);
	function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }



	/**
	 * Inner function which performs selection from either `text` or `target`
	 * properties and then executes copy or cut operations.
	 * @param {Object} options
	 */

	var ClipboardActionDefault = function ClipboardActionDefault() {
	  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	  // Defines base properties passed from constructor.
	  var _options$action = options.action,
	      action = _options$action === void 0 ? 'copy' : _options$action,
	      container = options.container,
	      target = options.target,
	      text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.

	  if (action !== 'copy' && action !== 'cut') {
	    throw new Error('Invalid "action" value, use either "copy" or "cut"');
	  } // Sets the `target` property using an element that will be have its content copied.


	  if (target !== undefined) {
	    if (target && _typeof(target) === 'object' && target.nodeType === 1) {
	      if (action === 'copy' && target.hasAttribute('disabled')) {
	        throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
	      }

	      if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
	        throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
	      }
	    } else {
	      throw new Error('Invalid "target" value, use a valid Element');
	    }
	  } // Define selection strategy based on `text` property.


	  if (text) {
	    return actions_copy(text, {
	      container: container
	    });
	  } // Defines which selection strategy based on `target` property.


	  if (target) {
	    return action === 'cut' ? actions_cut(target) : actions_copy(target, {
	      container: container
	    });
	  }
	};

	/* harmony default export */ var actions_default = (ClipboardActionDefault);
	function clipboard_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return clipboard_typeof(obj); }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) { descriptor.writable = true; } Object.defineProperty(target, descriptor.key, descriptor); } }

	function _createClass(Constructor, protoProps, staticProps) { if (protoProps) { _defineProperties(Constructor.prototype, protoProps); } if (staticProps) { _defineProperties(Constructor, staticProps); } return Constructor; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) { _setPrototypeOf(subClass, superClass); } }

	function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

	function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

	function _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

	function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

	function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) { return false; } if (Reflect.construct.sham) { return false; } if (typeof Proxy === "function") { return true; } try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

	function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }






	/**
	 * Helper function to retrieve attribute value.
	 * @param {String} suffix
	 * @param {Element} element
	 */

	function getAttributeValue(suffix, element) {
	  var attribute = "data-clipboard-".concat(suffix);

	  if (!element.hasAttribute(attribute)) {
	    return;
	  }

	  return element.getAttribute(attribute);
	}
	/**
	 * Base class which takes one or more elements, adds event listeners to them,
	 * and instantiates a new `ClipboardAction` on each click.
	 */


	var Clipboard = /*#__PURE__*/function (_Emitter) {
	  _inherits(Clipboard, _Emitter);

	  var _super = _createSuper(Clipboard);

	  /**
	   * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
	   * @param {Object} options
	   */
	  function Clipboard(trigger, options) {
	    var _this;

	    _classCallCheck(this, Clipboard);

	    _this = _super.call(this);

	    _this.resolveOptions(options);

	    _this.listenClick(trigger);

	    return _this;
	  }
	  /**
	   * Defines if attributes would be resolved using internal setter functions
	   * or custom functions that were passed in the constructor.
	   * @param {Object} options
	   */


	  _createClass(Clipboard, [{
	    key: "resolveOptions",
	    value: function resolveOptions() {
	      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	      this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
	      this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
	      this.text = typeof options.text === 'function' ? options.text : this.defaultText;
	      this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;
	    }
	    /**
	     * Adds a click event listener to the passed trigger.
	     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
	     */

	  }, {
	    key: "listenClick",
	    value: function listenClick(trigger) {
	      var _this2 = this;

	      this.listener = listen_default()(trigger, 'click', function (e) {
	        return _this2.onClick(e);
	      });
	    }
	    /**
	     * Defines a new `ClipboardAction` on each click event.
	     * @param {Event} e
	     */

	  }, {
	    key: "onClick",
	    value: function onClick(e) {
	      var trigger = e.delegateTarget || e.currentTarget;
	      var action = this.action(trigger) || 'copy';
	      var text = actions_default({
	        action: action,
	        container: this.container,
	        target: this.target(trigger),
	        text: this.text(trigger)
	      }); // Fires an event based on the copy operation result.

	      this.emit(text ? 'success' : 'error', {
	        action: action,
	        text: text,
	        trigger: trigger,
	        clearSelection: function clearSelection() {
	          if (trigger) {
	            trigger.focus();
	          }

	          window.getSelection().removeAllRanges();
	        }
	      });
	    }
	    /**
	     * Default `action` lookup function.
	     * @param {Element} trigger
	     */

	  }, {
	    key: "defaultAction",
	    value: function defaultAction(trigger) {
	      return getAttributeValue('action', trigger);
	    }
	    /**
	     * Default `target` lookup function.
	     * @param {Element} trigger
	     */

	  }, {
	    key: "defaultTarget",
	    value: function defaultTarget(trigger) {
	      var selector = getAttributeValue('target', trigger);

	      if (selector) {
	        return document.querySelector(selector);
	      }
	    }
	    /**
	     * Allow fire programmatically a copy action
	     * @param {String|HTMLElement} target
	     * @param {Object} options
	     * @returns Text copied.
	     */

	  }, {
	    key: "defaultText",

	    /**
	     * Default `text` lookup function.
	     * @param {Element} trigger
	     */
	    value: function defaultText(trigger) {
	      return getAttributeValue('text', trigger);
	    }
	    /**
	     * Destroy lifecycle.
	     */

	  }, {
	    key: "destroy",
	    value: function destroy() {
	      this.listener.destroy();
	    }
	  }], [{
	    key: "copy",
	    value: function copy(target) {
	      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
	        container: document.body
	      };
	      return actions_copy(target, options);
	    }
	    /**
	     * Allow fire programmatically a cut action
	     * @param {String|HTMLElement} target
	     * @returns Text cutted.
	     */

	  }, {
	    key: "cut",
	    value: function cut(target) {
	      return actions_cut(target);
	    }
	    /**
	     * Returns the support of the given action, or all actions if no action is
	     * given.
	     * @param {String} [action]
	     */

	  }, {
	    key: "isSupported",
	    value: function isSupported() {
	      var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
	      var actions = typeof action === 'string' ? [action] : action;
	      var support = !!document.queryCommandSupported;
	      actions.forEach(function (action) {
	        support = support && !!document.queryCommandSupported(action);
	      });
	      return support;
	    }
	  }]);

	  return Clipboard;
	}((tiny_emitter_default()));

	/* harmony default export */ var clipboard = (Clipboard);

	/***/ }),

	/***/ 828:
	/***/ (function(module) {

	var DOCUMENT_NODE_TYPE = 9;

	/**
	 * A polyfill for Element.matches()
	 */
	if (typeof Element !== 'undefined' && !Element.prototype.matches) {
	    var proto = Element.prototype;

	    proto.matches = proto.matchesSelector ||
	                    proto.mozMatchesSelector ||
	                    proto.msMatchesSelector ||
	                    proto.oMatchesSelector ||
	                    proto.webkitMatchesSelector;
	}

	/**
	 * Finds the closest parent that matches a selector.
	 *
	 * @param {Element} element
	 * @param {String} selector
	 * @return {Function}
	 */
	function closest (element, selector) {
	    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
	        if (typeof element.matches === 'function' &&
	            element.matches(selector)) {
	          return element;
	        }
	        element = element.parentNode;
	    }
	}

	module.exports = closest;


	/***/ }),

	/***/ 438:
	/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

	var closest = __webpack_require__(828);

	/**
	 * Delegates event to a selector.
	 *
	 * @param {Element} element
	 * @param {String} selector
	 * @param {String} type
	 * @param {Function} callback
	 * @param {Boolean} useCapture
	 * @return {Object}
	 */
	function _delegate(element, selector, type, callback, useCapture) {
	    var listenerFn = listener.apply(this, arguments);

	    element.addEventListener(type, listenerFn, useCapture);

	    return {
	        destroy: function() {
	            element.removeEventListener(type, listenerFn, useCapture);
	        }
	    }
	}

	/**
	 * Delegates event to a selector.
	 *
	 * @param {Element|String|Array} [elements]
	 * @param {String} selector
	 * @param {String} type
	 * @param {Function} callback
	 * @param {Boolean} useCapture
	 * @return {Object}
	 */
	function delegate(elements, selector, type, callback, useCapture) {
	    // Handle the regular Element usage
	    if (typeof elements.addEventListener === 'function') {
	        return _delegate.apply(null, arguments);
	    }

	    // Handle Element-less usage, it defaults to global delegation
	    if (typeof type === 'function') {
	        // Use `document` as the first parameter, then apply arguments
	        // This is a short way to .unshift `arguments` without running into deoptimizations
	        return _delegate.bind(null, document).apply(null, arguments);
	    }

	    // Handle Selector-based usage
	    if (typeof elements === 'string') {
	        elements = document.querySelectorAll(elements);
	    }

	    // Handle Array-like based usage
	    return Array.prototype.map.call(elements, function (element) {
	        return _delegate(element, selector, type, callback, useCapture);
	    });
	}

	/**
	 * Finds closest match and invokes callback.
	 *
	 * @param {Element} element
	 * @param {String} selector
	 * @param {String} type
	 * @param {Function} callback
	 * @return {Function}
	 */
	function listener(element, selector, type, callback) {
	    return function(e) {
	        e.delegateTarget = closest(e.target, selector);

	        if (e.delegateTarget) {
	            callback.call(element, e);
	        }
	    }
	}

	module.exports = delegate;


	/***/ }),

	/***/ 879:
	/***/ (function(__unused_webpack_module, exports) {

	/**
	 * Check if argument is a HTML element.
	 *
	 * @param {Object} value
	 * @return {Boolean}
	 */
	exports.node = function(value) {
	    return value !== undefined
	        && value instanceof HTMLElement
	        && value.nodeType === 1;
	};

	/**
	 * Check if argument is a list of HTML elements.
	 *
	 * @param {Object} value
	 * @return {Boolean}
	 */
	exports.nodeList = function(value) {
	    var type = Object.prototype.toString.call(value);

	    return value !== undefined
	        && (type === '[object NodeList]' || type === '[object HTMLCollection]')
	        && ('length' in value)
	        && (value.length === 0 || exports.node(value[0]));
	};

	/**
	 * Check if argument is a string.
	 *
	 * @param {Object} value
	 * @return {Boolean}
	 */
	exports.string = function(value) {
	    return typeof value === 'string'
	        || value instanceof String;
	};

	/**
	 * Check if argument is a function.
	 *
	 * @param {Object} value
	 * @return {Boolean}
	 */
	exports.fn = function(value) {
	    var type = Object.prototype.toString.call(value);

	    return type === '[object Function]';
	};


	/***/ }),

	/***/ 370:
	/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

	var is = __webpack_require__(879);
	var delegate = __webpack_require__(438);

	/**
	 * Validates all params and calls the right
	 * listener function based on its target type.
	 *
	 * @param {String|HTMLElement|HTMLCollection|NodeList} target
	 * @param {String} type
	 * @param {Function} callback
	 * @return {Object}
	 */
	function listen(target, type, callback) {
	    if (!target && !type && !callback) {
	        throw new Error('Missing required arguments');
	    }

	    if (!is.string(type)) {
	        throw new TypeError('Second argument must be a String');
	    }

	    if (!is.fn(callback)) {
	        throw new TypeError('Third argument must be a Function');
	    }

	    if (is.node(target)) {
	        return listenNode(target, type, callback);
	    }
	    else if (is.nodeList(target)) {
	        return listenNodeList(target, type, callback);
	    }
	    else if (is.string(target)) {
	        return listenSelector(target, type, callback);
	    }
	    else {
	        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
	    }
	}

	/**
	 * Adds an event listener to a HTML element
	 * and returns a remove listener function.
	 *
	 * @param {HTMLElement} node
	 * @param {String} type
	 * @param {Function} callback
	 * @return {Object}
	 */
	function listenNode(node, type, callback) {
	    node.addEventListener(type, callback);

	    return {
	        destroy: function() {
	            node.removeEventListener(type, callback);
	        }
	    }
	}

	/**
	 * Add an event listener to a list of HTML elements
	 * and returns a remove listener function.
	 *
	 * @param {NodeList|HTMLCollection} nodeList
	 * @param {String} type
	 * @param {Function} callback
	 * @return {Object}
	 */
	function listenNodeList(nodeList, type, callback) {
	    Array.prototype.forEach.call(nodeList, function(node) {
	        node.addEventListener(type, callback);
	    });

	    return {
	        destroy: function() {
	            Array.prototype.forEach.call(nodeList, function(node) {
	                node.removeEventListener(type, callback);
	            });
	        }
	    }
	}

	/**
	 * Add an event listener to a selector
	 * and returns a remove listener function.
	 *
	 * @param {String} selector
	 * @param {String} type
	 * @param {Function} callback
	 * @return {Object}
	 */
	function listenSelector(selector, type, callback) {
	    return delegate(document.body, selector, type, callback);
	}

	module.exports = listen;


	/***/ }),

	/***/ 817:
	/***/ (function(module) {

	function select(element) {
	    var selectedText;

	    if (element.nodeName === 'SELECT') {
	        element.focus();

	        selectedText = element.value;
	    }
	    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
	        var isReadOnly = element.hasAttribute('readonly');

	        if (!isReadOnly) {
	            element.setAttribute('readonly', '');
	        }

	        element.select();
	        element.setSelectionRange(0, element.value.length);

	        if (!isReadOnly) {
	            element.removeAttribute('readonly');
	        }

	        selectedText = element.value;
	    }
	    else {
	        if (element.hasAttribute('contenteditable')) {
	            element.focus();
	        }

	        var selection = window.getSelection();
	        var range = document.createRange();

	        range.selectNodeContents(element);
	        selection.removeAllRanges();
	        selection.addRange(range);

	        selectedText = selection.toString();
	    }

	    return selectedText;
	}

	module.exports = select;


	/***/ }),

	/***/ 279:
	/***/ (function(module) {

	function E () {
	  // Keep this empty so it's easier to inherit from
	  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
	}

	E.prototype = {
	  on: function (name, callback, ctx) {
	    var e = this.e || (this.e = {});

	    (e[name] || (e[name] = [])).push({
	      fn: callback,
	      ctx: ctx
	    });

	    return this;
	  },

	  once: function (name, callback, ctx) {
	    var self = this;
	    function listener () {
	      self.off(name, listener);
	      callback.apply(ctx, arguments);
	    }
	    listener._ = callback;
	    return this.on(name, listener, ctx);
	  },

	  emit: function (name) {
	    var data = [].slice.call(arguments, 1);
	    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
	    var i = 0;
	    var len = evtArr.length;

	    for (i; i < len; i++) {
	      evtArr[i].fn.apply(evtArr[i].ctx, data);
	    }

	    return this;
	  },

	  off: function (name, callback) {
	    var e = this.e || (this.e = {});
	    var evts = e[name];
	    var liveEvents = [];

	    if (evts && callback) {
	      for (var i = 0, len = evts.length; i < len; i++) {
	        if (evts[i].fn !== callback && evts[i].fn._ !== callback)
	          { liveEvents.push(evts[i]); }
	      }
	    }

	    // Remove event from queue to prevent memory leak
	    // Suggested by https://github.com/lazd
	    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910

	    (liveEvents.length)
	      ? e[name] = liveEvents
	      : delete e[name];

	    return this;
	  }
	};

	module.exports = E;
	module.exports.TinyEmitter = E;


	/***/ })

	/******/ 	});
	/************************************************************************/
	/******/ 	// The module cache
	/******/ 	var __webpack_module_cache__ = {};
	/******/ 	
	/******/ 	// The require function
	/******/ 	function __webpack_require__(moduleId) {
	/******/ 		// Check if module is in cache
	/******/ 		if(__webpack_module_cache__[moduleId]) {
	/******/ 			return __webpack_module_cache__[moduleId].exports;
	/******/ 		}
	/******/ 		// Create a new module (and put it into the cache)
	/******/ 		var module = __webpack_module_cache__[moduleId] = {
	/******/ 			// no module.id needed
	/******/ 			// no module.loaded needed
	/******/ 			exports: {}
	/******/ 		};
	/******/ 	
	/******/ 		// Execute the module function
	/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
	/******/ 	
	/******/ 		// Return the exports of the module
	/******/ 		return module.exports;
	/******/ 	}
	/******/ 	
	/************************************************************************/
	/******/ 	/* webpack/runtime/compat get default export */
	/******/ 	!function() {
	/******/ 		// getDefaultExport function for compatibility with non-harmony modules
	/******/ 		__webpack_require__.n = function(module) {
	/******/ 			var getter = module && module.__esModule ?
	/******/ 				function() { return module['default']; } :
	/******/ 				function() { return module; };
	/******/ 			__webpack_require__.d(getter, { a: getter });
	/******/ 			return getter;
	/******/ 		};
	/******/ 	}();
	/******/ 	
	/******/ 	/* webpack/runtime/define property getters */
	/******/ 	!function() {
	/******/ 		// define getter functions for harmony exports
	/******/ 		__webpack_require__.d = function(exports, definition) {
	/******/ 			for(var key in definition) {
	/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
	/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
	/******/ 				}
	/******/ 			}
	/******/ 		};
	/******/ 	}();
	/******/ 	
	/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
	/******/ 	!function() {
	/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); };
	/******/ 	}();
	/******/ 	
	/************************************************************************/
	/******/ 	// module exports must be returned from runtime so entry inlining is disabled
	/******/ 	// startup
	/******/ 	// Load entry module and return exports
	/******/ 	return __webpack_require__(686);
	/******/ })()
	.default;
	});
	});

	var ClipboardJS = unwrapExports(clipboard);

	//import $ from "jquery";

	var elem = document.querySelectorAll(".share__link--modal");
	var log$3 = bows_min("share");

	function sharePop(e) {
		//elem.addEventListener("click", function(e) {

		var href = $(this).attr("href");
		var t = (window.screen.height - 350) / 2;
		var l = (window.screen.width - 550) / 2;
		log$3(l);
		var opts = [
			"scrollbars=yes",
			"resizable=yes",
			"toolbar=no",
			"location=yes",
			"width=550",
			"height=350",
			"top=" + t,
			"left=" + l
		];
		return window.open(href, "sharer", opts.join(","));
		//});
	}

	function init$4() {
		log$3("share init");
		if (elem !== undefined) {
			for (var i = 0; i < elem.length; i++) {
				elem[i].addEventListener("click", sharePop);
			}
		}

		var clipboard = new ClipboardJS('[data-clipboard-text]');
		var copied = document.querySelector('.share__copied');

		clipboard.on('success', function (e) {
			copied.textContent = "Page URL Copied";
			copied.classList.add('share__copied--success');
			setTimeout(function () {
				copied.classList.remove('share__copied--success');
			}, 3000);
			setTimeout(function () {
				copied.textContent = "";
			}, 3500);
		});

		clipboard.on('error', function (e) {
			copied.textContent = "URL not copied";
			copied.classList.add('share__copied--error');
			setTimeout(function () {
				copied.classList.remove('share__copied--error');
			}, 1000);
			setTimeout(function () {
				copied.textContent = "";
			}, 1250);
		});
	}

	var share = {
		init: init$4,
		sharePop: sharePop
	};

	// https://codepen.io/heydon/pen/veeaEa
	// import $ from "jquery";
	// Get relevant elements and collections
	var tabbed = document.querySelectorAll('.js-wikit-tabbed');
	var accordionTitle = document.querySelectorAll('.accordion-toggle-tab');
	var switchTab = '';
	function toggleTabFix(toggleTab) {
		// console.log(toggleTab);
		toggleTab.forEach(function (tt) {
			var href = "#" + (tt.getAttribute('aria-controls'));		var tab = document.querySelector((".tab-nav__link[href=\"" + href + "\"]"));
			if (tab) {
				var newText = tab.innerHTML;
				var jwat = tt.querySelector('.js-wikit-accordion__title');
				if (jwat) {
					jwat.innerHTML = newText;
				}
			}
		});
	}
	function doEachTab(tablist, tabs, panels) {
		// The tab switching function
		switchTab = function (theTabs, thePanels, oldTab, newTab, isFocus) {
			if (isFocus !== false) {
				newTab.focus();
			} else
				// Make the active tab focusable by the user (Tab key)
				{ newTab.removeAttribute('tabindex'); }
			// Set the selected state
			newTab.setAttribute('aria-selected', 'true');
			newTab.removeAttribute('tabindex');
			oldTab.removeAttribute('aria-selected');
			oldTab.setAttribute('tabindex', '-1');
			oldTab.setAttribute('aria-selected', 'false');
			// Get the indices of the new and old tabs to find the correct
			// tab panels to show and hide
			var index = Array.prototype.indexOf.call(theTabs, newTab);
			var oldIndex = Array.prototype.indexOf.call(theTabs, oldTab);
			thePanels[oldIndex].hidden = true;
			thePanels[index].hidden = false;
			// Code for updating accordions
			var oldAtt = oldTab.getAttribute('href').split('#');
			var newAtt = newTab.getAttribute('href').split('#');
			oldAtt = document.querySelector((".accordion-toggle-tab[aria-controls=\"" + (oldAtt[1]) + "\"]"));
			newAtt = document.querySelector((".accordion-toggle-tab[aria-controls=\"" + (newAtt[1]) + "\"]"));
			if (oldAtt) {
				oldAtt.setAttribute('aria-expanded', 'false');
			}
			if (newAtt) {
				newAtt.setAttribute('aria-expanded', 'true');
			}
			// Trigger resize event for sliders
			window.dispatchEvent(new Event('resize'));
		};
		// Add the tablist role to the first <ul> in the .tabbed container
		tablist.setAttribute('role', 'tablist');
		// Add semantics are remove user focusability for each tab
		Array.prototype.forEach.call(tabs, function (tab, i) {
			tab.setAttribute('role', 'tab');
			// tab.setAttribute('id', 'tab' + (i + 1));
			tab.setAttribute('tabindex', '-1');
			tab.parentNode.setAttribute('role', 'presentation');
			// Handle clicking of tabs for mouse users
			tab.addEventListener('click', function (e) {
				e.preventDefault();
				var currentTab = tablist.querySelector('[aria-selected="true"]');
				if (e.currentTarget !== currentTab) {
					switchTab(tabs, panels, currentTab, e.currentTarget, true);
				}
				return false;
			});
			// Handle keydown events for keyboard users
			tab.addEventListener('keydown', function (e) {
				// Get the index of the current tab in the tabs node list
				var index = Array.prototype.indexOf.call(tabs, e.currentTarget);
				// Work out which key the user is pressing and
				// Calculate the new tab's index where appropriate
				var dir = e.which === 37 ? index - 1 : e.which === 39 ? index + 1 : e.which === 40 ? 'down' : null;
				if (dir !== null) {
					e.preventDefault();
					// If the down key is pressed, move focus to the open panel,
					// otherwise switch to the adjacent tab
					dir === 'down' ? panels[i].focus() : tabs[dir] ? switchTab(tabs, panels, e.currentTarget, tabs[dir]) : void 0;
				}
			});
		});
		// Add tab panel semantics and hide them all
		Array.prototype.forEach.call(panels, function (panel, i) {
			panel.setAttribute('role', 'tabpanel');
			panel.setAttribute('tabindex', '-1');
			var id = panel.getAttribute('id');
			panel.setAttribute('aria-labelledby', tabs[i].id);
			panel.hidden = true;
		});
	}
	function activateFirstTab(tabs, panels, toggleTab) {
		// Initially activate the first tab and reveal the first tab panel
		var activate = 0;
		for (var i = 0; i < tabs.length; i++) {
			var ariaSelected = tabs[i].getAttribute('aria-selected');
			if (ariaSelected === "true") {
				activate = i;
			}
		}
		tabs[activate].removeAttribute('tabindex');
		tabs[activate].setAttribute('aria-selected', 'true');
		Array.prototype.forEach.call(toggleTab, function (tt) {
			tt.setAttribute('aria-expanded', false);
		});
		toggleTab[activate].setAttribute('aria-expanded', true);
		panels[activate].hidden = false;
	}
	function tabAccordionFix() {
		// Ensure that accordion buttons are set correctly if user goes from large to small screens
		var acc = document.querySelectorAll('.accordion-toggle-tab');
		acc.forEach(function (tab) {
			var isHidden = tab.nextElementSibling.getAttribute('hidden');
			if (isHidden !== null && isHidden !== true) {
				tab.setAttribute('aria-expanded', false);
			}
		});
	}
	function init$5() {
		if (tabbed.length > 0) {
			for (var i = 0; i < tabbed.length; i++) {
				var tablist = tabbed[i].querySelector('ul');
				var tabs = tablist.querySelectorAll('a.tab-nav__link');
				var panels = tabbed[i].querySelectorAll('[id^="tabpanel"]');
				var toggleTab = tabbed[i].querySelectorAll('.accordion-toggle-tab');
				toggleTabFix(toggleTab);
				doEachTab(tablist, tabs, panels);
				activateFirstTab(tabs, panels, toggleTab);
			}
			var endResizeEvent;
			window.addEventListener('resize', function () {
				clearTimeout(endResizeEvent);
				endResizeEvent = setTimeout(function () {
					tabAccordionFix();
					// Code below ensures that
					if (window.innerWidth >= 1024) {
						// Run code here, resizing has "stopped"
						var tf = document.querySelectorAll('.tablist--fix');
						tf.forEach(function ($this) {
							var wk = $this.closest('.js-wikit-tabbed').querySelectorAll('.wikit-tab');
							var activeTab = $this.querySelector('[aria-selected="true"]').getAttribute('href').split('#');
							var removeHidden = document.getElementById(activeTab[1]);
							$this.classList.remove('tablist--fix');
							wk.forEach(function (wk) {
								wk.setAttribute('hidden', 'hidden');
							});
							if (removeHidden) {
								removeHidden.removeAttribute('hidden');
							}
						});
					}
				}, 250);
			});
		}
		Array.prototype.forEach.call(accordionTitle, function (at) {
			var btn = at;
			var target = at.nextElementSibling;
			btn.onclick = function () {
				var expanded = btn.getAttribute('aria-expanded') === 'true';
				btn.setAttribute('aria-expanded', !expanded);
				target.hidden = expanded;
				var tabTarget = target.getAttribute('id');
				var activeTab = document.querySelector((".tab-nav__link[href=\"#" + tabTarget + "\"]"));
				if (activeTab) {
					var tabList = activeTab.parentElement.parentElement;
					var tabs = tabList.querySelectorAll('a[role="tab"]');
					tabList.classList.add('tablist--fix');
					Array.prototype.forEach.call(tabs, function (tab) {
						tab.removeAttribute('aria-selected');
						tab.setAttribute('tabindex', '-1');
						tab.setAttribute('aria-selected', 'false');
					});
					activeTab.setAttribute('aria-selected', 'true');
					activeTab.removeAttribute('tabindex');
				}
				// Trigger resize event for sliders
				window.dispatchEvent(new Event('resize'));
			};
		});
	}
	var tabs = {
		init: init$5
	};

	var log$4 = bows_min("loadScripts");

	var log$5 = bows_min("tracking");

	//import $ from "jquery";


	var log$6 = bows_min("modal");
	var modalBtn = document.querySelectorAll("[data-modal]");
	var body = document.querySelector("body");
	var top = document.getElementById("top");
	var modalOverlay = document.getElementById("modal-overlay");
	var modalContent = document.querySelectorAll(".modal__content");



	var focusable = top.querySelectorAll(
		"a,button,input,select,iframe,video,audio, textarea"
	);

	var current_modal = "";

	// Allow Esc key to close modal
	function esc() {
		document.addEventListener("keydown", function (evt) {
			evt = evt || window.event;
			var isEscape = false;
			if ("key" in evt) {
				isEscape = evt.key == "Escape" || evt.key == "Esc";
			} else {
				isEscape = evt.keyCode == 27;
			}

			if (isEscape && body.classList.contains("modal-open")) {
				closeModal();
			}
		});
	}

	// Remove focus from anything in the #top div. Traps focus in the  modal
	function removeFocus() {
		focusable.forEach(function (elm) {
			elm.setAttribute("tabindex", "-1");
		});
	}

	// Allows focus outside of the modal.
	function enableFocus() {
		focusable.forEach(function (elm) {
			elm.removeAttribute("tabindex");
		});
	}

	function closeModal() {
		var player = current_modal.querySelector('video');
		var return_focus = document.querySelector(".return_focus");

		current_modal.classList.remove("modal--show");
		if (player) {
			player.pause();
		}
		setTimeout(function () {
			current_modal.setAttribute("aria-hidden", true);
			body.classList.remove("modal-open");
		}, 250);

		enableFocus();
		return_focus.focus();
		return_focus.classList.remove("return_focus");
	}

	function doModal(showSlide) {
		var player = current_modal.querySelector('video');

		body.classList.add("modal-open");

		current_modal.setAttribute("aria-hidden", false);
		current_modal.setAttribute("tabindex", "-1");

		setTimeout(function () {
			current_modal.classList.add("modal--show");
			window.wdgSliderToVisible(showSlide);
			modalHeight();
		}, 150);



		// Get elements to remove focus on, grab each time incase of AJAX loaded content
		focusable = top.querySelectorAll(
			"a,button,input,select,iframe,video,audio, textarea"
		);
		removeFocus();


		current_modal.focus();
		if (player) {
			player.play();
		}

	}

	function showModal() {
		var which = this.getAttribute("data-modal");
		current_modal = document.getElementById(which);
		if (current_modal !== undefined && current_modal !== null) {
			log$6(which);
			var showSlide = this.dataset.slideNumber;

			this.classList.add("return_focus");
			if (showSlide) {
				doModal(showSlide);
			} else {
				doModal(0);
			}

		}
	}

	function modalHeight() {
		var pageHeight = document.documentElement.clientHeight;
		modalContent.forEach(function (mh) {
			if (pageHeight <= (mh.clientHeight) + 40) {
				mh.parentNode.classList.add('modal__top');
			} else {
				mh.parentNode.classList.remove('modal__top');
			}
		});
	}

	function init$6() {
		log$6("modal init");
		if (modalBtn) {
			var modal_close = document.querySelectorAll(".modal__close");
			modal_close.forEach(function (btn) {
				btn.addEventListener("click", closeModal);
			});
			modalBtn.forEach(function (btn) {
				btn.addEventListener("click", showModal);
			});

			esc();

			var endResizeEvent;
			window.onresize = function () {
				clearTimeout(endResizeEvent);
				endResizeEvent = setTimeout(function () {
					// Run code here, resizing has "stopped"
					modalHeight();
				}, 100);
			};
		}


		if (modalOverlay) {
			// Closes modal if user clicks the overlay
			modalOverlay.addEventListener("click", closeModal);
		}

	}

	var modal = {
		init: init$6
	};

	var log$7 = bows_min("overlays");
	var grid = document.querySelector('.wdg_grid');
	var overlay = document.querySelector('.wdg_overlay');
	var local_grid = localStorage.getItem('wdg_grid');
	var local_overlay = localStorage.getItem('wdg_overlay');
	var local_overlay_bg = localStorage.getItem('wdg_overlay_bg');

	function show_grid() {
		if (grid) {
			grid.classList.add('wdg_grid--active');
			localStorage.setItem('wdg_grid', true);
		}
	}

	function hide_grid() {
		if (grid) {
			grid.classList.remove('wdg_grid--active');
			localStorage.removeItem('wdg_grid');
		}
	}

	function show_overlay() {
		if (overlay) {
			overlay.classList.add('wdg_overlay--active');
			localStorage.setItem('wdg_overlay', true);
			if (local_overlay_bg !== null) {
				overlay.style.backgroundPosition = local_overlay_bg;
			}
		}
	}

	function hide_overlay() {
		if (overlay) {
			overlay.classList.remove('wdg_overlay--active');
			localStorage.removeItem('wdg_overlay');
		}
	}

	window.wdg_debug_overlay_bgp = function (cords) {
		if (overlay) {
			if (cords) {
				overlay.style.backgroundPosition = cords;
				localStorage.setItem('wdg_overlay_bg', cords);
			} else {
				localStorage.removeItem('wdg_overlay_bg');
				overlay.removeAttribute('style');
			}

		}
	};

	window.wdg_debug_grid = function () {
		if (grid) {
			if (grid.classList.contains('wdg_grid--active') === true) {
				hide_grid();
			} else {
				show_grid();
			}
		}
	};

	window.wdg_debug_overlay = function () {
		if (overlay) {
			log$7(overlay);
			if (overlay.classList.contains('wdg_overlay--active') === true) {
				hide_overlay();
			} else {
				show_overlay();
			}
		}
	};

	window.wdg_debug_go = function () {
		wdg_debug_grid();
		wdg_debug_overlay();
	};

	window.wdg_debug_reset = function () {
		hide_overlay();
		hide_grid();
		localStorage.removeItem('wdg_overlay_bg');
	};

	function init$7() {
		log$7(overlay);
		log$7(grid);
		if (overlay === null) {
			var divOverlay = document.createElement('div');
			divOverlay.classList.add('wdg_overlay');
			document.body.append(divOverlay);

			overlay = document.querySelector('.wdg_overlay');

		}

		if (grid === null) {
			var divGrid = document.createElement('div');
			divGrid.classList.add('wdg_grid');
			document.body.append(divGrid);
			grid = document.querySelector('.wdg_grid');
		}

		if (local_grid === true || local_grid === 'true') {
			show_grid();
		}

		if (local_overlay === true || local_overlay === 'true') {
			show_overlay();
		}
	}

	var debugFrontend = {
		init: init$7
	};

	var headroom = createCommonjsModule(function (module, exports) {
	/*!
	 * headroom.js v0.11.0 - Give your page some headroom. Hide your header until you need it
	 * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
	 * License: MIT
	 */

	(function (global, factory) {
	   module.exports = factory() ;
	}(commonjsGlobal, function () {
	  function isBrowser() {
	    return typeof window !== "undefined";
	  }

	  /**
	   * Used to detect browser support for adding an event listener with options
	   * Credit: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
	   */
	  function passiveEventsSupported() {
	    var supported = false;

	    try {
	      var options = {
	        // eslint-disable-next-line getter-return
	        get passive() {
	          supported = true;
	        }
	      };
	      window.addEventListener("test", options, options);
	      window.removeEventListener("test", options, options);
	    } catch (err) {
	      supported = false;
	    }

	    return supported;
	  }

	  function isSupported() {
	    return !!(
	      isBrowser() &&
	      function() {}.bind &&
	      "classList" in document.documentElement &&
	      Object.assign &&
	      Object.keys &&
	      requestAnimationFrame
	    );
	  }

	  function isDocument(obj) {
	    return obj.nodeType === 9; // Node.DOCUMENT_NODE === 9
	  }

	  function isWindow(obj) {
	    // `obj === window` or `obj instanceof Window` is not sufficient,
	    // as the obj may be the window of an iframe.
	    return obj && obj.document && isDocument(obj.document);
	  }

	  function windowScroller(win) {
	    var doc = win.document;
	    var body = doc.body;
	    var html = doc.documentElement;

	    return {
	      /**
	       * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/
	       * @return {Number} the scroll height of the document in pixels
	       */
	      scrollHeight: function() {
	        return Math.max(
	          body.scrollHeight,
	          html.scrollHeight,
	          body.offsetHeight,
	          html.offsetHeight,
	          body.clientHeight,
	          html.clientHeight
	        );
	      },

	      /**
	       * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript
	       * @return {Number} the height of the viewport in pixels
	       */
	      height: function() {
	        return win.innerHeight || html.clientHeight || body.clientHeight;
	      },

	      /**
	       * Gets the Y scroll position
	       * @return {Number} pixels the page has scrolled along the Y-axis
	       */
	      scrollY: function() {
	        if (win.pageYOffset !== undefined) {
	          return win.pageYOffset;
	        }

	        return (html || body.parentNode || body).scrollTop;
	      }
	    };
	  }

	  function elementScroller(element) {
	    return {
	      /**
	       * @return {Number} the scroll height of the element in pixels
	       */
	      scrollHeight: function() {
	        return Math.max(
	          element.scrollHeight,
	          element.offsetHeight,
	          element.clientHeight
	        );
	      },

	      /**
	       * @return {Number} the height of the element in pixels
	       */
	      height: function() {
	        return Math.max(element.offsetHeight, element.clientHeight);
	      },

	      /**
	       * Gets the Y scroll position
	       * @return {Number} pixels the element has scrolled along the Y-axis
	       */
	      scrollY: function() {
	        return element.scrollTop;
	      }
	    };
	  }

	  function createScroller(element) {
	    return isWindow(element) ? windowScroller(element) : elementScroller(element);
	  }

	  /**
	   * @param element EventTarget
	   */
	  function trackScroll(element, options, callback) {
	    var isPassiveSupported = passiveEventsSupported();
	    var rafId;
	    var scrolled = false;
	    var scroller = createScroller(element);
	    var lastScrollY = scroller.scrollY();
	    var details = {};

	    function update() {
	      var scrollY = Math.round(scroller.scrollY());
	      var height = scroller.height();
	      var scrollHeight = scroller.scrollHeight();

	      // reuse object for less memory churn
	      details.scrollY = scrollY;
	      details.lastScrollY = lastScrollY;
	      details.direction = scrollY > lastScrollY ? "down" : "up";
	      details.distance = Math.abs(scrollY - lastScrollY);
	      details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;
	      details.top = scrollY <= options.offset;
	      details.bottom = scrollY + height >= scrollHeight;
	      details.toleranceExceeded =
	        details.distance > options.tolerance[details.direction];

	      callback(details);

	      lastScrollY = scrollY;
	      scrolled = false;
	    }

	    function handleScroll() {
	      if (!scrolled) {
	        scrolled = true;
	        rafId = requestAnimationFrame(update);
	      }
	    }

	    var eventOptions = isPassiveSupported
	      ? { passive: true, capture: false }
	      : false;

	    element.addEventListener("scroll", handleScroll, eventOptions);
	    update();

	    return {
	      destroy: function() {
	        cancelAnimationFrame(rafId);
	        element.removeEventListener("scroll", handleScroll, eventOptions);
	      }
	    };
	  }

	  function normalizeTolerance(t) {
	    return t === Object(t) ? t : { down: t, up: t };
	  }

	  /**
	   * UI enhancement for fixed headers.
	   * Hides header when scrolling down
	   * Shows header when scrolling up
	   * @constructor
	   * @param {DOMElement} elem the header element
	   * @param {Object} options options for the widget
	   */
	  function Headroom(elem, options) {
	    options = options || {};
	    Object.assign(this, Headroom.options, options);
	    this.classes = Object.assign({}, Headroom.options.classes, options.classes);

	    this.elem = elem;
	    this.tolerance = normalizeTolerance(this.tolerance);
	    this.initialised = false;
	    this.frozen = false;
	  }
	  Headroom.prototype = {
	    constructor: Headroom,

	    /**
	     * Start listening to scrolling
	     * @public
	     */
	    init: function() {
	      if (Headroom.cutsTheMustard && !this.initialised) {
	        this.addClass("initial");
	        this.initialised = true;

	        // defer event registration to handle browser
	        // potentially restoring previous scroll position
	        setTimeout(
	          function(self) {
	            self.scrollTracker = trackScroll(
	              self.scroller,
	              { offset: self.offset, tolerance: self.tolerance },
	              self.update.bind(self)
	            );
	          },
	          100,
	          this
	        );
	      }

	      return this;
	    },

	    /**
	     * Destroy the widget, clearing up after itself
	     * @public
	     */
	    destroy: function() {
	      this.initialised = false;
	      Object.keys(this.classes).forEach(this.removeClass, this);
	      this.scrollTracker.destroy();
	    },

	    /**
	     * Unpin the element
	     * @public
	     */
	    unpin: function() {
	      if (this.hasClass("pinned") || !this.hasClass("unpinned")) {
	        this.addClass("unpinned");
	        this.removeClass("pinned");

	        if (this.onUnpin) {
	          this.onUnpin.call(this);
	        }
	      }
	    },

	    /**
	     * Pin the element
	     * @public
	     */
	    pin: function() {
	      if (this.hasClass("unpinned")) {
	        this.addClass("pinned");
	        this.removeClass("unpinned");

	        if (this.onPin) {
	          this.onPin.call(this);
	        }
	      }
	    },

	    /**
	     * Freezes the current state of the widget
	     * @public
	     */
	    freeze: function() {
	      this.frozen = true;
	      this.addClass("frozen");
	    },

	    /**
	     * Re-enables the default behaviour of the widget
	     * @public
	     */
	    unfreeze: function() {
	      this.frozen = false;
	      this.removeClass("frozen");
	    },

	    top: function() {
	      if (!this.hasClass("top")) {
	        this.addClass("top");
	        this.removeClass("notTop");

	        if (this.onTop) {
	          this.onTop.call(this);
	        }
	      }
	    },

	    notTop: function() {
	      if (!this.hasClass("notTop")) {
	        this.addClass("notTop");
	        this.removeClass("top");

	        if (this.onNotTop) {
	          this.onNotTop.call(this);
	        }
	      }
	    },

	    bottom: function() {
	      if (!this.hasClass("bottom")) {
	        this.addClass("bottom");
	        this.removeClass("notBottom");

	        if (this.onBottom) {
	          this.onBottom.call(this);
	        }
	      }
	    },

	    notBottom: function() {
	      if (!this.hasClass("notBottom")) {
	        this.addClass("notBottom");
	        this.removeClass("bottom");

	        if (this.onNotBottom) {
	          this.onNotBottom.call(this);
	        }
	      }
	    },

	    shouldUnpin: function(details) {
	      var scrollingDown = details.direction === "down";

	      return scrollingDown && !details.top && details.toleranceExceeded;
	    },

	    shouldPin: function(details) {
	      var scrollingUp = details.direction === "up";

	      return (scrollingUp && details.toleranceExceeded) || details.top;
	    },

	    addClass: function(className) {
	      this.elem.classList.add.apply(
	        this.elem.classList,
	        this.classes[className].split(" ")
	      );
	    },

	    removeClass: function(className) {
	      this.elem.classList.remove.apply(
	        this.elem.classList,
	        this.classes[className].split(" ")
	      );
	    },

	    hasClass: function(className) {
	      return this.classes[className].split(" ").every(function(cls) {
	        return this.classList.contains(cls);
	      }, this.elem);
	    },

	    update: function(details) {
	      if (details.isOutOfBounds) {
	        // Ignore bouncy scrolling in OSX
	        return;
	      }

	      if (this.frozen === true) {
	        return;
	      }

	      if (details.top) {
	        this.top();
	      } else {
	        this.notTop();
	      }

	      if (details.bottom) {
	        this.bottom();
	      } else {
	        this.notBottom();
	      }

	      if (this.shouldUnpin(details)) {
	        this.unpin();
	      } else if (this.shouldPin(details)) {
	        this.pin();
	      }
	    }
	  };

	  /**
	   * Default options
	   * @type {Object}
	   */
	  Headroom.options = {
	    tolerance: {
	      up: 0,
	      down: 0
	    },
	    offset: 0,
	    scroller: isBrowser() ? window : null,
	    classes: {
	      frozen: "headroom--frozen",
	      pinned: "headroom--pinned",
	      unpinned: "headroom--unpinned",
	      top: "headroom--top",
	      notTop: "headroom--not-top",
	      bottom: "headroom--bottom",
	      notBottom: "headroom--not-bottom",
	      initial: "headroom"
	    }
	  };

	  Headroom.cutsTheMustard = isSupported();

	  return Headroom;

	}));
	});

	var hoverintent = function(el, onOver, onOut) {
	  var x, y, pX, pY;
	  var mouseOver = false;
	  var focused = false;
	  var h = {},
	    state = 0,
	    timer = 0;

	  var options = {
	    sensitivity: 7,
	    interval: 100,
	    timeout: 0,
	    handleFocus: false
	  };

	  function delay(el, e) {
	    if (timer) { timer = clearTimeout(timer); }
	    state = 0;
	    return focused ? undefined : onOut.call(el, e);
	  }

	  function tracker(e) {
	    x = e.clientX;
	    y = e.clientY;
	  }

	  function compare(el, e) {
	    if (timer) { timer = clearTimeout(timer); }
	    if ((Math.abs(pX - x) + Math.abs(pY - y)) < options.sensitivity) {
	      state = 1;
	      return focused ? undefined : onOver.call(el, e);
	    } else {
	      pX = x;
	      pY = y;
	      timer = setTimeout(function() {
	        compare(el, e);
	      }, options.interval);
	    }
	  }

	  // Public methods
	  h.options = function(opt) {
	    var focusOptionChanged = opt.handleFocus !== options.handleFocus;
	    options = Object.assign({}, options, opt);
	    if (focusOptionChanged) {
	      options.handleFocus ? addFocus() : removeFocus();
	    }
	    return h;
	  };

	  function dispatchOver(e) {
	    mouseOver = true;
	    if (timer) { timer = clearTimeout(timer); }
	    el.removeEventListener('mousemove', tracker, false);

	    if (state !== 1) {
	      pX = e.clientX;
	      pY = e.clientY;

	      el.addEventListener('mousemove', tracker, false);

	      timer = setTimeout(function() {
	        compare(el, e);
	      }, options.interval);
	    }

	    return this;
	  }

	  function dispatchOut(e) {
	    mouseOver = false;
	    if (timer) { timer = clearTimeout(timer); }
	    el.removeEventListener('mousemove', tracker, false);

	    if (state === 1) {
	      timer = setTimeout(function() {
	        delay(el, e);
	      }, options.timeout);
	    }

	    return this;
	  }

	  function dispatchFocus(e) {
	    if (!mouseOver) {
	      focused = true;
	      onOver.call(el, e);
	    }
	  }

	  function dispatchBlur(e) {
	    if (!mouseOver && focused) {
	      focused = false;
	      onOut.call(el, e);
	    }
	  }

	  function addFocus() {
	    el.addEventListener('focus', dispatchFocus, false);
	    el.addEventListener('blur', dispatchBlur, false);
	  }

	  function removeFocus() {
	    el.removeEventListener('focus', dispatchFocus, false);
	    el.removeEventListener('blur', dispatchBlur, false);
	  }

	  h.remove = function() {
	    if (!el) { return; }
	    el.removeEventListener('mouseover', dispatchOver, false);
	    el.removeEventListener('mouseout', dispatchOut, false);
	    removeFocus();
	  };

	  if (el) {
	    el.addEventListener('mouseover', dispatchOver, false);
	    el.addEventListener('mouseout', dispatchOut, false);
	  }

	  return h;
	};

	// import debug from 'bows/dist/bows.min.js';

	// const log = debug("overlays");

	/*
	No jQuery necessary.
	Thanks to Dan's StackOverflow answer for this:
	http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport
	*/

	function isElementInViewport(el) {
	  var rect = el.getBoundingClientRect();
	  return (
	    rect.top >= 0 &&
	    rect.left >= 0 &&
	    rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
	    rect.right <= (window.innerWidth || document.documentElement.clientWidth)
	  );
	}

	function isAnyPartOfElementInViewport(el) {

	  var rect = el.getBoundingClientRect();
	  // DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, bottom: 108, left: 8 }
	  var windowHeight = (window.innerHeight || document.documentElement.clientHeight);
	  var windowWidth = (window.innerWidth || document.documentElement.clientWidth);

	  // http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap
	  var vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);
	  var horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);

	  return (vertInView && horInView);
	}


	var inViewport = {
	  isElementInViewport: isElementInViewport,
	  isAnyPartOfElementInViewport: isAnyPartOfElementInViewport
	};

	// import $ from "jquery";

	//const log = debug("navigation");
	var body$1 = document.body;

	var top$1 = document.getElementById("top");
	var header = document.getElementById('header');
	var search = document.getElementById('search__input');

	var navMainBtn = document.querySelector('.header__toggle-btn--menu');
	var mobileSubNavButton = document.querySelectorAll('.nav__menu-button--level-1');
	var topLevelButton = document.querySelectorAll('.nav__menu-button--level-0');
	var topLevelLink = document.querySelectorAll('.nav__menu-link[data-level="0"]');
	var childMenus = document.querySelectorAll('.nav__menu-item--level-0.nav__menu-item--children');


	var searchBtn = document.querySelectorAll('.header__toggle-btn--search');
	var searchCloseBtn = document.querySelector('.search__close');

	var headerMenus = document.getElementById('headerMenus');
	var secondaryNav = document.querySelector('.nav--secondary');

	var isSafari = !!navigator.userAgent.match(/safari/i) && !navigator.userAgent.match(/chrome/i) && typeof document.body.style.webkitFilter !== "undefined" && !window.chrome;
	if (isSafari) {
	  body$1.classList.add('isSafari');
	}



	// headroom variables
	var headroomActive = false;
	var nav = document.getElementById('header');
	var headroom$1 = new headroom(nav, {
	  offset: 60,
	  onPin: function () {
	    body$1.classList.remove('headroom-inactive');
	  },
	  onUnpin: function () {
	    body$1.classList.add('headroom-inactive');
	  },
	  onNotTop: function () {
	    body$1.classList.remove('search-open', 'search-opened');
	  }
	});



	var focusable$1 = top$1.querySelectorAll(
	  "a,button,input,select,iframe,video,audio, textarea"
	);

	function enableFocus$1() {
	  focusable$1.forEach(function (elm) {
	    elm.removeAttribute("tabindex");
	  });
	}

	function returnFocus(doFocus) {
	  var returnFocusElm = document.querySelector('.return-focus');
	  if (returnFocusElm !== null) {
	    if (doFocus !== false) {
	      returnFocusElm.focus();
	    }
	    returnFocusElm.classList.remove('return-focus');
	  }
	}

	function closeAllSubNav() {
	  mobileSubNavButton.forEach(function (msb) {
	    closeSubMenu(msb);
	  });
	}

	function openMenu() {

	  // focusable = top.querySelectorAll(
	  // 	"a,button,input,select,iframe,video,audio, textarea"
	  // );

	  // removeFocus();

	  // focusable = header.querySelectorAll(
	  // 	"a,button,input,select,iframe,video,audio, textarea"
	  // );
	  // enableFocus();

	  body$1.classList.add('menu-opened');
	  body$1.classList.add('menu-open');
	  //headerMenus.setAttribute('tabindex', '-1');
	  setTimeout(function () {

	    var firstItem = headerMenus.querySelector('a');
	    firstItem.focus();
	  }, 500);
	}

	function closeMenu() {
	  var ariaExpanded = header.querySelectorAll('[aria-expanded]');
	  ariaExpanded.forEach(function (ae) {
	    ae.setAttribute('aria-expanded', false);
	  });

	  enableFocus$1();
	  body$1.classList.remove('menu-open');
	  body$1.classList.remove('menu-opened');
	  // setTimeout(() => {
	  // 	body.classList.remove('menu-opened');
	  // }, 5);

	  returnFocus();

	  var nmbo = document.querySelectorAll('.nav__menu-button--open');
	  nmbo.forEach(function (el) {
	    closeSubMenu(el);
	  });

	}

	function setReturnFocus($this) {
	  returnFocus(false);
	  $this.classList.add('return-focus');
	}


	function toggleMenu() {
	  if (body$1.classList.contains('menu-opened') === false) {
	    shouldCloseSearch();
	    setReturnFocus(this);
	    openMenu();
	  } else {
	    closeMenu();
	  }
	}


	function esc$1() {
	  document.addEventListener("keydown", function (evt) {
	    evt = evt || window.event;
	    var isEscape = false;
	    if ("key" in evt) {
	      isEscape = evt.key == "Escape" || evt.key == "Esc";
	    } else {
	      isEscape = evt.keyCode == 27;
	    }

	    if (isEscape && body$1.classList.contains('menu-opened') === true) {
	      closeMenu();
	    }
	    if (isEscape && body$1.classList.contains('search-opened') === true) {
	      closeSearch();
	    }
	  });
	}


	function subMenuOpen(el, time) {

	  el.classList.add('nav__submenu--visible');
	  setTimeout(function () {
	    el.classList.add('nav__submenu--active');
	  }, time);
	}

	function subMenuClose(el, time) {
	  el.classList.remove('nav__submenu--visible');
	  setTimeout(function () {
	    el.classList.remove('nav__submenu--active');
	  }, time);
	}

	function openSubMenu(el) {

	  var navItem = el.closest('.nav__menu-item');
	  var nextSubmenu = navItem.querySelector('.nav__submenu');
	  var nextNavmenu = navItem.querySelector('.nav__menu');
	  var prevSibling = el.previousElementSibling;

	  el.classList.add('nav__menu-button--open');
	  navItem.classList.add('nav__menu-item--open');

	  prevSibling.setAttribute('aria-expanded', true);
	  prevSibling.classList.add('nav__menu-link--active');

	  if (nextSubmenu) {
	    subMenuOpen(nextSubmenu, 5);
	  } else if (nextNavmenu) {
	    subMenuOpen(nextNavmenu, 5);
	  }
	}

	function closeSubMenu(el) {
	  // let thisParent = this.parentNode;
	  if (el !== undefined) {
	    el.classList.remove('nav__menu-button--open');
	    var navItem = el.closest('.nav__menu-item');
	    var nextSubmenu = navItem.querySelector('.nav__submenu');
	    var prevSibling = el.previousElementSibling;

	    navItem.classList.remove('nav__menu-item--open');

	    prevSibling.setAttribute('aria-expanded', false);
	    prevSibling.classList.remove('nav__menu-link--active');

	    var nextSibling = el.nextElementSibling;

	    if (nextSibling !== null) {
	      subMenuClose(nextSibling, 5);
	    } else if (nextSubmenu) {
	      subMenuClose(nextSubmenu, 5);
	    }
	  }
	}


	function toggleSubMenu() {
	  if (this.classList.contains('nav__menu-button--open') === false) {
	    if (body$1.clientWidth >= 1200) {
	      closeAllSubNav();
	    }
	    openSubMenu(this);

	  } else {
	    closeSubMenu(this);
	  }
	}


	function closeTopLevel(all, $this) {
	  if (document.body.clientWidth >= 1200 && all !== false) {
	    childMenus.forEach(function (el) {
	      var btn = el.querySelector('.nav__menu-button--level-0');
	      var subMenu = el.querySelector('.nav__submenu');
	      if (btn) {
	        btn.classList.remove('nav__menu-button--open');
	      }
	      if (subMenu) {
	        subMenu.classList.remove('nav__submenu--visible');
	        subMenu.classList.remove('nav__submenu--active');
	      }
	    });
	  } else {
	    var subMenu = $this.closest('li').querySelector('.nav__submenu');
	    $this.previousElementSibling.setAttribute('aria-expanded', false);
	    $this.classList.remove('nav__menu-button--open');
	    if (subMenu) {
	      subMenu.classList.remove('nav__submenu--visible');
	      setTimeout(function () {
	        subMenu.classList.remove('nav__submenu--active');
	      }, 10);
	    }
	  }
	}

	function openTopLevel($this) {
	  var subMenu = $this.closest('li').querySelector('.nav__submenu');
	  $this.previousElementSibling.setAttribute('aria-expanded', true);
	  $this.classList.add('nav__menu-button--open');
	  if (subMenu) {
	    subMenu.classList.add('nav__submenu--visible');
	    setTimeout(function () {
	      subMenu.classList.add('nav__submenu--active');
	    }, 10);
	  }
	}

	function toggleTopMenu() {
	  if (this.classList.contains('nav__menu-button--open')) {
	    closeTopLevel(false, this);
	  } else {
	    if (document.body.clientWidth >= 1200) {
	      closeTopLevel(true);
	    }
	    openTopLevel(this);
	    shouldCloseSearch();
	  }

	}


	function openSearch() {
	  body$1.classList.add('search-opened');
	  setTimeout(function () {
	    body$1.classList.add('search-open');
	  }, 100);
	  setTimeout(function () {
	    search.focus();
	  }, 800);

	}

	function shouldCloseSearch() {
	  if (body$1.classList.contains('search-opened') === true) {
	    closeSearch(false);
	  }
	}

	function closeSearch(doReturnFocus) {
	  body$1.classList.remove('search-open');

	  setTimeout(function () {
	    body$1.classList.add('search-closing');
	  }, 100);
	  setTimeout(function () {
	    body$1.classList.remove('search-opened');
	    body$1.classList.remove('search-closing');
	  }, 500);

	  if (doReturnFocus !== false) {
	    returnFocus();
	  }
	}

	function toggleSearch() {
	  if (body$1.classList.contains('search-opened') === false) {
	    if (body$1.classList.contains('menu-opened') === true) {
	      closeMenu();
	    }
	    if (document.body.clientWidth >= 1200) {
	      closeTopLevel();
	    }
	    setReturnFocus(this);
	    openSearch();
	  } else {
	    closeSearch();
	  }

	}


	function itemHoverIntent(element, theClass, visClass, time) {
	  var opts = {
	    timeout: time
	  };

	  element.forEach(function (elem) {
	    var hoverListener = hoverintent(elem,
	      function () {
	        if (document.body.clientWidth >= 1200) {
	          closeTopLevel();
	          closeSearch();
	        }
	        elem.classList.add(visClass);
	        setTimeout(function () {
	          elem.classList.add(theClass);
	        }, 100);
	      },
	      function () {
	        elem.classList.remove(theClass);
	        setTimeout(function () {
	          elem.classList.remove(visClass);
	          closeAllSubNav();
	        }, 100);
	      }).options(opts);
	  });
	}


	function is_touch_device$1() {
	  return (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0));
	}

	var alertContent = document.querySelector('.alert-content');
	//let alertHeight = alertContent.offsetHeight;
	function stickyHeaderAlert() {
	  if (headroomActive === false) {
	    if (inViewport.isAnyPartOfElementInViewport(alertContent) === false) {
	      headroom$1.init();
	      headroomActive = true;
	      body$1.classList.add('header-sticky');
	      nav.removeAttribute('style');
	    }

	  } else {
	    if (inViewport.isAnyPartOfElementInViewport(alertContent) === true) {
	      headroom$1.destroy();
	      headroomActive = false;
	      body$1.classList.remove('header-sticky');
	      nav.style.top = alertContent.offsetHeight + 'px';
	    }
	  }

	}

	function init$8() {
	  var navMenuItem0 = document.querySelectorAll('.nav--primary .nav__menu-item--level-0.nav__menu-item--children');

	  if (!is_touch_device$1()) {
	    itemHoverIntent(navMenuItem0, 'nav__menu-item--active', 'nav__menu-item--visible', 200);
	  }

	  if (topLevelLink) {
	    topLevelLink.forEach(function (tll) {
	      tll.addEventListener('focus', function () {
	        if (document.body.clientWidth >= 1200) {
	          closeMenu();
	        }
	      });
	    });

	  }
	  if (navMainBtn) {
	    navMainBtn.addEventListener('click', toggleMenu);
	  }

	  if (topLevelButton) {
	    topLevelButton.forEach(function (tlb) {
	      tlb.addEventListener('click', toggleTopMenu);
	    });
	  }

	  if (mobileSubNavButton) {
	    mobileSubNavButton.forEach(function (msnb) {
	      msnb.addEventListener('click', toggleSubMenu);
	    });
	  }

	  if (searchBtn) {
	    searchBtn.forEach(function (sb) {
	      sb.addEventListener('click', toggleSearch);
	    });
	  }
	  if (searchCloseBtn) {
	    searchCloseBtn.addEventListener('click', closeSearch);
	  }


	  if (navMainBtn || searchBtn) {
	    esc$1();
	  }



	  if (nav) {
	    if (alertContent) {
	      stickyHeaderAlert();
	    } else {
	      headroomActive = true;
	      headroom$1.init();
	    }
	    window.addEventListener('scroll', function () {
	      if (alertContent) {
	        stickyHeaderAlert();
	      }
	    });

	    if (body$1.clientWidth < 1200) {

	      //find last item in #headerMenus and on blur return to toggle-btn with class return-focus (less than 1200)
	      secondaryNav.lastElementChild.addEventListener('blur', function () {
	        navMainBtn.focus();
	      });
	    }

	  }

	}

	var navigation = {
	  init: init$8
	};

	/*
		*   This content is licensed according to the W3C Software License at
		*   https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
		*
		*   Simple accordion pattern example
		*  https://www.w3.org/TR/wai-aria-practices/#accordion
		* https://www.w3.org/TR/wai-aria-practices/examples/accordion/accordion.html
		*/



	function init$9() {

		Array.prototype.slice.call(document.querySelectorAll('.js-wikit-accordion')).forEach(function (accordion) {

			// Allow for multiple accordion sections to be expanded at the same time
			var allowMultiple = accordion.hasAttribute('data-allow-multiple');
			// Allow for each toggle to both open and close individually
			//(`allowMultiple = ${allowMultiple}`)

			var allowToggle = (allowMultiple) ? allowMultiple : accordion.hasAttribute('data-allow-toggle');
			//console.log(`allowToggle = ${allowToggle}`);
			// Create the array of toggle elements for the accordion group
			var triggers = Array.prototype.slice.call(accordion.querySelectorAll('.js-wikit-accordion__trigger'));

			//panels var from original code
			//var panels = Array.prototype.slice.call(accordion.querySelectorAll('.js-wikit-accordion__panel'));


			accordion.addEventListener('click', function (event) {
				event.stopPropagation();
				var target = event.target;
				if (event.target.nodeName !== 'A' && event.target.closest('a') === null) {
					event.preventDefault();
				}
				//(target);
				if (target.classList.contains('js-wikit-accordion__trigger') && target.classList.contains('js-wikit-accordion__trigger--animating') === false) {
					// Check if the current toggle is expanded.
					// if (target.classList.contains('js-wikit-accordion__trigger--animating')) { return false; }
					var isExpanded = target.getAttribute('aria-expanded') == 'true';
					var active = accordion.querySelector('[aria-expanded="true"]');
					target.classList.add('js-wikit-accordion__trigger--animating');
					setTimeout(function () {
						target.classList.remove('js-wikit-accordion__trigger--animating');
						console.log('removed Class');
					}, 1000);
					// without allowMultiple, close the open accordion
					if (!allowMultiple && active && active !== target) {

						// Set the expanded state on the triggering element
						active.setAttribute('aria-expanded', 'false');
						active.closest('.js-wikit-accordion__item').classList.remove('is-expanded');
						// Hide the accordion sections, using aria-controls to specify the desired section
						document.getElementById(active.getAttribute('aria-controls')).classList.remove('js-wikit-accordion__panel--open');

						setTimeout(function () {
							document.getElementById(active.getAttribute('aria-controls')).setAttribute('hidden', '');
						}, 1000);


						// When toggling is not allowed, clean up disabled state
						if (!allowToggle) {
							active.removeAttribute('aria-disabled');
						}
					}

					if (!isExpanded) {
						// Set the expanded state on the triggering element
						target.setAttribute('aria-expanded', 'true');
						target.closest('.js-wikit-accordion__item').classList.add('is-expanded');
						// Hide the accordion sections, using aria-controls to specify the desired section

						document.getElementById(target.getAttribute('aria-controls')).removeAttribute('hidden');
						setTimeout(function () {
							document.getElementById(target.getAttribute('aria-controls')).classList.add('js-wikit-accordion__panel--open');
						}, 10);
						// If toggling is not allowed, set disabled state on trigger
						if (!allowToggle) {
							target.setAttribute('aria-disabled', 'true');
						}
					}
					else if (allowToggle && isExpanded) {
						// Set the expanded state on the triggering element
						target.setAttribute('aria-expanded', 'false');
						target.closest('.js-wikit-accordion__item').classList.remove('is-expanded');
						// Hide the accordion sections, using aria-controls to specify the desired section
						// document.getElementById(target.getAttribute('aria-controls')).setAttribute('hidden', '');

						document.getElementById(target.getAttribute('aria-controls')).classList.remove('js-wikit-accordion__panel--open');
						setTimeout(function () {
							document.getElementById(target.getAttribute('aria-controls')).setAttribute('hidden', '');
						}, 1000);

					}

					event.preventDefault();
				}
			});

			// Bind keyboard behaviors on the main accordion container
			accordion.addEventListener('keydown', function (event) {
				var target = event.target;
				var key = event.which.toString();

				var isExpanded = target.getAttribute('aria-expanded') == 'true';
				var allowToggle = (allowMultiple) ? allowMultiple : accordion.hasAttribute('data-allow-toggle');

				// 33 = Page Up, 34 = Page Down
				var ctrlModifier = (event.ctrlKey && key.match(/33|34/));
				// console.log('target is ' + target);
				// Is this coming from an accordion header?
				if (target !== undefined && target !== null) {
					if (target.classList.contains('js-wikit-accordion__trigger')) {
						// Up/ Down arrow and Control + Page Up/ Page Down keyboard operations
						// 38 = Up, 40 = Down
						if (key.match(/38|40/) || ctrlModifier) {
							var index = triggers.indexOf(target);
							var direction = (key.match(/34|40/)) ? 1 : -1;
							var length = triggers.length;
							var newIndex = (index + length + direction) % length;

							triggers[newIndex].focus();

							event.preventDefault();
						}
						else if (key.match(/35|36/)) {
							// 35 = End, 36 = Home keyboard operations
							switch (key) {
								// Go to first accordion
								case '36':
									triggers[0].focus();
									break;
								// Go to last accordion
								case '35':
									triggers[triggers.length - 1].focus();
									break;
							}
							event.preventDefault();

						}

					}
				}
			});

			// These are used to style the accordion when one of the buttons has focus
			accordion.querySelectorAll('.js-wikit-accordion__trigger').forEach(function (trigger) {

				trigger.addEventListener('focus', function (event) {
					accordion.classList.add('focus');
				});

				trigger.addEventListener('blur', function (event) {
					accordion.classList.remove('focus');
				});

			});

			// Minor setup: will set disabled state, via aria-disabled, to an
			// expanded/ active accordion which is not allowed to be toggled close
			if (!allowToggle) {
				// Get the first expanded/ active accordion
				var expanded = accordion.querySelector('[aria-expanded="true"]');

				// If an expanded/ active accordion is found, disable
				if (expanded) {
					expanded.setAttribute('aria-disabled', 'true');
				}
			}

		});


	}
	var accordion = {
		init: init$9
	};

	var alertContent$1 = document.querySelector('.alert-content');
	var header$1 = document.getElementById('header');
	var closeBtn = document.querySelectorAll('.alert__close');
	var notification = document.querySelectorAll('.alert');
	var body$2 = document.querySelector('body');

	var log$8 = bows_min("alerts");

	function alertHeight() {
		if (header$1 && alertContent$1) {
			var alertContentHeight = alertContent$1.offsetHeight;
			if (window.scrollY <= alertContentHeight) {
				header$1.style.top = alertContentHeight + 'px';
			}
		}
	}

	function closeAlert() {
		//close alert, get new height of alertContent & change header top position
		//localStorage to remember what's been closed
		var currentAlert = this.closest('.alert');


		log$8(currentAlert.dataset.alert);

		currentAlert.style.display = 'none';

		if (currentAlert.dataset.alert) {
			localStorage.setItem(currentAlert.dataset.alert, true);
		}

		setTimeout(function () {
			alertHeight();
		}, 100);

	}

	window.clearAlert = function () {
		localStorage.removeItem('primary');
		log$8('alerts cleared');
	};


	function init$a() {
		if (alertContent$1) {

			//header top position
			alertHeight();

			closeBtn.forEach(function (btn) {
				btn.addEventListener("click", closeAlert);
			});

			notification.forEach(function (notification) {
				if (notification.dataset.alert && localStorage.getItem(notification.dataset.alert)) {
					notification.style.display = 'none';
					alertHeight();
				} else {
					body$2.classList.add('has-alerts');
					notification.style.display = 'block';
					alertHeight();
				}
			});


			window.addEventListener('resize', alertHeight);

		}
	}

	var alert = {
		init: init$a, alertHeight: alertHeight
	};

	var log$9 = bows_min("editor");

	var btnNeedsSVG = document.querySelectorAll('.arrow-link-editor');
	var btnSVG = "<svg width=\"16\" height=\"16\"><use xlink:href=\"#arrow-link\" href=\"#arrow-link\"></use></svg>";

	var btnNeedsSpan = document.querySelectorAll('[class*="btn--arrow"]');

	var heading = document.querySelector('.page-header__title');

	var wrapTable = document.querySelectorAll('.wysiwyg table');



	function addBtnSVG() {
		btnNeedsSVG.forEach(function (element) {
			var html = '<span>' + element.innerHTML + '</span>' + btnSVG;
			element.innerHTML = html;
		});
	}

	function addBtnSpan() {
		btnNeedsSpan.forEach(function (element) {
			var html = '<span>' + element.innerHTML + '</span>';
			element.innerHTML = html;
		});
	}

	function addArcSpan() {
		if (!heading) { return; }
		var newarcHeading = heading.innerHTML.split('@');
		if (newarcHeading.length > 1) {
			heading.innerHTML = newarcHeading[0] + '<span>@' + newarcHeading[1] + '</span>';
		}
	}

	function addTableWrap() {
		wrapTable.forEach(function (element) {
			var html = '<div class="table-wrap">' + element.outerHTML + '</div>';
			element.outerHTML = html;
		});
	}

	function init$b() {
		if (btnNeedsSVG !== null) {
			addBtnSVG();
		}
		if (btnNeedsSpan !== null) {
			addBtnSpan();
		}

		if (wrapTable !== null) {
			addTableWrap();
		}

		addArcSpan();

	}

	var editor = {
		init: init$b
	};

	var evEmitter = createCommonjsModule(function (module) {
	/**
	 * EvEmitter v1.1.0
	 * Lil' event emitter
	 * MIT License
	 */

	/* jshint unused: true, undef: true, strict: true */

	( function( global, factory ) {
	  // universal module definition
	  /* jshint strict: false */ /* globals define, module, window */
	  if (  module.exports ) {
	    // CommonJS - Browserify, Webpack
	    module.exports = factory();
	  } else {
	    // Browser globals
	    global.EvEmitter = factory();
	  }

	}( typeof window != 'undefined' ? window : commonjsGlobal, function() {

	function EvEmitter() {}

	var proto = EvEmitter.prototype;

	proto.on = function( eventName, listener ) {
	  if ( !eventName || !listener ) {
	    return;
	  }
	  // set events hash
	  var events = this._events = this._events || {};
	  // set listeners array
	  var listeners = events[ eventName ] = events[ eventName ] || [];
	  // only add once
	  if ( listeners.indexOf( listener ) == -1 ) {
	    listeners.push( listener );
	  }

	  return this;
	};

	proto.once = function( eventName, listener ) {
	  if ( !eventName || !listener ) {
	    return;
	  }
	  // add event
	  this.on( eventName, listener );
	  // set once flag
	  // set onceEvents hash
	  var onceEvents = this._onceEvents = this._onceEvents || {};
	  // set onceListeners object
	  var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
	  // set flag
	  onceListeners[ listener ] = true;

	  return this;
	};

	proto.off = function( eventName, listener ) {
	  var listeners = this._events && this._events[ eventName ];
	  if ( !listeners || !listeners.length ) {
	    return;
	  }
	  var index = listeners.indexOf( listener );
	  if ( index != -1 ) {
	    listeners.splice( index, 1 );
	  }

	  return this;
	};

	proto.emitEvent = function( eventName, args ) {
	  var listeners = this._events && this._events[ eventName ];
	  if ( !listeners || !listeners.length ) {
	    return;
	  }
	  // copy over to avoid interference if .off() in listener
	  listeners = listeners.slice(0);
	  args = args || [];
	  // once stuff
	  var onceListeners = this._onceEvents && this._onceEvents[ eventName ];

	  for ( var i=0; i < listeners.length; i++ ) {
	    var listener = listeners[i];
	    var isOnce = onceListeners && onceListeners[ listener ];
	    if ( isOnce ) {
	      // remove listener
	      // remove before trigger to prevent recursion
	      this.off( eventName, listener );
	      // unset once flag
	      delete onceListeners[ listener ];
	    }
	    // trigger listener
	    listener.apply( this, args );
	  }

	  return this;
	};

	proto.allOff = function() {
	  delete this._events;
	  delete this._onceEvents;
	};

	return EvEmitter;

	}));
	});

	var imagesloaded = createCommonjsModule(function (module) {
	/*!
	 * imagesLoaded v4.1.4
	 * JavaScript is all like "You images are done yet or what?"
	 * MIT License
	 */

	( function( window, factory ) {  // universal module definition

	  /*global define: false, module: false, require: false */

	  if (  module.exports ) {
	    // CommonJS
	    module.exports = factory(
	      window,
	      evEmitter
	    );
	  } else {
	    // browser global
	    window.imagesLoaded = factory(
	      window,
	      window.EvEmitter
	    );
	  }

	})( typeof window !== 'undefined' ? window : commonjsGlobal,

	// --------------------------  factory -------------------------- //

	function factory( window, EvEmitter ) {

	var $ = window.jQuery;
	var console = window.console;

	// -------------------------- helpers -------------------------- //

	// extend objects
	function extend( a, b ) {
	  for ( var prop in b ) {
	    a[ prop ] = b[ prop ];
	  }
	  return a;
	}

	var arraySlice = Array.prototype.slice;

	// turn element or nodeList into an array
	function makeArray( obj ) {
	  if ( Array.isArray( obj ) ) {
	    // use object if already an array
	    return obj;
	  }

	  var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
	  if ( isArrayLike ) {
	    // convert nodeList to array
	    return arraySlice.call( obj );
	  }

	  // array of single index
	  return [ obj ];
	}

	// -------------------------- imagesLoaded -------------------------- //

	/**
	 * @param {Array, Element, NodeList, String} elem
	 * @param {Object or Function} options - if function, use as callback
	 * @param {Function} onAlways - callback function
	 */
	function ImagesLoaded( elem, options, onAlways ) {
	  // coerce ImagesLoaded() without new, to be new ImagesLoaded()
	  if ( !( this instanceof ImagesLoaded ) ) {
	    return new ImagesLoaded( elem, options, onAlways );
	  }
	  // use elem as selector string
	  var queryElem = elem;
	  if ( typeof elem == 'string' ) {
	    queryElem = document.querySelectorAll( elem );
	  }
	  // bail if bad element
	  if ( !queryElem ) {
	    console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );
	    return;
	  }

	  this.elements = makeArray( queryElem );
	  this.options = extend( {}, this.options );
	  // shift arguments if no options set
	  if ( typeof options == 'function' ) {
	    onAlways = options;
	  } else {
	    extend( this.options, options );
	  }

	  if ( onAlways ) {
	    this.on( 'always', onAlways );
	  }

	  this.getImages();

	  if ( $ ) {
	    // add jQuery Deferred object
	    this.jqDeferred = new $.Deferred();
	  }

	  // HACK check async to allow time to bind listeners
	  setTimeout( this.check.bind( this ) );
	}

	ImagesLoaded.prototype = Object.create( EvEmitter.prototype );

	ImagesLoaded.prototype.options = {};

	ImagesLoaded.prototype.getImages = function() {
	  this.images = [];

	  // filter & find items if we have an item selector
	  this.elements.forEach( this.addElementImages, this );
	};

	/**
	 * @param {Node} element
	 */
	ImagesLoaded.prototype.addElementImages = function( elem ) {
	  // filter siblings
	  if ( elem.nodeName == 'IMG' ) {
	    this.addImage( elem );
	  }
	  // get background image on element
	  if ( this.options.background === true ) {
	    this.addElementBackgroundImages( elem );
	  }

	  // find children
	  // no non-element nodes, #143
	  var nodeType = elem.nodeType;
	  if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
	    return;
	  }
	  var childImgs = elem.querySelectorAll('img');
	  // concat childElems to filterFound array
	  for ( var i=0; i < childImgs.length; i++ ) {
	    var img = childImgs[i];
	    this.addImage( img );
	  }

	  // get child background images
	  if ( typeof this.options.background == 'string' ) {
	    var children = elem.querySelectorAll( this.options.background );
	    for ( i=0; i < children.length; i++ ) {
	      var child = children[i];
	      this.addElementBackgroundImages( child );
	    }
	  }
	};

	var elementNodeTypes = {
	  1: true,
	  9: true,
	  11: true
	};

	ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
	  var style = getComputedStyle( elem );
	  if ( !style ) {
	    // Firefox returns null if in a hidden iframe https://bugzil.la/548397
	    return;
	  }
	  // get url inside url("...")
	  var reURL = /url\((['"])?(.*?)\1\)/gi;
	  var matches = reURL.exec( style.backgroundImage );
	  while ( matches !== null ) {
	    var url = matches && matches[2];
	    if ( url ) {
	      this.addBackground( url, elem );
	    }
	    matches = reURL.exec( style.backgroundImage );
	  }
	};

	/**
	 * @param {Image} img
	 */
	ImagesLoaded.prototype.addImage = function( img ) {
	  var loadingImage = new LoadingImage( img );
	  this.images.push( loadingImage );
	};

	ImagesLoaded.prototype.addBackground = function( url, elem ) {
	  var background = new Background( url, elem );
	  this.images.push( background );
	};

	ImagesLoaded.prototype.check = function() {
	  var _this = this;
	  this.progressedCount = 0;
	  this.hasAnyBroken = false;
	  // complete if no images
	  if ( !this.images.length ) {
	    this.complete();
	    return;
	  }

	  function onProgress( image, elem, message ) {
	    // HACK - Chrome triggers event before object properties have changed. #83
	    setTimeout( function() {
	      _this.progress( image, elem, message );
	    });
	  }

	  this.images.forEach( function( loadingImage ) {
	    loadingImage.once( 'progress', onProgress );
	    loadingImage.check();
	  });
	};

	ImagesLoaded.prototype.progress = function( image, elem, message ) {
	  this.progressedCount++;
	  this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
	  // progress event
	  this.emitEvent( 'progress', [ this, image, elem ] );
	  if ( this.jqDeferred && this.jqDeferred.notify ) {
	    this.jqDeferred.notify( this, image );
	  }
	  // check if completed
	  if ( this.progressedCount == this.images.length ) {
	    this.complete();
	  }

	  if ( this.options.debug && console ) {
	    console.log( 'progress: ' + message, image, elem );
	  }
	};

	ImagesLoaded.prototype.complete = function() {
	  var eventName = this.hasAnyBroken ? 'fail' : 'done';
	  this.isComplete = true;
	  this.emitEvent( eventName, [ this ] );
	  this.emitEvent( 'always', [ this ] );
	  if ( this.jqDeferred ) {
	    var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
	    this.jqDeferred[ jqMethod ]( this );
	  }
	};

	// --------------------------  -------------------------- //

	function LoadingImage( img ) {
	  this.img = img;
	}

	LoadingImage.prototype = Object.create( EvEmitter.prototype );

	LoadingImage.prototype.check = function() {
	  // If complete is true and browser supports natural sizes,
	  // try to check for image status manually.
	  var isComplete = this.getIsImageComplete();
	  if ( isComplete ) {
	    // report based on naturalWidth
	    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
	    return;
	  }

	  // If none of the checks above matched, simulate loading on detached element.
	  this.proxyImage = new Image();
	  this.proxyImage.addEventListener( 'load', this );
	  this.proxyImage.addEventListener( 'error', this );
	  // bind to image as well for Firefox. #191
	  this.img.addEventListener( 'load', this );
	  this.img.addEventListener( 'error', this );
	  this.proxyImage.src = this.img.src;
	};

	LoadingImage.prototype.getIsImageComplete = function() {
	  // check for non-zero, non-undefined naturalWidth
	  // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671
	  return this.img.complete && this.img.naturalWidth;
	};

	LoadingImage.prototype.confirm = function( isLoaded, message ) {
	  this.isLoaded = isLoaded;
	  this.emitEvent( 'progress', [ this, this.img, message ] );
	};

	// ----- events ----- //

	// trigger specified handler for event type
	LoadingImage.prototype.handleEvent = function( event ) {
	  var method = 'on' + event.type;
	  if ( this[ method ] ) {
	    this[ method ]( event );
	  }
	};

	LoadingImage.prototype.onload = function() {
	  this.confirm( true, 'onload' );
	  this.unbindEvents();
	};

	LoadingImage.prototype.onerror = function() {
	  this.confirm( false, 'onerror' );
	  this.unbindEvents();
	};

	LoadingImage.prototype.unbindEvents = function() {
	  this.proxyImage.removeEventListener( 'load', this );
	  this.proxyImage.removeEventListener( 'error', this );
	  this.img.removeEventListener( 'load', this );
	  this.img.removeEventListener( 'error', this );
	};

	// -------------------------- Background -------------------------- //

	function Background( url, element ) {
	  this.url = url;
	  this.element = element;
	  this.img = new Image();
	}

	// inherit LoadingImage prototype
	Background.prototype = Object.create( LoadingImage.prototype );

	Background.prototype.check = function() {
	  this.img.addEventListener( 'load', this );
	  this.img.addEventListener( 'error', this );
	  this.img.src = this.url;
	  // check if image is already complete
	  var isComplete = this.getIsImageComplete();
	  if ( isComplete ) {
	    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
	    this.unbindEvents();
	  }
	};

	Background.prototype.unbindEvents = function() {
	  this.img.removeEventListener( 'load', this );
	  this.img.removeEventListener( 'error', this );
	};

	Background.prototype.confirm = function( isLoaded, message ) {
	  this.isLoaded = isLoaded;
	  this.emitEvent( 'progress', [ this, this.element, message ] );
	};

	// -------------------------- jQuery -------------------------- //

	ImagesLoaded.makeJQueryPlugin = function( jQuery ) {
	  jQuery = jQuery || window.jQuery;
	  if ( !jQuery ) {
	    return;
	  }
	  // set local variable
	  $ = jQuery;
	  // $().imagesLoaded()
	  $.fn.imagesLoaded = function( options, callback ) {
	    var instance = new ImagesLoaded( this, options, callback );
	    return instance.jqDeferred.promise( $(this) );
	  };
	};
	// try making plugin
	ImagesLoaded.makeJQueryPlugin();

	// --------------------------  -------------------------- //

	return ImagesLoaded;

	});
	});

	var log$a = bows_min("grid");


	function resizeGridItem(item) {
		if (document.querySelector(".grid")) {
			var grid = document.getElementsByClassName("grid")[0];
			var rowHeight = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-auto-rows')) || 20;
			var rowGap = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-row-gap'));
			var rowSpan = Math.ceil((item.querySelector('.grid__content').getBoundingClientRect().height + rowGap) / (rowHeight + rowGap));
			item.style.gridRowEnd = "span " + rowSpan;
		}
	}

	function resizeAllGridItems() {
		var allItems = document.getElementsByClassName("grid__item");
		for (var x = 0; x < allItems.length; x++) {
			resizeGridItem(allItems[x]);
		}
	}

	function resizeInstance(instance) {
		var item = instance.elements[0];
		resizeGridItem(item);
	}

	function init$c() {
		if (document.querySelector(".grid")) {

			resizeAllGridItems();
			window.addEventListener("resize", resizeAllGridItems);

			var allItems = document.getElementsByClassName("grid__item");
			for (var x = 0; x < allItems.length; x++) {
				imagesloaded(allItems[x], resizeInstance);
			}
		}
		Drupal.behaviors.tpc_grid = {
			attach: function (context, settings) {

				if (context.querySelector(".grid")) {

					resizeAllGridItems();
					window.addEventListener("resize", resizeAllGridItems);

					var allItems = context.getElementsByClassName("grid__item");
					for (var x = 0; x < allItems.length; x++) {
						imagesloaded(allItems[x], resizeInstance);
					}
				}
			}
		};
	}

	var grid$1 = {
		init: init$c
	};

	/**
	 * lodash (Custom Build) <https://lodash.com/>
	 * Build: `lodash modularize exports="npm" -o ./`
	 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
	 * Released under MIT license <https://lodash.com/license>
	 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
	 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
	 */

	/** Used as the `TypeError` message for "Functions" methods. */
	var FUNC_ERROR_TEXT = 'Expected a function';

	/** Used as references for various `Number` constants. */
	var NAN = 0 / 0;

	/** `Object#toString` result references. */
	var symbolTag = '[object Symbol]';

	/** Used to match leading and trailing whitespace. */
	var reTrim = /^\s+|\s+$/g;

	/** Used to detect bad signed hexadecimal string values. */
	var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

	/** Used to detect binary string values. */
	var reIsBinary = /^0b[01]+$/i;

	/** Used to detect octal string values. */
	var reIsOctal = /^0o[0-7]+$/i;

	/** Built-in method references without a dependency on `root`. */
	var freeParseInt = parseInt;

	/** Detect free variable `global` from Node.js. */
	var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;

	/** Detect free variable `self`. */
	var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

	/** Used as a reference to the global object. */
	var root = freeGlobal || freeSelf || Function('return this')();

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/**
	 * Used to resolve the
	 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
	 * of values.
	 */
	var objectToString = objectProto.toString;

	/* Built-in method references for those with the same name as other `lodash` methods. */
	var nativeMax = Math.max,
	    nativeMin = Math.min;

	/**
	 * Gets the timestamp of the number of milliseconds that have elapsed since
	 * the Unix epoch (1 January 1970 00:00:00 UTC).
	 *
	 * @static
	 * @memberOf _
	 * @since 2.4.0
	 * @category Date
	 * @returns {number} Returns the timestamp.
	 * @example
	 *
	 * _.defer(function(stamp) {
	 *   console.log(_.now() - stamp);
	 * }, _.now());
	 * // => Logs the number of milliseconds it took for the deferred invocation.
	 */
	var now = function() {
	  return root.Date.now();
	};

	/**
	 * Creates a debounced function that delays invoking `func` until after `wait`
	 * milliseconds have elapsed since the last time the debounced function was
	 * invoked. The debounced function comes with a `cancel` method to cancel
	 * delayed `func` invocations and a `flush` method to immediately invoke them.
	 * Provide `options` to indicate whether `func` should be invoked on the
	 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
	 * with the last arguments provided to the debounced function. Subsequent
	 * calls to the debounced function return the result of the last `func`
	 * invocation.
	 *
	 * **Note:** If `leading` and `trailing` options are `true`, `func` is
	 * invoked on the trailing edge of the timeout only if the debounced function
	 * is invoked more than once during the `wait` timeout.
	 *
	 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
	 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
	 *
	 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
	 * for details over the differences between `_.debounce` and `_.throttle`.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Function
	 * @param {Function} func The function to debounce.
	 * @param {number} [wait=0] The number of milliseconds to delay.
	 * @param {Object} [options={}] The options object.
	 * @param {boolean} [options.leading=false]
	 *  Specify invoking on the leading edge of the timeout.
	 * @param {number} [options.maxWait]
	 *  The maximum time `func` is allowed to be delayed before it's invoked.
	 * @param {boolean} [options.trailing=true]
	 *  Specify invoking on the trailing edge of the timeout.
	 * @returns {Function} Returns the new debounced function.
	 * @example
	 *
	 * // Avoid costly calculations while the window size is in flux.
	 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
	 *
	 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
	 * jQuery(element).on('click', _.debounce(sendMail, 300, {
	 *   'leading': true,
	 *   'trailing': false
	 * }));
	 *
	 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
	 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
	 * var source = new EventSource('/stream');
	 * jQuery(source).on('message', debounced);
	 *
	 * // Cancel the trailing debounced invocation.
	 * jQuery(window).on('popstate', debounced.cancel);
	 */
	function debounce(func, wait, options) {
	  var lastArgs,
	      lastThis,
	      maxWait,
	      result,
	      timerId,
	      lastCallTime,
	      lastInvokeTime = 0,
	      leading = false,
	      maxing = false,
	      trailing = true;

	  if (typeof func != 'function') {
	    throw new TypeError(FUNC_ERROR_TEXT);
	  }
	  wait = toNumber(wait) || 0;
	  if (isObject(options)) {
	    leading = !!options.leading;
	    maxing = 'maxWait' in options;
	    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
	    trailing = 'trailing' in options ? !!options.trailing : trailing;
	  }

	  function invokeFunc(time) {
	    var args = lastArgs,
	        thisArg = lastThis;

	    lastArgs = lastThis = undefined;
	    lastInvokeTime = time;
	    result = func.apply(thisArg, args);
	    return result;
	  }

	  function leadingEdge(time) {
	    // Reset any `maxWait` timer.
	    lastInvokeTime = time;
	    // Start the timer for the trailing edge.
	    timerId = setTimeout(timerExpired, wait);
	    // Invoke the leading edge.
	    return leading ? invokeFunc(time) : result;
	  }

	  function remainingWait(time) {
	    var timeSinceLastCall = time - lastCallTime,
	        timeSinceLastInvoke = time - lastInvokeTime,
	        result = wait - timeSinceLastCall;

	    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
	  }

	  function shouldInvoke(time) {
	    var timeSinceLastCall = time - lastCallTime,
	        timeSinceLastInvoke = time - lastInvokeTime;

	    // Either this is the first call, activity has stopped and we're at the
	    // trailing edge, the system time has gone backwards and we're treating
	    // it as the trailing edge, or we've hit the `maxWait` limit.
	    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
	      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
	  }

	  function timerExpired() {
	    var time = now();
	    if (shouldInvoke(time)) {
	      return trailingEdge(time);
	    }
	    // Restart the timer.
	    timerId = setTimeout(timerExpired, remainingWait(time));
	  }

	  function trailingEdge(time) {
	    timerId = undefined;

	    // Only invoke if we have `lastArgs` which means `func` has been
	    // debounced at least once.
	    if (trailing && lastArgs) {
	      return invokeFunc(time);
	    }
	    lastArgs = lastThis = undefined;
	    return result;
	  }

	  function cancel() {
	    if (timerId !== undefined) {
	      clearTimeout(timerId);
	    }
	    lastInvokeTime = 0;
	    lastArgs = lastCallTime = lastThis = timerId = undefined;
	  }

	  function flush() {
	    return timerId === undefined ? result : trailingEdge(now());
	  }

	  function debounced() {
	    var time = now(),
	        isInvoking = shouldInvoke(time);

	    lastArgs = arguments;
	    lastThis = this;
	    lastCallTime = time;

	    if (isInvoking) {
	      if (timerId === undefined) {
	        return leadingEdge(lastCallTime);
	      }
	      if (maxing) {
	        // Handle invocations in a tight loop.
	        timerId = setTimeout(timerExpired, wait);
	        return invokeFunc(lastCallTime);
	      }
	    }
	    if (timerId === undefined) {
	      timerId = setTimeout(timerExpired, wait);
	    }
	    return result;
	  }
	  debounced.cancel = cancel;
	  debounced.flush = flush;
	  return debounced;
	}

	/**
	 * Checks if `value` is the
	 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
	 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
	 * @example
	 *
	 * _.isObject({});
	 * // => true
	 *
	 * _.isObject([1, 2, 3]);
	 * // => true
	 *
	 * _.isObject(_.noop);
	 * // => true
	 *
	 * _.isObject(null);
	 * // => false
	 */
	function isObject(value) {
	  var type = typeof value;
	  return !!value && (type == 'object' || type == 'function');
	}

	/**
	 * Checks if `value` is object-like. A value is object-like if it's not `null`
	 * and has a `typeof` result of "object".
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
	 * @example
	 *
	 * _.isObjectLike({});
	 * // => true
	 *
	 * _.isObjectLike([1, 2, 3]);
	 * // => true
	 *
	 * _.isObjectLike(_.noop);
	 * // => false
	 *
	 * _.isObjectLike(null);
	 * // => false
	 */
	function isObjectLike(value) {
	  return !!value && typeof value == 'object';
	}

	/**
	 * Checks if `value` is classified as a `Symbol` primitive or object.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
	 * @example
	 *
	 * _.isSymbol(Symbol.iterator);
	 * // => true
	 *
	 * _.isSymbol('abc');
	 * // => false
	 */
	function isSymbol(value) {
	  return typeof value == 'symbol' ||
	    (isObjectLike(value) && objectToString.call(value) == symbolTag);
	}

	/**
	 * Converts `value` to a number.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to process.
	 * @returns {number} Returns the number.
	 * @example
	 *
	 * _.toNumber(3.2);
	 * // => 3.2
	 *
	 * _.toNumber(Number.MIN_VALUE);
	 * // => 5e-324
	 *
	 * _.toNumber(Infinity);
	 * // => Infinity
	 *
	 * _.toNumber('3.2');
	 * // => 3.2
	 */
	function toNumber(value) {
	  if (typeof value == 'number') {
	    return value;
	  }
	  if (isSymbol(value)) {
	    return NAN;
	  }
	  if (isObject(value)) {
	    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
	    value = isObject(other) ? (other + '') : other;
	  }
	  if (typeof value != 'string') {
	    return value === 0 ? value : +value;
	  }
	  value = value.replace(reTrim, '');
	  var isBinary = reIsBinary.test(value);
	  return (isBinary || reIsOctal.test(value))
	    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
	    : (reIsBadHex.test(value) ? NAN : +value);
	}

	var lodash_debounce = debounce;

	// import $ from "jquery";
	var log$b = bows_min("filter");

	var filters = document.querySelectorAll('.facet');



	function filterToggle($this) {
	  $this.classList.toggle('facet--active');
	}

	function doFilters() {
	  filters.forEach(function (filter) {
	    var btn = filter.querySelector('.facet__toggler');

	    if (btn) {
	      btn.addEventListener('click', function () {
	        filterToggle(filter);
	      });

	    }

	    filter.addEventListener('mouseleave', function () {
	      log$b('mouseleave');
	      this.classList.remove('facet--active');
	    });

	    filter.addEventListener('focusout', function () {
	      var this$1 = this;

	      setTimeout(function () {
	        var focused = filter.querySelector(':focus');
	        if (focused === null) {
	          this$1.classList.remove('facet--active');
	        }
	      }, 250);

	    });

	  });
	}

	var getSiblings = function (elem) {
	  return Array.prototype.filter.call(elem.parentNode.children, function (sibling) {
	    return sibling !== elem;
	  });
	};

	function removeOpen($this) {
	  //if any sibling has open attribute, remove it
	  var siblings = getSiblings($this);
	  siblings.forEach(function (sib) {
	    if (sib.hasAttribute('open')) {
	      sib.removeAttribute('open');
	      sib.children[0].setAttribute('aria-expanded', 'false');
	      sib.children[0].setAttribute('aria-pressed', 'false');
	    }
	  });
	}

	function closeFilter(dfilters) {
	  dfilters.forEach(function (elem) {
	    //log(elem);
	    var btn = elem.querySelector('summary');
	    log$b(btn);
	    if (btn) {
	      btn.addEventListener('click', function () {
	        removeOpen(elem);
	      });
	    }

	    if (elem.hasAttribute('open')) {
	      elem.removeAttribute('open');
	    }

	    elem.addEventListener('mouseleave', function () {
	      log$b('mouseleave');
	      // this.removeAttribute('open');
	      // this.children[0].setAttribute('aria-expanded', 'false')
	      // this.children[0].setAttribute('aria-pressed', 'false');
	    });

	    elem.addEventListener('focusout', function () {
	      var this$1 = this;

	      log$b('focusout');
	      log$b(document.body.clientWidth);
	      if (document.body.clientWidth >= 768) {
	        setTimeout(function () {
	          var focused = elem.querySelector(':focus');
	          if (focused === null) {
	            this$1.removeAttribute('open');
	            this$1.children[0].setAttribute('aria-expanded', 'false');
	            this$1.children[0].setAttribute('aria-pressed', 'false');
	          }
	        }, 250);
	      }
	    });
	  });
	}

	// Show an element
	var show = function (elem) {
	  elem.style.display = 'block';
	};

	// Hide an element
	var hide = function (elem) {
	  if (document.body.clientWidth <= 1024) {
	    elem.style.display = 'none';
	  }
	};

	// Toggle element visibility
	var toggle = function (elem) {
	  if (document.body.clientWidth <= 1024) {
	    // If the element is visible, hide it
	    if (window.getComputedStyle(elem).display === 'block') {
	      hide(elem);
	      return;
	    }

	    // Otherwise, show it
	    show(elem);
	  }

	};



	function makeLegendBtn(legendBtn) {
	  if (document.body.clientWidth <= 1024) {
	    legendBtn.forEach(function (lb) {
	      lb.setAttribute('role', 'button');
	      lb.setAttribute('tabindex', '0');
	    });
	  } else {
	    legendBtn.forEach(function (lb) {
	      lb.removeAttribute('role', 'button');
	      lb.nextElementSibling.removeAttribute('style');
	    });

	  }
	}

	var formDate = document.querySelector('.form--date .js-form-item-field-event-date-value');
	var formDateLabel;
	var formDateInput;


	function getDate(msDate) {
	  var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
	  var newDate = new Date(msDate);
	  var convertedDate = new Date(newDate.getTime() - newDate.getTimezoneOffset() * -60000);
	  var finalDate = convertedDate.toLocaleDateString("en-US", options);
	  log$b(formDate);
	  log$b(formDateInput);
	  formDateLabel.innerText = finalDate;
	  formDateLabel.classList.add('show');
	  getDay(finalDate);
	}

	function getDay(finalDate) {
	  var day = finalDate.split(',', 1);
	  var formDateHours = document.querySelectorAll('.tpc-hours');
	  formDateHours.forEach(function (fdh) {
	    fdh.setAttribute('hidden', true);
	    if (day[0] === fdh.dataset.tpcHours) {
	      fdh.removeAttribute('hidden');
	    }
	  });
	}





	function init$d() {
	  if (filters) {
	    doFilters();
	  }

	  if (formDate) {

	    formDateLabel = formDate.querySelector('label');
	    formDateInput = formDate.querySelector('.form-date');
	    log$b(formDateInput.value);
	    log$b(formDateLabel);
	    // Get local timezone offset
	    var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds
	    // adjust the time for the local timezone and then put the results into ISO format
	    formDateInput.value = (new Date(Date.now() - tzoffset)).toISOString().slice(0, 10);
	    //log(formDateInput.value);
	    var msDate = Date.parse(formDateInput.value);
	    getDate(msDate);

	  }


	  Drupal.behaviors.tpc_filter = {
	    attach: function (context, settings) {
	      /**
	       * FIXME:
	       *
	       * Two possible improvements needed:
	       * 1) context is a DOM element representing the area being attached. On page load this is
	       *    the body (or html?!) element. On ajax, it's just the <div> being inserted. Best
	       *    practice is to use context for querySelectorAll to ensure you're not altering content
	       *    outside of the HTML being initialized. Example: `context.querySelectorAll('.facet');`
	       * 2) you may need to wrap some/all of this code in a "run once" check for actions which
	       *    do not need to occur every time.
	       */


	      var dfilters = context.querySelectorAll('.form--filters details.js-form-wrapper');

	      var eventFeatures = context.querySelector('[data-drupal-selector="edit-field-event-features-value"] .fieldset-wrapper');
	      var eventType = context.querySelector('[data-drupal-selector="edit-field-event-type-target-id-1"] .form-checkboxes');
	      var startDate = context.querySelector('.js-form-item-field-event-date-value-1');
	      var fromDate = context.querySelector('[data-drupal-selector="edit-field-event-date-value-1"]');
	      var endDate = context.querySelector('.js-form-item-field-event-date-end-value');


	      var filterForm = document.querySelector('.form--filters');
	      var filterSubmit = context.querySelector('.js-form-submit');
	      formDate = context.querySelector('.form--date .js-form-item-field-event-date-value');

	      if (filterForm) {
	        var filterBtn = document.createElement('button');
	        filterBtn.className = 'btn btn--primary-fill filter__mobile-btn';
	        filterBtn.innerHTML = '<span>Filter</span>';
	        filterForm.prepend(filterBtn);
	        var elem = document.querySelector('.bef-exposed-form');

	        var wrapper = document.createElement('div');
	        wrapper.className = 'filter__wrap';
	        wrapper.innerHTML = '<span>Filter</span>';
	        var filterCloseBtn = document.createElement('button');
	        filterCloseBtn.className = 'filter__close';
	        filterCloseBtn.innerHTML = '<span class="a11y">Close Filter</span><svg class="toggle-close" width="20" height="20"><use xlink:href="#icon-close" href="#icon-close"></use></svg>';

	        if (elem) {
	          elem.parentNode.insertBefore(wrapper, elem);
	          wrapper.appendChild(filterCloseBtn);
	          wrapper.appendChild(elem);
	        }
	        log$b(filterBtn);
	        if (filterBtn) {
	          filterBtn.addEventListener('click', function () {
	            document.body.classList.add('filter-open');
	          });
	        }

	        if (filterCloseBtn) {
	          filterCloseBtn.addEventListener('click', function () {
	            document.body.classList.remove('filter-open');
	          });
	        }

	        if (filterSubmit) {
	          filterSubmit.addEventListener('click', function () {
	            setTimeout(function () {
	              document.body.classList.remove('filter-open');
	            }, 1000);
	          });
	        }

	      }

	      if (dfilters) {
	        //log(dfilters);
	        closeFilter(dfilters);
	      }

	      if (eventType && eventFeatures) {
	        log$b(eventType);
	        eventFeatures.append(eventType);
	      }

	      if (startDate && endDate) {
	        log$b(startDate);
	        log$b(endDate);
	        if (fromDate) {
	          // Test value and set to today if not curently set
	          if ( fromDate.value == '' ) {
	            var date = new Date();
	            fromDate.value = date.toISOString().split('T')[0];
	          }
	        }

	        var dateWrap = document.createElement('fieldset');
	        dateWrap.className = 'form-item date-range form-wrapper';
	        dateWrap.innerHTML = '<legend><span class="fieldset-legend">Date Range</span></legend><div class="date-range__wrap"></div>';
	        var rangeWrap = dateWrap.querySelector('.date-range__wrap');
	        startDate.before(dateWrap);
	        rangeWrap.appendChild(startDate);
	        rangeWrap.appendChild(endDate);
	      }

	      var legendBtn;
	      setTimeout(function () {
	        legendBtn = context.querySelectorAll('.form--filters legend');

	        if (legendBtn) {
	          log$b(legendBtn);
	          legendBtn.forEach(function (lb) {
	            lb.addEventListener('click', function () {
	              //log(this.nextElementSibling);
	              toggle(lb.nextElementSibling);
	            });

	            // Handle keydown events for keyboard users
	            lb.addEventListener('keydown', function (e) {
	              log$b('test');
	              log$b(e);

	              if (e.key == 'Enter' || e.keyCode == 13) {
	                toggle(lb.nextElementSibling);

	              }
	            });

	            // lb.addEventListener('mouseleave', function () {
	            // 	hide(lb.nextElementSibling);
	            // });
	          });
	          makeLegendBtn(legendBtn);
	          window.addEventListener('resize', lodash_debounce(function () {
	            makeLegendBtn(legendBtn);
	          }, 100));
	        }
	      }, 200);





	      if (formDate) {

	        formDateLabel = formDate.querySelector('label');
	        formDateInput = formDate.querySelector('.form-date');

	        log$b(formDateInput.value);
	        log$b(formDateLabel);
	        var msDate = Date.parse(formDateInput.value);
	        getDate(msDate);

	        formDateInput.addEventListener('change', function (event) {
	          var msDate = Date.parse(event.target.value);
	          getDate(msDate);
	        });
	      }

	      //on page load set date value to today's date
	      //get today's date and pass in as label text
	      //on date change and after submission get new date and replace label text
	    }
	  };
	}

	var filter = {
	  init: init$d
	};

	var log$c = bows_min("general");

	function breadcrumbFix() {

	  var path = document.referrer.replace(window.location.origin, '').replace(/\/([^\/#?]*).*/, '$1');
	  var breadcrumb = document.getElementById('block-breadcrumbs').querySelector('.breadcrumb__item');
	  if (breadcrumb) {
	    var breadcrumb_link = breadcrumb.querySelector('a');
	    var breadcrumb_label = breadcrumb.querySelector('a span');
	    switch (path) {
	      case 'exhibitions-events':
	        breadcrumb_label.innerText = ' Exhibitions & Events';
	        breadcrumb_link.href = 'javascript:history.back()';
	        break;
	      case 'exhibitions':
	        breadcrumb_label.innerText = ' Exhibitions';
	        breadcrumb_link.href = 'javascript:history.back()';
	        break;
	      case 'events':
	        breadcrumb_label.innerText = ' Events';
	        breadcrumb_link.href = 'javascript:history.back()';
	        break;
	    }
	    if (breadcrumb.baseURI.includes('activity-4-10')) {
	      breadcrumb_label.innerText = ' What is Collecting?';
	      breadcrumb_link.href = 'collecting-interactive.html';
	    }
	  }
	}

	function init$e() {
	  if (document.body.classList.contains('page--event') || document.body.classList.contains('page-node-7629')) {
	    breadcrumbFix();
	  }
	}

	var general = {
	  init: init$e
	};

	var log$d = bows_min("custom-player");

	var customPlayer = function customPlayer() {
	  var this$1 = this;


	  log$d('_jwplayer.js constructor');

	  this.src = 'js/jwplayer.js';
	  this.key = "jgSneyZ8dP7DiA9RxDTM+Kb1bR2MCQiHyAsw1d9ro10=";
	  this.players = [];
	  this.init = false;

	  this.$videos = $$1('div.mmplayer');

	  log$d(this.$videos);

	  this.$videos.each(function (i, v) {
	    var data = $$1(v).data('playlist').replace(',]', ']');
	    log$d('data-' + i, data);
	    var playlist = JSON.parse(data);
	    var id = $$1(v).attr('id');
	    // log(id, playlist);
	    this$1.addPlayer({
	      id: id,
	      playlist: playlist
	    });
	  });

	};



	customPlayer.prototype.load = function load () {

	  log$d('load', this.init);

	  if (false === this.init) {
	    var self = this;
	    this.init = true;

	    log$d('loading -- only once!?');

	    var script = document.createElement('script');
	    script.onload = function () {
	      log$d('jwplayer.js loaded');
	      setTimeout(function () {
	        log$d(jwplayer, self.key);
	        jwplayer.key = self.key;
	        self.loadPlayer();
	      }, 500);
	    };
	    script.src = this.src;
	    document.head.appendChild(script); //or something of the likes

	  }
	};

	customPlayer.prototype.addPlayer = function addPlayer (obj) {
	  // log(obj);
	  this.players.push(obj);
	  this.load();
	};

	customPlayer.prototype.loadPlayer = function loadPlayer () {
	    var this$1 = this;

	  // let self = this;
	  log$d('loadPlayer', this.players.length);

	  if (this.players.length === 0) {
	    this.init = false;
	    return;
	  }

	  var item = this.players.shift();

	  // log('jw', jwplayer(item.id), item.id);

	  var player = jwplayer(item.id).setup({
	    playlist: item.playlist
	  }).on('play',function () {
	    log$d('Playback just started for: ' + item.id);
	    this$1.pauseOthers(item.id);
	  });

	  setTimeout(function () {
	    fitvid();
	    this$1.loadPlayer();
	  }, 500);

	};

	customPlayer.prototype.test = function test () {
	  console.log('test');
	};

	customPlayer.prototype.pauseOthers = function pauseOthers (id) {
	  log$d('pauseOthers', item.id);
	  var videos = document.querySelectorAll('.jwplayer');
	  for (var i = 0; i < videos.length; i++) {
	    if (id != videos[i].id) {
	      jwplayer(videos[i].id).pause(true);
	      // log('Pausing: ' + videos[i].id);
	    }
	  }
	};

	var $carousel = $$1('[data-slider="carousel"]');
	var log$e = bows_min("sliders:carousel");

	function setControls($self, $sn) {
	  var currentImageHeight = $self.find('img').height();
	  if ( currentImageHeight != 0 ) {
	    $sn.css('top', currentImageHeight / 2);
	  }
	}

	function sliderInit() {

	  $carousel.each(function () {
	    var $this = $$1(this);
	    var role = $this.attr('role');
	    var $carousel = $this.closest('.slider-contain');
	    var $sn = $carousel.find('.slider-nav');
	    var $sb = $carousel.find('.slider-nav__arrows');

	    if (role !== 'region') {
	      var $slider = $this.slick({
	        dots: false,
	        mobileFirst: true,
	        speed: 500,
	        infinite: false,
	        variableWidth: false,
	        slidesToShow: 1,
	        arrows: false,

	        slidesToScroll: 1,
	        touchThreshold: 20,
	        responsive: [
	          {
	            breakpoint: 767,
	            settings: {
	              slidesToShow: 1,
	              slidesToScroll: 1,
	              infinite: false,
	              variableWidth: true,
	              arrows: true,
	              appendArrows: $sb,
	              //appendArrows: appendArrowsTo
	            }
	          }
	        ]
	      });

	      setTimeout(function () {
	        setControls($this.find('.slick-current'), $sn);
	      }, 100);

	      $slider.on('afterChange', function (event, slick, currentSlide) {
	        setControls($this.find(("[data-slick-index=\"" + currentSlide + "\"]")), $sn);
	      });

	      $$1(window).on('resize', function () {
	        setTimeout(function () {
	          setControls($this.find('.slick-current'), $sn);
	        }, 100);
	      }).on('load', function () {
	        setControls($this.find('.slick-current'), $sn);
	      });
	    }
	  });
	}

	function init$f() {
	  if ($carousel.length) {
	    sliderInit();
	  }
	}

	var carousel = {
	  init: init$f
	};

	// Calendar view


	var $single = $$1('[data-slider="single"]');


	var $body = $$1('body');
	var log$f = bows_min("sliders:single-small");



	function sliderInit$1() {
		$single.each(function () {
			var $this = $$1(this);
			var role = $this.attr('role');
			var $singleslider = $this.closest('.single-slider');
			var prev = $singleslider.find('[data-direction="prev"]');
			var next = $singleslider.find('[data-direction="next"]');
			var slider = '';
			var total = $this.children().length;
			var totalSlides = $singleslider.find('.single-slider__total');
			var theCurrentSlide = $singleslider.find('.single-slider__current');


			if (total < 10) {
				total = '0' + total;
			}
			totalSlides.text(total);

			if (role !== 'region') {
				slider = $this.slick({
					dots: false,
					mobileFirst: true,
					speed: 500,
					infinite: true,
					arrows: false,
					slidesToShow: 1,
					slidesToScroll: 1
				});
				window.sliderArray.push(slider);
			}

			prev.on('click', function () {
				slider.slick('slickPrev');
			});
			next.on('click', function () {
				slider.slick('slickNext');
			});
			slider.on('afterChange', function (event, slick, currentSlide, nextSlide) {

				//currentSlide is undefined on init -- set it to 0 in this case (currentSlide is 0 based)
				var i = (currentSlide ? currentSlide : 0) + 1;
				if (i < 10) {
					i = '0' + i;
				}
				theCurrentSlide.text(i);
			});
		});


	}


	function init$g() {
		if ($single.length) {
			sliderInit$1();
		}
	}

	var single = {
		init: init$g
	};

	var log$g = bows_min("sliders:helper");
	window.sliderArray = [];

	window.wdgSliderToVisible = function (loadSlide) {
		window.sliderArray.forEach(function (slide) {
			var current = 0;
			if (loadSlide) {
				current = loadSlide;
			} else {
				current = slide.slick('slickCurrentSlide');
			}
			slide.slick('slickGoTo', current, true);
		});
	};
	function init$h() {
		log$g('SliderHelperInit');
	}

	var sliderHelper = {
		init: init$h
	};

	var $singleImage = $$1('[data-slider="single-image"]');


	var $body$1 = $$1('body');
	var log$h = bows_min("sliders:single-image");



	function sliderInit$2() {
		$singleImage.each(function () {
			var $this = $$1(this);
			var role = $this.attr('role');
			var $singleslider = $this.closest('.single-slider');
			var prev = $singleslider.find('[data-direction="prev"]');
			var next = $singleslider.find('[data-direction="next"]');
			var slider = '';

			if (role !== 'region') {
				slider = $this.slick({
					dots: false,
					mobileFirst: true,
					speed: 500,
					infinite: true,
					arrows: false,
					slidesToShow: 1,
					slidesToScroll: 1,
					centerMode: true,
					centerPadding: '20px',
					responsive: [
						{
							breakpoint: 767,
							settings: {
								arrows: true,
								infinite: true,
								centerMode: false
							}
						}
					]
				});
				window.sliderArray.push(slider);
			}

			// prev.on('click', function () {
			// 	slider.slick('slickPrev');
			// });
			// next.on('click', function () {
			// 	slider.slick('slickNext');
			// })
		});

	}


	function init$i() {
		if ($singleImage.length) {
			sliderInit$2();
		}
	}

	var singleImage = {
		init: init$i
	};

	var $testimonial = $$1('[data-slider="testimonial"]');


	var $body$2 = $$1('body');
	var log$i = bows_min("sliders:testimonial");



	function sliderInit$3() {
		$testimonial.each(function () {
			var $this = $$1(this);
			var role = $this.attr('role');
			var $testimonial = $this.closest('.testimonial-slider');
			var $sb = $testimonial.find('.slider-nav__arrows');
			var slider = '';

			if (role !== 'region') {
				slider = $this.slick({
					dots: false,
					mobileFirst: true,
					speed: 500,
					infinite: true,
					arrows: true,
					slidesToShow: 1,
					slidesToScroll: 1,
					appendArrows: $sb,
				});
				window.sliderArray.push(slider);
			}
		});

	}


	function init$j() {
		if ($testimonial.length) {
			sliderInit$3();
		}
	}

	var testimonial = {
		init: init$j
	};

	var $gallery = $$1('[data-slider="gallery"]');
	var log$j = bows_min("sliders:gallery");

	function setControls$1($self, $sn) {
	  var currentImageHeight = $self.find('img').height();
	  if ( currentImageHeight != 0 ) {
	    $sn.css('top', currentImageHeight / 2);
	  }
	}

	function slideWidth(img) {
	  img.forEach(function (img) {
	    if (img.parentElement.nextElementSibling != null) {
	      img.parentElement.nextElementSibling.setAttribute('style', 'max-width:' + img.clientWidth + 'px');
	    }
	  });
	}

	function sliderInit$4() {

	  $gallery.each(function () {
	    var $this = $$1(this);
	    var role = $this.attr('role');
	    var $gallery = $this.closest('.slider-gallery');
	    var $sn = $gallery.find('.slider-nav');
	    var $sb = $gallery.find('.slider-nav__arrows');
	    var $sd = $gallery.find('.slider-nav__dots');
	    var img = document.querySelectorAll('.slider-gallery__img img');
	    var $progressBar = $gallery.find('.slider-progress');
	    var $progressBarLabel = $gallery.find('.slider__label');

	    if (role !== 'region') {
	      var $slider = $this.slick({
	        dots: false,
	        mobileFirst: true,
	        speed: 500,
	        infinite: false,
	        variableWidth: false,
	        slidesToShow: 1,
	        arrows: false,
	        slidesToScroll: 1,
	        touchThreshold: 20,
	        responsive: [
	          {
	            breakpoint: 767,
	            settings: {
	              slidesToShow: 1,
	              slidesToScroll: 1,
	              infinite: false,
	              variableWidth: true,
	              arrows: true,
	              appendArrows: $sb,
	            }
	          }
	        ]
	      });



	      $slider.slickLightbox({
	        imageMaxHeight: 1,
	        background: 'rgba(0, 0, 0, .9)',
	        useHistoryApi: 'true',
	        caption: function (element, info) {
	          return jQuery(element).next('.slider-gallery_caption').html();
	        },
	        src: 'data-img',
	        itemSelector: '.slider-gallery__item img'
	      }).on({
	        'show.slickLightbox': function () {
	          $$1('.slick-lightbox-slick-img').wrap('<div class="slick-lightbox-slick-img-wrap"></div>');
	        }
	      });

	      setTimeout(function () {
	        setControls$1($this.find('.slick-current'), $sn);
	        slideWidth(img);
	      }, 100);

	      $slider.on('afterChange', function (event, slick, currentSlide) {
	        setControls$1($this.find(("[data-slick-index=\"" + currentSlide + "\"]")), $sn);
	      });

	      $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {
	        var calc = ((nextSlide) / (slick.slideCount - 1)) * 100;

	        $progressBar
	          .css('background-size', calc + '% 100%')
	          .attr('aria-valuenow', calc);

	        $progressBarLabel.text(calc + '% completed');
	      });

	      $$1(window).on('load', function () {
	        slideWidth(img);
	        setControls$1($this.find('.slick-current'), $sn);
	      });

	      $$1(window).on('resize', function () {
	        setTimeout(function () {
	          setControls$1($this.find('.slick-current'), $sn);
	          slideWidth(img);
	        }, 100);
	      }).on('load', function () {
	        setControls$1($this.find('.slick-current'), $sn);
	      });
	    }
	  });
	}

	function init$k() {
	  if ($gallery.length) {
	    sliderInit$4();
	  }
	}

	var gallery = {
	  init: init$k
	};

	var $featured = $$1('[data-slider="featured"]');

	var $body$3 = $$1('body');
	var log$k = bows_min("sliders:featured");


	function setControls$2($self, $sn) {
	  var currentImageHeight = $self.find('img').height();
	  // look for blank images. Featured images have a min height of 20px
	  if ( currentImageHeight > 20 ) {
	    $sn.css('top', currentImageHeight / 2);
	  }
	}

	function sliderInit$5() {

	  $featured.each(function () {
	    var $this = $$1(this);
	    var role = $this.attr('role');
	    var $featured = $this.closest('.slider-contain');
	    var $sn = $featured.find('.slider-nav');
	    var $sb = $featured.find('.slider-nav__arrows');

	    if (role !== 'region') {
	      var $slider = $this.slick({
	        dots: false,
	        mobileFirst: true,
	        speed: 500,
	        infinite: true,
	        variableWidth: false,
	        slidesToShow: 1,
	        arrows: true,
	        appendArrows: $sb,
	        slidesToScroll: 1,
	        touchThreshold: 20,
	        autoplay: true,
	        autoplayspeed: 6000,
	      });

	      setTimeout(function () {
	        setControls$2($this.find('.slick-current'), $sn);
	      }, 100);

	      $slider.on('afterChange', function (event, slick, currentSlide) {
	        setControls$2($this.find(("[data-slick-index=\"" + currentSlide + "\"]")), $sn);
	      });

	      $$1(window).on('resize', function () {
	        setTimeout(function () {
	          setControls$2($this.find('.slick-current'), $sn);
	        }, 100);
	      }).on('load', function () {
	        setControls$2($this.find('.slick-current'), $sn);
	      });
	    }
	  });
	}


	function init$l() {
	  if ($featured.length) {
	    sliderInit$5();
	  }
	}

	var featured = {
	  init: init$l
	};

	var $carousel$1 = $$1('[data-slider="social"]');
	var log$l = bows_min("sliders:social");

	function setControls$3($self, $sn) {
	  var currentImageHeight = $self.find('img').height();
	  if ( currentImageHeight != 0 ) {
	    $sn.css('top', currentImageHeight / 2);
	  }
	}

	function sliderInit$6() {

	  $carousel$1.each(function () {
	    var $this = $$1(this);
	    var role = $this.attr('role');
	    var $carousel = $this.closest('.slider-contain');
	    var $sn = $carousel.find('.slider-nav');
	    var $sb = $carousel.find('.slider-nav__arrows');

	    if (role !== 'region') {
	      var $slider = $this.slick({
	        dots: false,
	        mobileFirst: true,
	        speed: 500,
	        infinite: false,
	        variableWidth: false,
	        slidesToShow: 1,
	        arrows: false,

	        slidesToScroll: 1,
	        touchThreshold: 20,
	        responsive: [
	          {
	            breakpoint: 767,
	            settings: {
	              slidesToShow: 3,
	              slidesToScroll: 1,
	              infinite: false,
	              variableWidth: false,
	              arrows: true,
	              appendArrows: $sb,
	              //appendArrows: appendArrowsTo
	            }
	          }
	        ]
	      });

	      setTimeout(function () {
	        setControls$3($this.find('.slick-current'), $sn);
	      }, 100);

	      $slider.on('afterChange', function (event, slick, currentSlide) {
	        setControls$3($this.find(("[data-slick-index=\"" + currentSlide + "\"]")), $sn);
	      });

	      $$1(window).on('resize', function () {
	        setTimeout(function () {
	          setControls$3($this.find('.slick-current'), $sn);
	        }, 100);
	      }).on('load', function () {
	        setControls$3($this.find('.slick-current'), $sn);
	      });
	    }
	  });
	}

	function init$m() {
	  if ($carousel$1.length) {
	    sliderInit$6();
	  }
	}

	var social = {
	  init: init$m
	};

	var $singleSmall = $$1('[data-slider="single-small"]');
	var sliderInitiated = false;

	var $body$4 = $$1('body');
	var log$m = bows_min("sliders:single-small");

	function sliderReInit() {
		$singleSmall = $$1('[data-slider="single-small"]');
		sliderInit$7();
	}


	function sliderInit$7() {
		$singleSmall.each(function () {
			var $this = $$1(this);
			var role = $this.attr('role');
			var $singleSmall = $this.closest('.slider-contain');
			var $sb = $singleSmall.find('.slider-nav__arrows');

			if (role !== 'region' && $body$4.width() < 1024) {
				$this.slick({
					dots: false,
					mobileFirst: true,
					speed: 500,
					infinite: true,
					arrows: true,
					appendArrows: $sb,
					variableWidth: true,
					responsive: [
						{
							breakpoint: 640,
							settings: "unslick"
						},
						{
							breakpoint: 639,
							settings: {
								slidesToShow: 2,
								slidesToScroll: 2
							}
						},
						{
							breakpoint: 480,
							settings: {
								slidesToShow: 1,
								slidesToScroll: 1
							}
						}
					]
				});
			}

			if (sliderInitiated === false) {
				size.addSmall(sliderReInit);
				sliderInitiated = true;
			}
		});

	}


	function init$n() {
		if ($singleSmall.length) {
			sliderInit$7();
		}
	}

	var singleSmall = {
		init: init$n
	};

	var card_links = document.querySelectorAll('.card a');
	var log$n = bows_min("card");

	function addCardHover() {
		card_links.forEach(function (card) {

			card.addEventListener("mouseenter", function () {
				this.closest('.card').classList.add('is-hovered');
			});

			card.addEventListener("mouseout", function () {
				this.closest('.card').classList.remove('is-hovered');
			});
		});
	}

	function init$o() {
		if (card_links) {
			addCardHover();
		}
	}

	var cards = {
		init: init$o
	};

	var ed_form = document.getElementById("webform-submission-activity-text-form-paragraph-15309-add-form"); 

	function forcePageReload() {
	  window.addEventListener( "pageshow", function ( event ) {
	    var historyTraversal = event.persisted || 
	                           ( typeof window.performance != "undefined" && 
	                                window.performance.navigation.type === 2 );
	    if ( historyTraversal ) {
	      // Handle page restore.
	      window.location.reload();
	    }
	  });
	}

	function init$p() {
	  if (ed_form) {
	    forcePageReload();
	  }
	}

	var education = {
	  init: init$p
	};

	var $collection = $$1('[data-slider="collection"]');
	var $collectionNav = $collection.prev('.slider-nav-slides');
	var log$o = bows_min("sliders:collection");

	function setControls$4($sn, $arrow) {
	  if ($$1('body').width() >= 768) {
	    var newTop = ($collectionNav.height() / 2) + ($arrow.height() / 2);
	    if ( newTop > 38 ) {
	      $sn.css('top', newTop);
	    }
	  } else {
	    $sn.css('top', 'auto');
	  }
	}

	function sliderInit$8() {

	  $collection.each(function () {
	    var $this = $$1(this);

	    var $slider = $this.slick({
	      fade: true,
	      slidesToShow: 1,
	      clone: false,
	      infinite: false,
	      initialSlide: 0,
	      lazyLoad: 'progressive',
	      variableWidth: false,
	      arrows: false,
	      asNavFor: '.slider-nav-slides'
	    });


	  });
	  $collectionNav.each(function () {
	    var $this = $$1(this);
	    var $collectionImg = $this.closest('.slider-contain');
	    var $sn = $collectionImg.find('.slider-nav');
	    var $sb = $collectionImg.find('.slider-nav__arrows');
	    var $arrow = '';
	    var total = $this.children().length;
	    var totalSlides = $collectionImg.find('.slider-collection__total');
	    var theCurrentSlide = $collectionImg.find('.slider-collection__current');

	    if (total < 10) {
	      total = '0' + total;
	    }
	    totalSlides.text(total);
	    var $sliderNav = $this.slick({
	      mobileFirst: true,
	      centerMode: true,
	      centerPadding: '0px',
	      slidesToShow: 1,
	      variableWidth: true,
	      asNavFor: '.slider-for',
	      arrows: true,
	      appendArrows: $sb,
	      adaptiveHeight: true,
	      responsive: [
	        {
	          breakpoint: 767,
	          settings: {
	            slidesToShow: 1,
	            slidesToScroll: 1,
	            variableWidth: true,
	            centerMode: true,
	            centerPadding: '60px',
	            adaptiveHeight: false
	          }
	        }
	      ]
	    });
	    setTimeout(function () {
	      $arrow = $sb.find('.slick-arrow');
	      setControls$4($sn, $arrow);
	    }, 200);

	    $sliderNav.on('afterChange', function (event, slick, currentSlide) {
	      setControls$4($sn, $arrow);
	    });

	    $$1(window).on('resize', function () {
	      setTimeout(function () {
	        setControls$4($sn, $arrow);
	      }, 100);
	    }).on('load', function () {
	      setControls$4($sn, $arrow);
	    });

	    $sliderNav.on('afterChange', function (event, slick, currentSlide, nextSlide) {

	      //currentSlide is undefined on init -- set it to 0 in this case (currentSlide is 0 based)
	      var i = (currentSlide ? currentSlide : 0) + 1;
	      if (($this.slick.slideCount - 1) == currentSlide) {
	        setTimeout(function(){
	          $this.slick.goTo(0);
	        }, $this.slick.getOption('autoplaySpeed'));
	      }

	      if (i < 10) {
	        i = '0' + i;
	      }
	      theCurrentSlide.text(i);
	      
	    });
	  });
	}

	function init$q() {
	  if ($collection.length) {
	    sliderInit$8();
	  }
	}

	var collection = {
	  init: init$q
	};

	// external scripts


	var $window = $$1(window);
	var $document = $$1(document);
	var log$p = bows_min("site");

	var Site = function Site() {
	  var this$1 = this;

	  document.addEventListener('DOMContentLoaded', function () { return this$1.ready(); });
	  window.addEventListener('load', function () { return this$1.load(); });
	  window.addEventListener('resize', throttle(this.resize.bind(this), 25));
	  this.resize();
	  filter.init(); // Drupal.behaviors initializes on ready
	};

	Site.prototype.ready = function ready () {
	  $$1('html').removeClass('no-js').addClass('js');
	  var log = bows_min("site:domReady");


	  navigation.init();

	  isTouch.init();
	  keyboardFocus$1.init();
	  smoothScroll.init();
	  share.init();
	  size.init();
	  //picturefill();

	  //homeHero.init();
	  //general.init();
	  alert.init();
	  accordion.init();
	  tabs.init();
	  editor.init();
	  grid$1.init();
	  modal.init();
	  debugFrontend.init();
	  general.init();

	  // Sliders
	  carousel.init();
	  single.init();
	  collection.init();
	  sliderHelper.init();
	  singleImage.init();
	  testimonial.init();
	  gallery.init();
	  featured.init();
	  social.init();
	  singleSmall.init();

	  this.customPlayer = new customPlayer();

	  //Cards
	  cards.init();
	  //Education
	  education.init();
	  log('document.DOMContentLoaded');


	  // //datepicker
	  // var dateControl = document.querySelector('input[type="date"]');
	  // dateControl.value = '2017-06-01';
	  // console.log(dateControl.value); // prints "2017-06-01"
	  // console.log(dateControl.valueAsNumber); // prints 1496275200000, a JavaScript timestamp (ms)


	  window.wdg_pauseOthers = function (id) {
	    log('DONT USE');
	    // console.log('Playback just started for: ' + id);
	    // var videos = document.querySelectorAll('.jwplayer');
	    // for (let i = 0; i < videos.length; i++) {
	    // if (id != videos[i].id) {
	    //   jwplayer(videos[i].id).pause(true);
	    //   console.log('Pausing: ' + videos[i].id);
	    // }
	    // }
	  };

	  fitvid();
	};

	Site.prototype.load = function load () {
	  var log = bows_min("site:windowLoad");
	  log("window.onload");
	  fitvid();

	  // example of ES2015 modules loading & tree shaking
	  //emptyLinks();
	};

	Site.prototype.resize = function resize () {

	};

	return Site;

}));
//# sourceMappingURL=site.js.map
