{"version":3,"sources":["webpack:///scripts/app.js","webpack:///../node_modules/babel-runtime/helpers/classCallCheck.js","webpack:///../node_modules/babel-runtime/helpers/createClass.js","webpack:///../node_modules/core-js/library/modules/_wks.js","webpack:///../node_modules/core-js/library/modules/_global.js","webpack:///../node_modules/core-js/library/modules/_object-dp.js","webpack:///../node_modules/core-js/library/modules/_descriptors.js","webpack:///../node_modules/core-js/library/modules/_has.js","webpack:///../node_modules/core-js/library/modules/_core.js","webpack:///../node_modules/core-js/library/modules/_hide.js","webpack:///../node_modules/core-js/library/modules/_to-iobject.js","webpack:///../node_modules/core-js/library/modules/_an-object.js","webpack:///../node_modules/core-js/library/modules/_is-object.js","webpack:///../node_modules/core-js/library/modules/_property-desc.js","webpack:///../node_modules/core-js/library/modules/_iterators.js","webpack:///../node_modules/core-js/library/modules/_export.js","webpack:///../node_modules/core-js/library/modules/_fails.js","webpack:///../node_modules/core-js/library/modules/_uid.js","webpack:///../node_modules/core-js/library/modules/_to-primitive.js","webpack:///../node_modules/core-js/library/modules/_to-integer.js","webpack:///../node_modules/core-js/library/modules/_defined.js","webpack:///../node_modules/core-js/library/modules/_library.js","webpack:///../node_modules/core-js/library/modules/_object-keys.js","webpack:///../node_modules/core-js/library/modules/_cof.js","webpack:///../node_modules/core-js/library/modules/_shared-key.js","webpack:///../node_modules/core-js/library/modules/_shared.js","webpack:///../node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///../node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///../node_modules/core-js/library/modules/_wks-ext.js","webpack:///../node_modules/core-js/library/modules/_wks-define.js","webpack:///../node_modules/core-js/library/modules/_object-pie.js","webpack:///../node_modules/babel-runtime/core-js/object/define-property.js","webpack:///../node_modules/core-js/library/modules/_ctx.js","webpack:///../node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///../node_modules/core-js/library/modules/_dom-create.js","webpack:///../node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///../node_modules/core-js/library/modules/_iter-define.js","webpack:///../node_modules/core-js/library/modules/_redefine.js","webpack:///../node_modules/core-js/library/modules/_object-create.js","webpack:///../node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///../node_modules/core-js/library/modules/_to-length.js","webpack:///../node_modules/core-js/library/modules/_to-object.js","webpack:///../node_modules/core-js/library/modules/_object-gops.js","webpack:///../node_modules/core-js/library/modules/_object-gopn.js","webpack:///./scripts/components/pin.js","webpack:///./scripts/Utilities/selector.js","webpack:///../node_modules/babel-runtime/helpers/toConsumableArray.js","webpack:///./scripts/app.js","webpack:///../node_modules/core-js/library/fn/object/define-property.js","webpack:///../node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///../node_modules/core-js/library/modules/_a-function.js","webpack:///../node_modules/HammerJS/hammer.js","webpack:///./scripts/components/map.js","webpack:///./scripts/components/pagination.js","webpack:///./scripts/components/collapse.js","webpack:///./scripts/components/officemap.js","webpack:///../node_modules/babel-runtime/helpers/typeof.js","webpack:///../node_modules/babel-runtime/core-js/symbol/iterator.js","webpack:///../node_modules/core-js/library/fn/symbol/iterator.js","webpack:///../node_modules/core-js/library/modules/_string-at.js","webpack:///../node_modules/core-js/library/modules/_iter-create.js","webpack:///../node_modules/core-js/library/modules/_object-dps.js","webpack:///../node_modules/core-js/library/modules/_iobject.js","webpack:///../node_modules/core-js/library/modules/_array-includes.js","webpack:///../node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///../node_modules/core-js/library/modules/_html.js","webpack:///../node_modules/core-js/library/modules/_object-gpo.js","webpack:///../node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///../node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///../node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///../node_modules/core-js/library/modules/_iter-step.js","webpack:///../node_modules/babel-runtime/core-js/symbol.js","webpack:///../node_modules/core-js/library/fn/symbol/index.js","webpack:///../node_modules/core-js/library/modules/es6.symbol.js","webpack:///../node_modules/core-js/library/modules/_meta.js","webpack:///../node_modules/core-js/library/modules/_enum-keys.js","webpack:///../node_modules/core-js/library/modules/_is-array.js","webpack:///../node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///../node_modules/core-js/library/modules/_object-gopd.js","webpack:///../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///../node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./scripts/components/mobilemenu.js","webpack:///./scripts/components/readmore.js","webpack:///./scripts/components/icons.js","webpack:///./scripts/components/fileupload.js","webpack:///./scripts/components/videomodal.js","webpack:///./scripts/components/charlimit.js","webpack:///./scripts/components/alert.js","webpack:///../node_modules/babel-runtime/core-js/array/from.js","webpack:///../node_modules/core-js/library/fn/array/from.js","webpack:///../node_modules/core-js/library/modules/es6.array.from.js","webpack:///../node_modules/core-js/library/modules/_iter-call.js","webpack:///../node_modules/core-js/library/modules/_is-array-iter.js","webpack:///../node_modules/core-js/library/modules/_create-property.js","webpack:///../node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///../node_modules/core-js/library/modules/_classof.js","webpack:///../node_modules/core-js/library/modules/_iter-detect.js","webpack:///./scripts/Components/component-manager.js","webpack:///./scripts/Components/load-manager.js","webpack:///../node_modules/babel-runtime/helpers/defineProperty.js"],"names":["webpackJsonp","module","exports","__webpack_require__","__esModule","default","instance","Constructor","TypeError","_defineProperty","_defineProperty2","obj","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","store","uid","Symbol","USE_SYMBOL","name","global","window","Math","self","Function","__g","anObject","IE8_DOM_DEFINE","toPrimitive","dP","Object","defineProperty","f","O","P","Attributes","e","value","get","a","hasOwnProperty","it","call","core","version","__e","createDesc","object","IObject","defined","isObject","bitmap","ctx","hide","$export","type","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","undefined","C","b","c","this","arguments","apply","virtual","R","U","exec","id","px","random","concat","toString","fn","val","valueOf","ceil","floor","isNaN","$keys","enumBugKeys","keys","slice","shared","split","def","has","TAG","tag","stat","LIBRARY","wksExt","$Symbol","charAt","propertyIsEnumerable","aFunction","that","document","is","createElement","$at","String","iterated","_t","_i","point","index","done","redefine","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","returnThis","Base","NAME","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","create","Properties","result","toIObject","arrayIndexOf","names","push","toInteger","min","getOwnPropertySymbols","hiddenKeys","getOwnPropertyNames","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default","Pin","el","map","active","init","bind","meta","JSON","parse","getAttribute","data","label","_this","addEventListener","setActive","classList","toggle","$","scope","querySelectorAll","$1","querySelector","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__","_from","_from2","arr","Array","isArray","arr2","__WEBPACK_IMPORTED_MODULE_2_imagesloaded__","__WEBPACK_IMPORTED_MODULE_2_imagesloaded___default","__WEBPACK_IMPORTED_MODULE_3_wallop__","__WEBPACK_IMPORTED_MODULE_3_wallop___default","__WEBPACK_IMPORTED_MODULE_4_HammerJS__","__WEBPACK_IMPORTED_MODULE_4_HammerJS___default","__WEBPACK_IMPORTED_MODULE_5_scrollmagic__","__WEBPACK_IMPORTED_MODULE_5_scrollmagic___default","__WEBPACK_IMPORTED_MODULE_6__components_utilities__","__WEBPACK_IMPORTED_MODULE_7__components_map__","__WEBPACK_IMPORTED_MODULE_8__components_pagination__","__WEBPACK_IMPORTED_MODULE_9__components_collapse__","__WEBPACK_IMPORTED_MODULE_10__components_officemap__","__WEBPACK_IMPORTED_MODULE_12__components_mobilemenu__","__WEBPACK_IMPORTED_MODULE_13__components_readmore__","__WEBPACK_IMPORTED_MODULE_14__components_icons__","__WEBPACK_IMPORTED_MODULE_15__components_fileupload__","__WEBPACK_IMPORTED_MODULE_16__components_videomodal__","__WEBPACK_IMPORTED_MODULE_17__components_charlimit__","utilities","App","initScrollTo","initCarousel","initModal","initPagination","imagesLoaded","on","body","add","initCollapseBlocks","initReadMore","initOfficeMap","initMiniSearch","initFileUpload","initCharLimit","initScrollMagic","initIcons","initStaff","onbeforeunload","remove","scrollFunc","indexOf","href","substr","getElementById","preventDefault","boundingBox","getBoundingClientRect","scrollTop","pageYOffset","documentElement","to","top","TweenLite","scrollTo","y","ease","Power2","easeOut","contains","parentElement","nextElementSibling","click","links","carousels","opt","itemClass","currentItemClass","showPreviousClass","showNextClass","hidePreviousClass","hideNextClass","setInterval","app","modalEl","modal","elements","selectors","head","intro","content","collapsibles","officeMapEl","pins","established","address","description","button","officeMap","readMoreEls","readMore","trigger","_this2","minisearch","form","input","inputWrap","nav","inputChange","setAttribute","keyCode","pages","dots","arrows","dynamicHeight","buttonPreviousClass","buttonNextClass","dotClass","wrapperClass","pagination","fileUploads","charLimitEl","charLimit","controller","Controller","headerEl","subheaderEl","headerTween","TweenMax","fromTo","backgroundColor","paused","submenuTween","headerSceneEl","headerScene","Scene","triggerElement","triggerHook","duration","event","progress","addTo","heroImages","heroTween","opacity","heroSceneEl","offsetHeight","heroScene","compassEl","compassTween","compassSceneEl","compassScene","seek","_this3","icons","iconSceneEl","iconScene","reverse","timeline","play","enabled","carouselEl","carousel","carouselTimer","hammertime","ev","previous","clearInterval","$Object","desc","__WEBPACK_AMD_DEFINE_RESULT__","exportName","setTimeoutContext","timeout","context","setTimeout","bindFn","invokeArrayArg","arg","each","iterator","forEach","deprecate","method","message","deprecationMessage","Error","stack","replace","log","console","warn","inherit","child","base","properties","childP","baseP","constructor","_super","assign","boolOrFn","args","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","removeEventListeners","removeEventListener","hasParent","node","parent","parentNode","inStr","str","find","trim","inArray","findByKey","toArray","uniqueArray","sort","results","prefixed","property","prefix","prop","camelProp","toUpperCase","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","element","doc","ownerDocument","defaultView","parentWindow","Input","manager","callback","options","inputTarget","domHandler","enable","createInputInstance","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","eventType","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","emit","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","now","deltaTime","angle","getAngle","distance","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","overallVelocity","getVelocity","overallVelocityX","x","overallVelocityY","abs","scale","getScale","rotation","getRotation","maxPointers","computeIntervalInputData","srcEvent","offset","offsetDelta","prevDelta","velocity","velocityX","velocityY","direction","last","lastInterval","COMPUTE_INTERVAL","v","clientX","round","clientY","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","p1","p2","PROPS_XY","sqrt","atan2","PI","start","end","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","targetTouches","changedTargetTouches","filter","touch","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","removeLastTouch","splice","DEDUP_TIMEOUT","isSyntheticEvent","t","dx","dy","DEDUP_DISTANCE","TouchAction","set","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","defaults","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","Hammer","recognizers","preset","Manager","handlers","oldCssProps","touchAction","toggleCssProps","item","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","Date","output","nextKey","extend","dest","merge","MOBILE_REGEX","test","navigator","userAgent","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","destroy","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","toLowerCase","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","compute","update","getTouchAction","join","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","isValid","threshold","directionTest","hasMoved","inOut","time","validPointers","validMovement","validTime","clearTimeout","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","stop","force","stopped","curRecognizer","existing","events","off","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","mapEl","lat","parseFloat","lng","google","maps","Map","zoom","parseInt","scrollwheel","Marker","position","title","icon","__WEBPACK_IMPORTED_MODULE_2_wallop__","__WEBPACK_IMPORTED_MODULE_2_wallop___default","Pagination","opts","change","initDots","wrapper","getEl","detail","currentItemIndex","newHeight","allItemsArray","height","jump","goTo","text","selector","__WEBPACK_IMPORTED_MODULE_2__utilities__","Collapsible","baseHeight","introHeight","resize","debounce","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default","__WEBPACK_IMPORTED_MODULE_3__pin__","OfficeMap","pinElements","metaSelectors","metaElements","metaButton","getElement","initPins","initMeta","initSelect","select","pin","clearActive","website","labelElement","previousElementSibling","metaFadeIn","innerHTML","_interopRequireDefault","_iterator","_iterator2","_symbol","_symbol2","_typeof","TO_STRING","pos","s","l","charCodeAt","getKeys","cof","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","max","toObject","ObjectProto","TO_STRING_TAG","DOMIterables","Collection","addToUnscopables","step","_k","Arguments","DESCRIPTORS","META","KEY","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPD","gOPN","$JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","D","protoDesc","wrap","sym","isSymbol","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","j","wellKnownSymbols","k","for","keyFor","useSetter","useSimple","getOwnPropertyDescriptor","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","NEED","gOPS","pIE","getSymbols","symbols","windowNames","getWindowNames","MobileMenu","ReadMore","contentHeight","textContent","nodeName","getHeight","children","getComputedStyle","getPropertyValue","Icons","_timeline","TimelineMax","strategy","speed","diversity","drawLine","lines","strokeDasharray","lineObj","totalLength","svg","circle","Back","easeIn","config","transformOrigin","getTotalLength","onUpdate","easing","Circ","Power3","easeInOut","svgOrigin","from","Expo","pieces","FileUpload","HTMLElement","build","className","insertBefore","VideoModal","openEls","closeEls","getElementsByTagName","postMessage","CharLimit","countDownEl","newVal","__WEBPACK_IMPORTED_MODULE_2_Utilities_selector__","__WEBPACK_IMPORTED_MODULE_3_Components_component_manager__","__WEBPACK_IMPORTED_MODULE_4_Components_load_manager__","Alert","header","headerHeight","storage","localStorage","toggleText","toggleStorage","getItem","paddingTop","clear","setItem","queue","DOM","isArrayIter","createProperty","getIterFn","iter","arrayLike","aLen","mapfn","mapping","iterFn","ret","ArrayProto","classof","getIteratorMethod","ARG","tryGet","T","callee","SAFE_CLOSING","riter","skipClosing","safe","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default","__WEBPACK_IMPORTED_MODULE_3_Utilities_selector__","ComponentManager","component","_len","_key","components","d","QUEUE","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default","LoadManager","_events","_loaded","RESOURCES","DONE","loaded","run","evt","unbind","runDomQueue","runResourceQueue","func"],"mappings":"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","file":"scripts/app.js","sourcesContent":["webpackJsonp([0],[\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(32);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(26)('wks');\nvar uid = __webpack_require__(16);\nvar Symbol = __webpack_require__(3).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(10);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\nvar toPrimitive = __webpack_require__(17);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(5) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(15)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(4);\nvar createDesc = __webpack_require__(12);\nmodule.exports = __webpack_require__(5) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(67);\nvar defined = __webpack_require__(21);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(11);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar core = __webpack_require__(7);\nvar ctx = __webpack_require__(33);\nvar hide = __webpack_require__(8);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(11);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 18 */,\n/* 19 */,\n/* 20 */\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = true;\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(42);\nvar enumBugKeys = __webpack_require__(27);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(26)('keys');\nvar uid = __webpack_require__(16);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(4).f;\nvar has = __webpack_require__(6);\nvar TAG = __webpack_require__(2)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports.f = __webpack_require__(2);\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar core = __webpack_require__(7);\nvar LIBRARY = __webpack_require__(22);\nvar wksExt = __webpack_require__(29);\nvar defineProperty = __webpack_require__(4).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(52), __esModule: true };\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(54);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(5) && !__webpack_require__(15)(function () {\n return Object.defineProperty(__webpack_require__(35)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(11);\nvar document = __webpack_require__(3).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 36 */,\n/* 37 */,\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(64)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(39)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(22);\nvar $export = __webpack_require__(14);\nvar redefine = __webpack_require__(40);\nvar hide = __webpack_require__(8);\nvar has = __webpack_require__(6);\nvar Iterators = __webpack_require__(13);\nvar $iterCreate = __webpack_require__(65);\nvar setToStringTag = __webpack_require__(28);\nvar getPrototypeOf = __webpack_require__(71);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(8);\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(10);\nvar dPs = __webpack_require__(66);\nvar enumBugKeys = __webpack_require__(27);\nvar IE_PROTO = __webpack_require__(25)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(35)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(70).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(6);\nvar toIObject = __webpack_require__(9);\nvar arrayIndexOf = __webpack_require__(68)(false);\nvar IE_PROTO = __webpack_require__(25)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(20);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(21);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(42);\nvar hiddenKeys = __webpack_require__(27).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\n/**\r\n * Office Map Pins\r\n */\nvar Pin = function () {\n function Pin(el, map) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Pin);\n\n this.el = el;\n this.map = map;\n this.active = false;\n this.init();\n this.bind();\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Pin, [{\n key: 'init',\n value: function init() {\n var meta = JSON.parse(this.el.getAttribute('data-pin'));\n this.data = meta;\n this.data.name = this.el.getAttribute('data-name');\n this.label = this.el.getAttribute('data-label');\n }\n }, {\n key: 'bind',\n value: function bind() {\n var _this = this;\n\n this.el.addEventListener('click', function (e) {\n return _this.setActive(e);\n });\n }\n }, {\n key: 'setActive',\n value: function setActive(e) {\n this.map.setActive(this);\n }\n }, {\n key: 'toggle',\n value: function toggle(active) {\n this.active = active;\n this.el.classList.toggle('is-active');\n }\n }]);\n\n return Pin;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Pin);\n\n/***/ }),\n/* 48 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = $;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = $1;\n/* unused harmony export closest */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__);\n\nfunction $(el, scope) {\n return (scope || document).querySelectorAll(el);\n}\n\nfunction $1(el, scope) {\n return (scope || document).querySelector(el);\n}\n\nfunction closest(selector, el) {\n var elements = [].concat(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default()($(selector)));\n if (!elements.length) return null;\n do {\n el = el.parentNode;\n } while (elements.indexOf(el) < 0);\n return el;\n}\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _from = __webpack_require__(94);\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(51);\nmodule.exports = __webpack_require__(106);\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_imagesloaded__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_imagesloaded___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_imagesloaded__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_wallop__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_wallop___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_wallop__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_HammerJS__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_HammerJS___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_HammerJS__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_scrollmagic__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_scrollmagic___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_scrollmagic__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_utilities__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_map__ = __webpack_require__(57);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__components_map__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_pagination__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_collapse__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_officemap__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_pin__ = __webpack_require__(47);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__components_mobilemenu__ = __webpack_require__(87);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__components_readmore__ = __webpack_require__(88);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__components_icons__ = __webpack_require__(89);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__components_fileupload__ = __webpack_require__(90);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__components_videomodal__ = __webpack_require__(91);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__components_charlimit__ = __webpack_require__(92);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__components_alert__ = __webpack_require__(93);\n\n\n// Import Dependencies\n\n\n\n\n\n// Import Components\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nwindow.utilities = __WEBPACK_IMPORTED_MODULE_6__components_utilities__[\"a\" /* default */];\n\nvar App = function () {\n // Initialise Application Components\n function App() {\n var _this = this;\n\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, App);\n\n document.addEventListener('DOMContentLoaded', function () {\n _this.initScrollTo();\n _this.initCarousel();\n _this.initModal();\n _this.initPagination();\n _this.imagesLoaded = __WEBPACK_IMPORTED_MODULE_2_imagesloaded___default()(document.querySelector('.SiteMain'));\n _this.imagesLoaded.on('always', function () {\n document.body.classList.add('is-loaded');\n _this.initCollapseBlocks();\n _this.initReadMore();\n });\n _this.initOfficeMap();\n _this.initMiniSearch();\n _this.initFileUpload();\n _this.initCharLimit();\n _this.initScrollMagic();\n _this.initIcons();\n _this.initStaff();\n\n new __WEBPACK_IMPORTED_MODULE_12__components_mobilemenu__[\"a\" /* default */](document.querySelector('.Nav-button'));\n });\n }\n\n // Initialise Smooth Loading\n\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(App, [{\n key: 'smoothLoad',\n value: function smoothLoad() {\n window.onbeforeunload = function () {\n document.body.classList.remove('is-loaded');\n };\n }\n\n // Initialise ScrollTo\n\n }, {\n key: 'initScrollTo',\n value: function initScrollTo() {\n // On click\n var links = document.querySelectorAll('a[href*=\"#\"]');\n for (var i = 0; i < links.length; i++) {\n links[i].addEventListener('click', scrollFunc);\n }\n\n function scrollFunc(e) {\n var index = this.getAttribute('href').indexOf('#');\n var href = this.getAttribute('href').substr(index + 1);\n var el = document.getElementById(href);\n if (el) {\n e.preventDefault();\n var boundingBox = el.getBoundingClientRect();\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n var to = boundingBox.top + scrollTop;\n\n TweenLite.to(window, 1, { scrollTo: { y: to }, ease: Power2.easeOut });\n if (el.classList.contains('Collapse-anchor') && !el.parentElement.classList.contains('is-open')) {\n el.nextElementSibling.click();\n }\n }\n }\n }\n\n // Initialise Carousels\n\n }, {\n key: 'initCarousel',\n value: function initCarousel() {\n var carousels = document.querySelectorAll('[data-js=\"carousel\"]');\n\n if (carousels === null) return false;\n\n this.carousels = [];\n\n var opt = {\n itemClass: 'js-slide',\n currentItemClass: 'is-active',\n showPreviousClass: 'Hero-image--showPrevious',\n showNextClass: 'Hero-image--showNext',\n hidePreviousClass: 'Hero-image--hidePrevious',\n hideNextClass: 'Hero-image--hideNext'\n };\n\n for (var i = 0; i < carousels.length; i++) {\n this.carousels.push(new __WEBPACK_IMPORTED_MODULE_3_wallop___default.a(carousels[i], opt));\n }\n\n setInterval(function () {\n for (var i = 0; i < carousels.length; i++) {\n app.carousels[i].next();\n }\n }, 5000);\n }\n\n // Initialise Video Modals\n\n }, {\n key: 'initModal',\n value: function initModal() {\n var modalEl = document.querySelector('[data-js=\"modal\"]');\n if (!modalEl) return false;\n\n this.modal = new __WEBPACK_IMPORTED_MODULE_16__components_videomodal__[\"a\" /* default */](modalEl, {\n open: '[data-js=\"modal-open\"]',\n close: '[data-js=\"modal-close\"]'\n });\n }\n\n // Initialise Collapsible Blocks\n\n }, {\n key: 'initCollapseBlocks',\n value: function initCollapseBlocks() {\n var elements = document.querySelectorAll('[data-js=\"collapse\"]');\n\n if (elements === null) return false;\n\n var opt = {\n selectors: {\n head: '[data-js=\"collapse-header\"]',\n body: '[data-js=\"collapse-body\"]',\n intro: '[data-js=\"collapse-intro\"]',\n content: '[data-js=\"collapse-content\"]'\n }\n };\n\n this.collapsibles = [];\n for (var i = 0; i < elements.length; i++) {\n this.collapsibles.push(new __WEBPACK_IMPORTED_MODULE_9__components_collapse__[\"a\" /* default */](elements[i], opt));\n }\n }\n\n // Initialise Office Map\n\n }, {\n key: 'initOfficeMap',\n value: function initOfficeMap() {\n var officeMapEl = document.querySelector('[data-js=\"officemeta\"]');\n\n if (officeMapEl === null) return false;\n\n var opt = {\n pins: '[data-js=\"pin\"]',\n meta: {\n name: '[data-js=\"officemeta-name\"]',\n established: '[data-js=\"officemeta-established\"]',\n address: '[data-js=\"officemeta-address\"]',\n description: '[data-js=\"officemeta-description\"]'\n },\n button: '[data-js=\"officemeta-website\"]'\n };\n\n this.officeMap = new __WEBPACK_IMPORTED_MODULE_10__components_officemap__[\"a\" /* default */](officeMapEl, opt);\n }\n\n // Initialise Read More\n\n }, {\n key: 'initReadMore',\n value: function initReadMore() {\n var readMoreEls = document.querySelectorAll('[data-js=\"readmore\"]');\n\n if (!readMoreEls.length) return false;\n\n this.readMore = [];\n\n var opt = {\n selectors: {\n trigger: '[data-js=\"readmore-button\"]',\n content: '[data-js=\"readmore-content\"]'\n }\n };\n\n for (var i = 0; i < readMoreEls.length; i++) {\n this.readMore.push(new __WEBPACK_IMPORTED_MODULE_13__components_readmore__[\"a\" /* default */](readMoreEls[i], opt));\n }\n }\n\n // Initialise MiniSearch\n\n }, {\n key: 'initMiniSearch',\n value: function initMiniSearch() {\n var _this2 = this;\n\n this.minisearch = false;\n var form = document.querySelector('[data-js=\"minisearch\"]');\n var input = document.querySelector('[data-js=\"minisearch-input\"]');\n var button = document.querySelector('[data-js=\"minisearch-button\"]');\n var inputWrap = document.querySelector('[data-js=\"minisearch-wrap\"]');\n var nav = document.querySelector('.Nav');\n\n var toggle = function toggle() {\n _this2.minisearch = !_this2.minisearch;\n inputWrap.classList.toggle('is-open');\n nav.classList.toggle('has-minisearch');\n };\n\n var close = function close() {\n if (inputWrap.classList.contains('is-open')) {\n toggle();\n }\n };\n\n var inputChange = function inputChange(e) {\n var value = input.value;\n button.setAttribute('type', value.length ? 'submit' : 'button');\n };\n\n button.addEventListener('click', toggle);\n input.addEventListener('keyup', inputChange);\n\n document.addEventListener('click', function (e) {\n if (!form.contains(e.target)) {\n close();\n }\n });\n\n document.addEventListener('keyup', function (e) {\n if (e.keyCode == 27) {\n close();\n }\n });\n }\n\n // Initialise Bulletin Pagination\n\n }, {\n key: 'initPagination',\n value: function initPagination() {\n var pages = document.querySelector('[data-js=\"pagination\"]');\n\n if (pages === null) return false;\n\n var opt = {\n itemClass: 'js-page',\n currentItemClass: 'is-active',\n showPreviousClass: 'List-page--showPrevious',\n showNextClass: 'List-page--showNext',\n hidePreviousClass: 'List-page--hidePrevious',\n hideNextClass: 'List-page--hideNext',\n dots: true,\n arrows: true,\n dynamicHeight: true,\n buttonPreviousClass: 'js-prev',\n buttonNextClass: 'js-next',\n dotClass: 'js-dot',\n wrapperClass: 'js-wrapper'\n };\n\n this.pagination = new __WEBPACK_IMPORTED_MODULE_8__components_pagination__[\"a\" /* default */](pages, opt);\n }\n\n // Initialise CV File Uploads\n\n }, {\n key: 'initFileUpload',\n value: function initFileUpload() {\n var fileUploads = document.querySelectorAll('input[type=\"file\"]');\n if (!fileUploads) return;\n\n this.fileUploads = [];\n\n for (var i = 0; i < fileUploads.length; i++) {\n this.fileUploads.push(new __WEBPACK_IMPORTED_MODULE_15__components_fileupload__[\"a\" /* default */](fileUploads[i]));\n }\n }\n\n // Initialise Textarea Character Limit\n\n }, {\n key: 'initCharLimit',\n value: function initCharLimit() {\n var charLimitEl = document.querySelector('[data-charlimit]');\n if (!charLimitEl) return;\n\n this.charLimit = new __WEBPACK_IMPORTED_MODULE_17__components_charlimit__[\"a\" /* default */](charLimitEl);\n }\n\n // Initialise ScrollMagic Scenes\n\n }, {\n key: 'initScrollMagic',\n value: function initScrollMagic() {\n // Create Controller\n this.controller = new __WEBPACK_IMPORTED_MODULE_5_scrollmagic___default.a.Controller();\n\n // Header Scrolling Trigger\n var headerEl = document.querySelector('.Header');\n if (headerEl) {\n var subheaderEl = document.querySelector('.Nav-subBg');\n var headerTween = TweenMax.fromTo(headerEl, 1, { backgroundColor: 'rgba(0,81,186,.8)' }, { backgroundColor: 'rgba(0,81,186,1)', paused: true });\n var submenuTween = TweenMax.fromTo(subheaderEl, 1, { backgroundColor: 'rgba(0, 69, 152, .8)' }, { backgroundColor: 'rgba(0, 71, 159, 1)', paused: true });\n\n if (document.querySelector('.Hero')) {\n var headerSceneEl = document.querySelector('.Hero');\n var headerScene = new __WEBPACK_IMPORTED_MODULE_5_scrollmagic___default.a.Scene({\n triggerElement: headerSceneEl,\n triggerHook: \"onLeave\",\n duration: 400\n });\n\n headerScene.on(\"progress\", function (event) {\n headerTween.progress(event.progress);\n submenuTween.progress(event.progress);\n });\n headerScene.addTo(this.controller);\n } else {\n headerTween.progress(1);\n submenuTween.progress(1);\n }\n }\n\n // Hero Scroll Effect\n var heroImages = document.querySelector('.Hero-parallax') || document.querySelector('.Hero-photo');\n\n if (heroImages) {\n var heroTween = TweenMax.fromTo(heroImages, 2, { y: -50, opacity: 1 }, { y: 100, opacity: 0.5, paused: true });\n\n var heroSceneEl = document.querySelector('.Hero');\n var duration = heroSceneEl.offsetHeight;\n var heroScene = new __WEBPACK_IMPORTED_MODULE_5_scrollmagic___default.a.Scene({\n triggerElement: heroSceneEl,\n triggerHook: \"onLeave\",\n duration: duration\n });\n\n heroScene.on(\"progress\", function (event) {\n heroTween.progress(event.progress);\n });\n heroScene.addTo(this.controller);\n }\n\n // Compass Scroll Effect\n var compassEl = document.querySelector(\"[data-js=sm-compass]\");\n\n if (compassEl) {\n // Create Tween\n var compassTween = TweenMax.fromTo(compassEl, 1, { y: 50 }, { y: -30, paused: true });\n\n // Create Scene\n var compassSceneEl = document.querySelector(\"[data-js=sm-notices]\");\n var compassScene = new __WEBPACK_IMPORTED_MODULE_5_scrollmagic___default.a.Scene({\n triggerElement: compassSceneEl,\n duration: compassSceneEl.offsetHeight\n });\n\n // Progress tween over scene\n compassScene.on(\"progress\", function (event) {\n compassTween.seek(event.progress);\n });\n\n compassScene.addTo(this.controller);\n }\n }\n\n // Initialise Icon Animations\n\n }, {\n key: 'initIcons',\n value: function initIcons() {\n var _this3 = this;\n\n this.icons = new __WEBPACK_IMPORTED_MODULE_14__components_icons__[\"a\" /* default */]();\n\n var iconSceneEl = document.querySelector('[data-js=sm-icons]');\n var iconScene = new __WEBPACK_IMPORTED_MODULE_5_scrollmagic___default.a.Scene({\n triggerElement: iconSceneEl,\n reverse: false\n });\n\n iconScene.on(\"enter\", function (e) {\n _this3.icons.timeline().play();\n iconScene.enabled(false);\n });\n\n iconScene.addTo(this.controller);\n }\n\n // Initialise Carousels\n\n }, {\n key: 'initStaff',\n value: function initStaff() {\n\n var carouselEl = document.querySelector('[data-js=\"staff\"]');\n\n if (carouselEl === null) return false;\n\n // if (window.innerWidth > 767 )\n // return false;\n\n var buttons = carouselEl.querySelectorAll('[data-button]');\n\n var opt = {\n itemClass: 'Staff-member',\n currentItemClass: 'is-active',\n showPreviousClass: 'Staff-member--showPrevious',\n showNextClass: 'Staff-member--showNext',\n hidePreviousClass: 'Staff-member--hidePrevious',\n hideNextClass: 'Staff-member--hideNext'\n };\n\n var carousel = new __WEBPACK_IMPORTED_MODULE_3_wallop___default.a(carouselEl, opt);\n\n var carouselTimer = setInterval(function () {\n carousel.next();\n }, 5000);\n\n var hammertime = new __WEBPACK_IMPORTED_MODULE_4_HammerJS___default.a(carouselEl);\n hammertime.on('swiperight', function (ev) {\n carousel.previous();\n clearInterval(carouselTimer);\n });\n hammertime.on('swipeleft', function (ev) {\n carousel.next();\n clearInterval(carouselTimer);\n });\n\n carouselEl.querySelector('[data-button=\"prev\"]').addEventListener(\"click\", function () {\n carousel.previous();\n });\n\n carouselEl.querySelector('[data-button=\"next\"]').addEventListener(\"click\", function () {\n carousel.next();\n });\n }\n }]);\n\n return App;\n}();\n\nwindow.app = new App();\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(53);\nvar $Object = __webpack_require__(7).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(14);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(5), 'Object', { defineProperty: __webpack_require__(4).f });\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n/* 55 */,\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return Hammer;\n }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\n//import mapStyle from './map-styles.json';\n\nvar map;\n\nfunction initMap() {\n var mapEl = document.getElementById('map');\n\n if (mapEl) {\n var center = {\n lat: parseFloat(mapEl.getAttribute('data-lat')),\n lng: parseFloat(mapEl.getAttribute('data-lng'))\n };\n\n map = new google.maps.Map(mapEl, {\n center: center,\n zoom: parseInt(mapEl.getAttribute('data-zoom')),\n //styles: mapStyle,\n scrollwheel: false\n });\n\n var image = '/images/pin.png';\n\n var marker = new google.maps.Marker({\n position: center,\n map: map,\n title: mapEl.getAttribute('data-title'),\n icon: image\n });\n }\n}\n\ninitMap();\n\n/***/ }),\n/* 58 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_wallop__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_wallop___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_wallop__);\n\n\n\n\nvar Pagination = function () {\n function Pagination(el, opts) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Pagination);\n\n this.el = el;\n this.options = opts;\n this.init();\n }\n\n // Initialise\n\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Pagination, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n this.carousel = new __WEBPACK_IMPORTED_MODULE_2_wallop___default.a(this.el, this.options);\n\n this.carousel.on('change', function (e) {\n return _this.change(e);\n });\n\n if (this.options.dots) {\n this.initDots();\n }\n\n if (this.options.dynamicHeight) {\n this.wrapper = this.getEl(this.options.wrapperClass)[0];\n }\n }\n }, {\n key: 'change',\n value: function change(e) {\n if (this.options.dots && this.dots.length) {\n this.getEl(this.options.dotClass + '.is-active')[0].classList.remove('is-active');\n this.dots[event.detail.currentItemIndex].classList.add('is-active');\n }\n if (this.options.dynamicHeight && this.wrapper) {\n var newHeight = this.carousel.allItemsArray[this.carousel.currentItemIndex].offsetHeight;\n this.wrapper.style.height = newHeight + 'px';\n }\n }\n }, {\n key: 'initDots',\n value: function initDots() {\n var _this2 = this;\n\n this.dots = this.getEl(this.options.dotClass);\n for (var i = 0; i < this.dots.length; i++) {\n this.dots[i].addEventListener('click', function (e) {\n return _this2.jump(e);\n });\n }\n }\n }, {\n key: 'jump',\n value: function jump(e) {\n this.carousel.goTo(parseInt(e.target.text) - 1);\n }\n\n // Helpers\n\n }, {\n key: 'getEl',\n value: function getEl(selector) {\n return this.el.querySelectorAll('.' + selector);\n }\n }]);\n\n return Pagination;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Pagination);\n\n/***/ }),\n/* 59 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utilities__ = __webpack_require__(19);\n\n\n\n\n/**\r\n * Collapsible Blocks\r\n */\n\nvar Collapsible = function () {\n function Collapsible(el, options) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Collapsible);\n\n this.el = el;\n this.options = options;\n this.head = el.querySelector(this.options.selectors.head);\n this.intro = el.querySelector(this.options.selectors.intro);\n this.body = el.querySelector(this.options.selectors.body);\n this.content = el.querySelector(this.options.selectors.content);\n this.baseHeight = this.content.offsetHeight + 'px';\n\n if (this.intro) {\n this.introHeight = this.intro.offsetHeight + 15 + 'px';\n }\n\n this.bind();\n if (!el.classList.contains('is-open')) this.close();\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Collapsible, [{\n key: 'bind',\n value: function bind() {\n var _this = this;\n\n this.head.addEventListener('click', function (e) {\n return _this.toggle(e);\n });\n var resize = __WEBPACK_IMPORTED_MODULE_2__utilities__[\"a\" /* default */].debounce(function (e) {\n return _this.resize(e);\n }, 300);\n window.addEventListener('resize', resize);\n }\n }, {\n key: 'toggle',\n value: function toggle() {\n this.el.classList.contains('is-open') ? this.close() : this.open();\n this.el.classList.toggle('is-open');\n }\n }, {\n key: 'open',\n value: function open() {\n this.body.style.height = this.baseHeight;\n if (this.intro) {\n this.intro.style.height = this.introHeight;\n }\n }\n }, {\n key: 'close',\n value: function close() {\n this.baseHeight = this.content.offsetHeight + 'px';\n this.body.style.height = 0;\n if (this.intro) {\n this.intro.style.height = 0;\n }\n }\n }, {\n key: 'resize',\n value: function resize(e) {\n this.baseHeight = this.content.offsetHeight + 'px';\n if (this.el.classList.contains('is-open')) {\n this.body.style.height = this.baseHeight;\n this.intro.style.height = 'auto';\n this.intro.style.height = this.intro.offsetHeight + 15 + 'px';\n }\n }\n }]);\n\n return Collapsible;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Collapsible);\n\n/***/ }),\n/* 60 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(61);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__pin__ = __webpack_require__(47);\n\n\n\n\n/**\r\n * Office Map\r\n */\n\nvar OfficeMap = function () {\n function OfficeMap(el, options) {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, OfficeMap);\n\n this.el = el;\n this.pins = [];\n this.pinElements = document.querySelectorAll(options.pins);\n this.metaSelectors = options.meta;\n this.metaElements = {};\n this.metaButton = this.getElement(options.button);\n this.active = null;\n this.initPins();\n this.initMeta();\n this.initSelect();\n this.setActive(this.pins[0]);\n }\n\n // Build Pins\n\n\n __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(OfficeMap, [{\n key: 'initPins',\n value: function initPins() {\n for (var i = 0; i < this.pinElements.length; i++) {\n this.pins.push(new __WEBPACK_IMPORTED_MODULE_3__pin__[\"a\" /* default */](this.pinElements[i], this));\n }\n }\n\n // Store elements\n\n }, {\n key: 'initMeta',\n value: function initMeta() {\n for (var key in this.metaSelectors) {\n this.metaElements[key] = this.getElement(this.metaSelectors[key]);\n }\n }\n\n // Mobile select\n\n }, {\n key: 'initSelect',\n value: function initSelect() {\n var _this = this;\n\n this.select = document.querySelector('[data-js=officemap-select]');\n this.select.addEventListener('change', function (e) {\n _this.pinElements[_this.select.value].click();\n });\n }\n\n // Get Child Elements\n\n }, {\n key: 'getElement',\n value: function getElement(selector) {\n return this.el.querySelector(selector);\n }\n\n // Update active office\n\n }, {\n key: 'setActive',\n value: function setActive(pin) {\n this.clearActive();\n this.active = pin;\n this.active.toggle(1);\n\n if (this.metaButton) {\n if (pin.label === 'UK') {\n this.metaButton.classList.add('is-hidden');\n } else {\n this.metaButton.classList.remove('is-hidden');\n this.metaButton.setAttribute('href', pin.data.website);\n }\n }\n\n for (var key in this.metaElements) {\n if (this.metaElements[key]) {\n var labelElement = this.metaElements[key].previousElementSibling;\n if (labelElement) {\n if (pin.data[key] === null) {\n labelElement.classList.add('is-hidden');\n } else {\n labelElement.classList.remove('is-hidden');\n }\n }\n\n this.metaElements[key].classList.add('is-hidden');\n setTimeout(this.metaFadeIn.bind(this, key, pin), 200);\n }\n }\n }\n }, {\n key: 'clearActive',\n value: function clearActive() {\n if (this.active) {\n this.active.toggle(0);\n this.active = null;\n }\n }\n }, {\n key: 'metaFadeIn',\n value: function metaFadeIn(key, pin) {\n if (__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(pin.data[key]) == \"object\" && pin.data[key] !== null) {\n this.metaElements[key].previousElementSibling.innerHTML = pin.data[key].label;\n this.metaElements[key].innerHTML = pin.data[key].value;\n } else {\n this.metaElements[key].innerHTML = pin.data[key];\n }\n this.metaElements[key].classList.remove('is-hidden');\n }\n }]);\n\n return OfficeMap;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (OfficeMap);\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _iterator = __webpack_require__(62);\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = __webpack_require__(76);\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(63), __esModule: true };\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(38);\n__webpack_require__(72);\nmodule.exports = __webpack_require__(29).f('iterator');\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(20);\nvar defined = __webpack_require__(21);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(41);\nvar descriptor = __webpack_require__(12);\nvar setToStringTag = __webpack_require__(28);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(8)(IteratorPrototype, __webpack_require__(2)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(4);\nvar anObject = __webpack_require__(10);\nvar getKeys = __webpack_require__(23);\n\nmodule.exports = __webpack_require__(5) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(24);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(9);\nvar toLength = __webpack_require__(43);\nvar toAbsoluteIndex = __webpack_require__(69);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(20);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(3).document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(6);\nvar toObject = __webpack_require__(44);\nvar IE_PROTO = __webpack_require__(25)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(73);\nvar global = __webpack_require__(3);\nvar hide = __webpack_require__(8);\nvar Iterators = __webpack_require__(13);\nvar TO_STRING_TAG = __webpack_require__(2)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(74);\nvar step = __webpack_require__(75);\nvar Iterators = __webpack_require__(13);\nvar toIObject = __webpack_require__(9);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(39)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports) {\n\nmodule.exports = function () { /* empty */ };\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(77), __esModule: true };\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(78);\n__webpack_require__(84);\n__webpack_require__(85);\n__webpack_require__(86);\nmodule.exports = __webpack_require__(7).Symbol;\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(3);\nvar has = __webpack_require__(6);\nvar DESCRIPTORS = __webpack_require__(5);\nvar $export = __webpack_require__(14);\nvar redefine = __webpack_require__(40);\nvar META = __webpack_require__(79).KEY;\nvar $fails = __webpack_require__(15);\nvar shared = __webpack_require__(26);\nvar setToStringTag = __webpack_require__(28);\nvar uid = __webpack_require__(16);\nvar wks = __webpack_require__(2);\nvar wksExt = __webpack_require__(29);\nvar wksDefine = __webpack_require__(30);\nvar enumKeys = __webpack_require__(80);\nvar isArray = __webpack_require__(81);\nvar anObject = __webpack_require__(10);\nvar isObject = __webpack_require__(11);\nvar toIObject = __webpack_require__(9);\nvar toPrimitive = __webpack_require__(17);\nvar createDesc = __webpack_require__(12);\nvar _create = __webpack_require__(41);\nvar gOPNExt = __webpack_require__(82);\nvar $GOPD = __webpack_require__(83);\nvar $DP = __webpack_require__(4);\nvar $keys = __webpack_require__(23);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(46).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(31).f = $propertyIsEnumerable;\n __webpack_require__(45).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(22)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(8)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(16)('meta');\nvar isObject = __webpack_require__(11);\nvar has = __webpack_require__(6);\nvar setDesc = __webpack_require__(4).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(15)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(23);\nvar gOPS = __webpack_require__(45);\nvar pIE = __webpack_require__(31);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(24);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(9);\nvar gOPN = __webpack_require__(46).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(31);\nvar createDesc = __webpack_require__(12);\nvar toIObject = __webpack_require__(9);\nvar toPrimitive = __webpack_require__(17);\nvar has = __webpack_require__(6);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(5) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(30)('asyncIterator');\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(30)('observable');\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\nvar MobileMenu = function () {\n function MobileMenu(el) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, MobileMenu);\n\n this.el = el;\n this.open = 0;\n this.bind();\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(MobileMenu, [{\n key: 'bind',\n value: function bind() {\n var _this = this;\n\n this.el.addEventListener('click', function () {\n return _this.toggle();\n });\n }\n }, {\n key: 'toggle',\n value: function toggle() {\n this.el.classList.remove('is-open', 'is-closed');\n if (this.open) {\n this.el.classList.add('is-closed');\n } else {\n this.el.classList.add('is-open');\n }\n this.open = !this.open;\n }\n }]);\n\n return MobileMenu;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MobileMenu);\n\n/***/ }),\n/* 88 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\nvar ReadMore = function () {\n function ReadMore(el, opt) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, ReadMore);\n\n this.el = el;\n this.options = opt;\n this.init();\n this.bind();\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(ReadMore, [{\n key: 'init',\n value: function init() {\n this.trigger = this.el.querySelector(this.options.selectors.trigger);\n this.content = this.el.querySelector(this.options.selectors.content);\n this.contentHeight = this.content.offsetHeight + 'px';\n this.content.style.height = 0;\n }\n }, {\n key: 'bind',\n value: function bind() {\n var _this = this;\n\n this.trigger.addEventListener('click', function () {\n return _this.toggle();\n });\n var resize = utilities.debounce(function (e) {\n return _this.resize(e);\n }, 300);\n window.addEventListener('resize', resize);\n }\n }, {\n key: 'toggle',\n value: function toggle() {\n this.el.classList.contains('is-open') ? this.close() : this.open();\n this.el.classList.toggle('is-open');\n }\n }, {\n key: 'open',\n value: function open() {\n this.content.style.height = this.contentHeight;\n if (this.trigger.textContent && this.trigger.nodeName == \"BUTTON\") this.trigger.textContent = 'Less';\n }\n }, {\n key: 'close',\n value: function close() {\n this.content.style.height = 0;\n if (this.trigger.textContent && this.trigger.nodeName == \"BUTTON\") this.trigger.textContent = 'More';\n }\n }, {\n key: 'resize',\n value: function resize(e) {\n this.contentHeight = this.getHeight(this.content) + 'px';\n if (this.el.classList.contains('is-open')) {\n this.content.style.height = this.contentHeight;\n }\n }\n }, {\n key: 'getHeight',\n value: function getHeight(el) {\n var height = 0;\n for (var i = 0; i < el.children.length; i++) {\n var child = el.children[i];\n var style = getComputedStyle(child);\n height += child.offsetHeight + parseInt(style.getPropertyValue('margin-top')) + parseInt(style.getPropertyValue('margin-bottom'));\n }\n return height;\n }\n }]);\n\n return ReadMore;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ReadMore);\n\n/***/ }),\n/* 89 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\nvar Icons = function () {\n function Icons() {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Icons);\n\n this._timeline = new TimelineMax({\n paused: true\n });\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Icons, [{\n key: 'timeline',\n value: function timeline() {\n this.strategy();\n this.speed();\n this.change();\n this.diversity();\n return this._timeline;\n }\n }, {\n key: 'change',\n value: function change() {\n var svg = document.getElementById('values-change');\n if (!svg) return;\n\n var circle = svg.querySelector('.circle');\n var lines = svg.querySelectorAll('.line');\n\n var timeline = new TimelineMax();\n\n // Circle\n var to = {\n rotation: 180,\n ease: Back.easeIn.config(1.5),\n transformOrigin: \"50% 50%\"\n };\n\n timeline.add(TweenMax.to(circle, 1.2, to));\n\n // Line\n var lineObj = {\n length: 0,\n totalLength: lines[0].getTotalLength()\n };\n\n function drawLine() {\n for (var i = 0; i < lines.length; i++) {\n lines[i].style.strokeDasharray = [lineObj.length, lineObj.totalLength].join(' ');\n }\n }\n\n drawLine();\n\n timeline.to(lineObj, .48, { length: lineObj.totalLength, onUpdate: drawLine, easing: Circ.easeIn }, .72);\n\n this._timeline.add(timeline);\n }\n }, {\n key: 'speed',\n value: function speed() {\n var svg = document.getElementById('values-speed');\n if (!svg) return;\n\n var timeline = new TimelineMax();\n\n timeline.to(svg.querySelector('.spinner'), 1.25, { ease: Power3.easeInOut, rotation: 360, svgOrigin: '96px 96px' });\n\n this._timeline.add(timeline);\n }\n }, {\n key: 'strategy',\n value: function strategy() {\n var svg = document.getElementById('values-strategy');\n if (!svg) return;\n\n var timeline = new TimelineMax();\n\n timeline.from(svg.querySelector('.arrow'), 1, { ease: Expo.easeIn, x: 140, y: -140 });\n\n this._timeline.add(timeline);\n }\n }, {\n key: 'diversity',\n value: function diversity() {\n var svg = document.getElementById('values-unity');\n if (!svg) return;\n\n var pieces = document.querySelectorAll('.piece');\n\n var timeline = new TimelineMax();\n\n timeline.add(TweenMax.to(pieces[0], 0.35, { x: -23, y: 15, scale: 1.05, transformOrigin: \"50% 50%\" }));\n timeline.add(TweenMax.to(pieces[0], .85, { rotation: -90, x: 45, y: -12, scale: 1, transformOrigin: \"50% 50%\" }));\n\n timeline.add(TweenMax.to(pieces[1], 0.35, { x: -15, y: -23, scale: 1.05, transformOrigin: \"50% 50%\" }), 0);\n timeline.add(TweenMax.to(pieces[1], .85, { rotation: -90, x: 12, y: 45, scale: 1, transformOrigin: \"50% 50%\" }), 0.35);\n\n timeline.add(TweenMax.to(pieces[2], 0.35, { x: 15, y: 23, scale: 1.05, transformOrigin: \"50% 50%\" }), 0);\n timeline.add(TweenMax.to(pieces[2], .85, { rotation: -90, x: -12, y: -45, scale: 1, transformOrigin: \"50% 50%\" }), 0.35);\n\n timeline.add(TweenMax.to(pieces[3], 0.35, { x: 23, y: -15, scale: 1.05, transformOrigin: \"50% 50%\" }), 0);\n timeline.add(TweenMax.to(pieces[3], .85, { rotation: -90, x: -45, y: 12, scale: 1, transformOrigin: \"50% 50%\" }), 0.35);\n\n this._timeline.add(timeline);\n }\n }]);\n\n return Icons;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icons);\n\n/***/ }),\n/* 90 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\nvar FileUpload = function () {\n function FileUpload(el) {\n var _this = this;\n\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, FileUpload);\n\n this.el = el instanceof HTMLElement ? el : document.querySelector(el);\n this.build();\n\n this.el.addEventListener('change', function (e) {\n return _this.update(e);\n });\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(FileUpload, [{\n key: 'build',\n value: function build() {\n this.label = document.createElement('label');\n this.label.setAttribute('for', this.el.id);\n this.label.classList.add('Upload');\n\n this.button = document.createElement('span');\n this.button.textContent = this.el.getAttribute('data-label');\n this.button.className = 'Upload-button Button Button--upload';\n this.label.appendChild(this.button);\n\n this.value = document.createElement('span');\n this.value.textContent = 'Please select a file...';\n this.value.classList.add('Upload-value');\n this.label.appendChild(this.value);\n\n this.el.parentNode.insertBefore(this.label, undefined);\n }\n }, {\n key: 'update',\n value: function update(e) {\n this.value.textContent = this.el.value.replace(/^.*[\\/\\\\]([^\\/\\\\].*\\.[A-Za-z]*)/, '$1');\n }\n }]);\n\n return FileUpload;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (FileUpload);\n\n/***/ }),\n/* 91 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\nvar VideoModal = function () {\n function VideoModal(el, opt) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, VideoModal);\n\n this.el = el;\n this.options = opt;\n this.init();\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(VideoModal, [{\n key: 'init',\n value: function init() {\n this.openEls = document.querySelectorAll(this.options.open);\n this.closeEls = document.querySelectorAll(this.options.close);\n this.iframe = this.el.getElementsByTagName('iframe')[0].contentWindow;\n this.bind();\n }\n }, {\n key: 'bind',\n value: function bind() {\n var _this = this;\n\n // Open Buttons\n if (this.openEls.length) {\n for (var i = 0; i < this.openEls.length; i++) {\n this.openEls[i].addEventListener('click', function (e) {\n return _this.open(e);\n });\n }\n }\n\n // Close Buttons\n if (this.closeEls.length) {\n for (var _i = 0; _i < this.closeEls.length; _i++) {\n this.closeEls[_i].addEventListener('click', function (e) {\n return _this.close(e);\n });\n }\n }\n\n // Close on escape\n document.addEventListener('keyup', function (e) {\n if (e.keyCode == 27) {\n _this.close(e);\n }\n });\n }\n }, {\n key: 'close',\n value: function close(e) {\n this.el.classList.remove('is-open');\n if (this.iframe !== null) this.iframe.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n }\n }, {\n key: 'open',\n value: function open(e) {\n this.el.classList.add('is-open');\n if (this.iframe !== null) this.iframe.postMessage('{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*');\n }\n }]);\n\n return VideoModal;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (VideoModal);\n\n/***/ }),\n/* 92 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\nvar CharLimit = function () {\n function CharLimit(el) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, CharLimit);\n\n this.el = el;\n this.init();\n this.bind();\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(CharLimit, [{\n key: 'init',\n value: function init() {\n console.log(this.el);\n this.countDownEl = this.el.parentElement.querySelector('.u-hint');\n this.max = parseInt(this.el.getAttribute('data-charlimit')) | 0;\n }\n }, {\n key: 'bind',\n value: function bind() {\n var _this = this;\n\n this.el.addEventListener('keydown', function (e) {\n return _this.update(e);\n });\n this.el.addEventListener('blur', function (e) {\n return _this.update(e);\n });\n }\n }, {\n key: 'update',\n value: function update(e) {\n var newVal = this.countDownEl.textContent.replace(/-?\\d+/, this.max - this.el.value.length);\n this.countDownEl.textContent = newVal;\n }\n }]);\n\n return CharLimit;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (CharLimit);\n\n/***/ }),\n/* 93 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_Utilities_selector__ = __webpack_require__(48);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_Components_component_manager__ = __webpack_require__(103);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_Components_load_manager__ = __webpack_require__(104);\n\n\n\n\n\n\n\nvar Alert = function () {\n function Alert(el) {\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Alert);\n\n if (!el) return;\n\n this.el = el;\n this.button = Object(__WEBPACK_IMPORTED_MODULE_2_Utilities_selector__[\"b\" /* $1 */])('[data-alert=\"button\"]', el);\n this.text = Object(__WEBPACK_IMPORTED_MODULE_2_Utilities_selector__[\"b\" /* $1 */])('[data-alert=\"text\"]', el);\n this.header = Object(__WEBPACK_IMPORTED_MODULE_2_Utilities_selector__[\"b\" /* $1 */])('[data-alert=\"header\"]');\n this.height = el.offsetHeight;\n this.headerHeight = this.header.offsetHeight;\n this.storage = window.localStorage;\n\n this.init = this.init.bind(this);\n this.bind = this.bind.bind(this);\n this.resize = this.resize.bind(this);\n this.toggleText = this.toggleText.bind(this);\n this.toggleStorage = this.toggleStorage.bind(this);\n\n this.init();\n }\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Alert, [{\n key: \"init\",\n value: function init() {\n if (!this.storage.getItem(\"alertClose\")) {\n this.toggleText();\n }\n this.resize();\n this.bind();\n }\n }, {\n key: \"resize\",\n value: function resize() {\n this.height = this.el.offsetHeight;\n this.header.style.top = this.height + \"px\";\n document.body.style.paddingTop = this.height + \"px\";\n }\n }, {\n key: \"bind\",\n value: function bind() {\n var _this = this;\n\n this.button.addEventListener(\"click\", function () {\n _this.toggleText();\n _this.toggleStorage();\n });\n var resize = utilities.debounce(function () {\n return _this.resize();\n }, 100);\n window.addEventListener(\"resize\", resize);\n }\n }, {\n key: \"toggleText\",\n value: function toggleText() {\n this.el.classList.toggle(\"is-open\");\n this.resize();\n }\n }, {\n key: \"toggleStorage\",\n value: function toggleStorage() {\n if (this.el.classList.contains(\"is-open\")) {\n this.storage.clear();\n } else {\n this.storage.setItem(\"alertClose\", true);\n }\n }\n }]);\n\n return Alert;\n}();\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_4_Components_load_manager__[\"b\" /* default */].queue(function () {\n return new __WEBPACK_IMPORTED_MODULE_3_Components_component_manager__[\"a\" /* default */](Alert, \"[data-js~=alert]\");\n}, __WEBPACK_IMPORTED_MODULE_4_Components_load_manager__[\"a\" /* QUEUE */].DOM));\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(95), __esModule: true };\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(38);\n__webpack_require__(96);\nmodule.exports = __webpack_require__(7).Array.from;\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(33);\nvar $export = __webpack_require__(14);\nvar toObject = __webpack_require__(44);\nvar call = __webpack_require__(97);\nvar isArrayIter = __webpack_require__(98);\nvar toLength = __webpack_require__(43);\nvar createProperty = __webpack_require__(99);\nvar getIterFn = __webpack_require__(100);\n\n$export($export.S + $export.F * !__webpack_require__(102)(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(10);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(13);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(4);\nvar createDesc = __webpack_require__(12);\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(101);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar Iterators = __webpack_require__(13);\nmodule.exports = __webpack_require__(7).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(24);\nvar TAG = __webpack_require__(2)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_Utilities_selector__ = __webpack_require__(48);\n\n\n\n\n\nvar ComponentManager = function () {\n function ComponentManager(component, selector) {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ComponentManager);\n\n if (!selector || !component) return;\n\n this.elements = [].concat(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default()(Object(__WEBPACK_IMPORTED_MODULE_3_Utilities_selector__[\"a\" /* $ */])(selector)));\n this.component = component;\n\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n this.args = args;\n\n if (this.elements.length) {\n this.components = this.elements.map(this.init, this);\n }\n }\n\n __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(ComponentManager, [{\n key: \"init\",\n value: function init(el) {\n var args = this.args.map(function (arg) {\n return typeof arg === \"function\" ? arg(el) : arg;\n });\n return new (Function.prototype.bind.apply(this.component, [null].concat([el], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default()(args))))();\n }\n }]);\n\n return ComponentManager;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ComponentManager);\n\n/***/ }),\n/* 104 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QUEUE; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__ = __webpack_require__(105);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n\n\n\n\nvar LoadManager = function () {\n function LoadManager() {\n var _events,\n _loaded,\n _this = this;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, LoadManager);\n\n this.events = (_events = {}, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_events, QUEUE.DOM, []), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_events, QUEUE.RESOURCES, []), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_events, QUEUE.DONE, []), _events);\n this.loaded = (_loaded = {}, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_loaded, QUEUE.DOM, false), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_loaded, QUEUE.RESOURCES, false), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_loaded, QUEUE.DONE, false), _loaded);\n\n this.run = function (queue, e) {\n _this.loaded[queue] = true;\n\n // console.log(queue, this.events[queue]);\n // performance.now();\n // performance.mark(\"Start loop: \" + queue);\n // this.events[queue].forEach((evt, i) => {\n // let name = i + '(' + evt.name + ')';\n // performance.mark(\"Start load: \" + name);\n // evt()\n // performance.mark(\"End load: \" + name);\n // performance.measure(\"Load: \" + name, \"Start load: \" + name, \"End load: \" + name);\n // });\n // performance.now();\n // performance.mark(\"End loop: \" + queue);\n // performance.measure(\"Loop: \" + queue, \"Start loop: \" + queue, \"End loop: \" + queue);\n\n _this.events[queue].forEach(function (evt) {\n return evt();\n });\n\n _this.unbind(queue);\n\n document.body.classList.add(\"is-\" + queue.toLowerCase() + \"-ready\");\n };\n\n this.bind();\n }\n\n __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(LoadManager, [{\n key: \"bind\",\n value: function bind() {\n this.runDomQueue = this.run.bind(this, QUEUE.DOM);\n this.runResourceQueue = this.run.bind(this, QUEUE.RESOURCES);\n document.addEventListener(\"DOMContentLoaded\", this.runDomQueue);\n window.addEventListener(\"load\", this.runResourceQueue);\n }\n }, {\n key: \"unbind\",\n value: function unbind(queue) {\n switch (queue) {\n case QUEUE.DOM:\n document.removeEventListener(\"DOMContentLoaded\", this.runDomQueue);\n break;\n\n case QUEUE.RESOURCES:\n window.removeEventListener(\"load\", this.runResourceQueue);\n }\n }\n }, {\n key: \"queue\",\n value: function queue(func, _queue) {\n if (typeof func !== 'function') {\n throw new Error('Event must be a function');\n }\n\n if (typeof _queue === \"undefined\") {\n throw new Error(\"Load Queue must be defined\");\n }\n\n if (typeof this.loaded[_queue] !== \"boolean\" || typeof this.loaded[_queue] !== \"undefined\" && !Array.isArray(this.events[_queue])) {\n throw new Error(\"Load Queue type does not exist\");\n }\n\n this.events[_queue].push(func);\n if (this.loaded[_queue]) {\n func();\n }\n }\n }]);\n\n return LoadManager;\n}();\n\nvar QUEUE = {\n DOM: \"DOM\",\n RESOURCES: \"RESOURCES\",\n DONE: \"DONE\"\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (new LoadManager());\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(32);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n],[50]);\n\n\n// WEBPACK FOOTER //\n// scripts/app.js","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/helpers/classCallCheck.js\n// module id = 0\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/helpers/createClass.js\n// module id = 1\n// module chunks = 0","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_wks.js\n// module id = 2\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_global.js\n// module id = 3\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-dp.js\n// module id = 4\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_descriptors.js\n// module id = 5\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_has.js\n// module id = 6\n// module chunks = 0","var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_core.js\n// module id = 7\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_hide.js\n// module id = 8\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_to-iobject.js\n// module id = 9\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_an-object.js\n// module id = 10\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_is-object.js\n// module id = 11\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_property-desc.js\n// module id = 12\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_iterators.js\n// module id = 13\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_export.js\n// module id = 14\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_fails.js\n// module id = 15\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_uid.js\n// module id = 16\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_to-primitive.js\n// module id = 17\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_to-integer.js\n// module id = 20\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_defined.js\n// module id = 21\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_library.js\n// module id = 22\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-keys.js\n// module id = 23\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_cof.js\n// module id = 24\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_shared-key.js\n// module id = 25\n// module chunks = 0","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_shared.js\n// module id = 26\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_enum-bug-keys.js\n// module id = 27\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_set-to-string-tag.js\n// module id = 28\n// module chunks = 0","exports.f = require('./_wks');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_wks-ext.js\n// module id = 29\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_wks-define.js\n// module id = 30\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-pie.js\n// module id = 31\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/core-js/object/define-property.js\n// module id = 32\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_ctx.js\n// module id = 33\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 34\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_dom-create.js\n// module id = 35\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/es6.string.iterator.js\n// module id = 38\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_iter-define.js\n// module id = 39\n// module chunks = 0","module.exports = require('./_hide');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_redefine.js\n// module id = 40\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-create.js\n// module id = 41\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-keys-internal.js\n// module id = 42\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_to-length.js\n// module id = 43\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_to-object.js\n// module id = 44\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-gops.js\n// module id = 45\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-gopn.js\n// module id = 46\n// module chunks = 0","/**\r\n * Office Map Pins\r\n */\r\nclass Pin {\r\n constructor(el, map) {\r\n this.el = el;\r\n this.map = map;\r\n this.active = false;\r\n this.init();\r\n this.bind();\r\n }\r\n\r\n init() {\r\n var meta = JSON.parse(this.el.getAttribute('data-pin'));\r\n this.data = meta;\r\n this.data.name = this.el.getAttribute('data-name');\r\n this.label = this.el.getAttribute('data-label');\r\n }\r\n\r\n bind() {\r\n this.el.addEventListener('click', e => this.setActive(e));\r\n }\r\n\r\n setActive(e) {\r\n this.map.setActive(this);\r\n }\r\n\r\n toggle(active) {\r\n this.active = active;\r\n this.el.classList.toggle('is-active');\r\n }\r\n}\r\n\r\nexport default Pin;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/pin.js","export function $(el, scope){\r\n return (scope || document).querySelectorAll(el);\r\n}\r\n\r\nexport function $1(el, scope){\r\n return (scope || document).querySelector(el);\r\n}\r\n\r\nexport function closest(selector, el) {\r\n let elements = [...$(selector)];\r\n if ( ! elements.length ) return null;\r\n do {\r\n el = el.parentNode;\r\n } while ( elements.indexOf(el) < 0 );\r\n return el;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/Utilities/selector.js","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 49\n// module chunks = 0","// Import Dependencies\r\nimport imagesLoaded from 'imagesloaded';\r\nimport Wallop from 'wallop';\r\nimport Hammer from 'HammerJS';\r\nimport ScrollMagic from 'scrollmagic';\r\n\r\n// Import Components\r\nimport utilities from './components/utilities';\r\nimport map from './components/map';\r\nimport Pagination from './components/pagination';\r\nimport Collapsible from './components/collapse';\r\nimport OfficeMap from './components/officemap';\r\nimport Pin from './components/pin';\r\nimport MobileMenu from './components/mobilemenu';\r\nimport ReadMore from './components/readmore';\r\nimport Icons from './components/icons';\r\nimport FileUpload from './components/fileupload';\r\nimport VideoModal from './components/videomodal';\r\nimport CharLimit from './components/charlimit';\r\nimport './components/alert';\r\n\r\nwindow.utilities = utilities;\r\n\r\nclass App {\r\n // Initialise Application Components\r\n constructor() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.initScrollTo();\r\n this.initCarousel();\r\n this.initModal();\r\n this.initPagination();\r\n this.imagesLoaded = imagesLoaded(document.querySelector('.SiteMain'));\r\n this.imagesLoaded.on('always', () => {\r\n document.body.classList.add('is-loaded');\r\n this.initCollapseBlocks();\r\n this.initReadMore();\r\n });\r\n this.initOfficeMap();\r\n this.initMiniSearch();\r\n this.initFileUpload();\r\n this.initCharLimit();\r\n this.initScrollMagic();\r\n this.initIcons();\r\n this.initStaff();\r\n\r\n new MobileMenu(document.querySelector('.Nav-button'));\r\n });\r\n }\r\n\r\n // Initialise Smooth Loading\r\n smoothLoad() {\r\n window.onbeforeunload = () => {\r\n document.body.classList.remove('is-loaded');\r\n };\r\n }\r\n\r\n // Initialise ScrollTo\r\n initScrollTo() {\r\n // On click\r\n var links = document.querySelectorAll('a[href*=\"#\"]');\r\n for ( var i = 0; i < links.length; i++ ) {\r\n links[i].addEventListener('click', scrollFunc);\r\n }\r\n\r\n function scrollFunc(e) {\r\n let index = this.getAttribute('href').indexOf('#');\r\n let href = this.getAttribute('href').substr(index+1);\r\n let el = document.getElementById(href);\r\n if ( el ) {\r\n e.preventDefault();\r\n let boundingBox = el.getBoundingClientRect();\r\n let scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n let to = boundingBox.top + scrollTop;\r\n\r\n TweenLite.to(window, 1, {scrollTo:{y:to}, ease:Power2.easeOut});\r\n if ( el.classList.contains('Collapse-anchor') && ! el.parentElement.classList.contains('is-open') ) {\r\n el.nextElementSibling.click();\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Initialise Carousels\r\n initCarousel() {\r\n let carousels = document.querySelectorAll('[data-js=\"carousel\"]');\r\n\r\n if ( carousels === null )\r\n return false;\r\n\r\n this.carousels = [];\r\n\r\n let opt = {\r\n itemClass: 'js-slide',\r\n currentItemClass: 'is-active',\r\n showPreviousClass: 'Hero-image--showPrevious',\r\n showNextClass: 'Hero-image--showNext',\r\n hidePreviousClass: 'Hero-image--hidePrevious',\r\n hideNextClass: 'Hero-image--hideNext',\r\n };\r\n\r\n for ( var i = 0; i < carousels.length; i++ ) {\r\n this.carousels.push(new Wallop(carousels[i], opt));\r\n }\r\n\r\n setInterval(function(){\r\n for ( var i = 0; i < carousels.length; i++ ) {\r\n app.carousels[i].next();\r\n }\r\n }, 5000);\r\n }\r\n\r\n // Initialise Video Modals\r\n initModal() {\r\n let modalEl = document.querySelector('[data-js=\"modal\"]');\r\n if ( ! modalEl )\r\n return false;\r\n\r\n this.modal = new VideoModal(modalEl, {\r\n open: '[data-js=\"modal-open\"]',\r\n close: '[data-js=\"modal-close\"]'\r\n });\r\n }\r\n\r\n // Initialise Collapsible Blocks\r\n initCollapseBlocks() {\r\n let elements = document.querySelectorAll('[data-js=\"collapse\"]');\r\n\r\n if ( elements === null )\r\n return false;\r\n\r\n let opt = {\r\n selectors: {\r\n head: '[data-js=\"collapse-header\"]',\r\n body: '[data-js=\"collapse-body\"]',\r\n intro: '[data-js=\"collapse-intro\"]',\r\n content: '[data-js=\"collapse-content\"]',\r\n }\r\n };\r\n\r\n this.collapsibles = [];\r\n for ( let i = 0; i < elements.length; i++ ) {\r\n this.collapsibles.push(new Collapsible(elements[i], opt));\r\n }\r\n }\r\n\r\n // Initialise Office Map\r\n initOfficeMap() {\r\n let officeMapEl = document.querySelector('[data-js=\"officemeta\"]');\r\n\r\n if ( officeMapEl === null )\r\n return false;\r\n\r\n let opt = {\r\n pins: '[data-js=\"pin\"]',\r\n meta: {\r\n name: '[data-js=\"officemeta-name\"]',\r\n established: '[data-js=\"officemeta-established\"]',\r\n address: '[data-js=\"officemeta-address\"]',\r\n description: '[data-js=\"officemeta-description\"]'\r\n },\r\n button: '[data-js=\"officemeta-website\"]'\r\n };\r\n\r\n this.officeMap = new OfficeMap(officeMapEl, opt);\r\n }\r\n\r\n // Initialise Read More\r\n initReadMore() {\r\n let readMoreEls = document.querySelectorAll('[data-js=\"readmore\"]');\r\n\r\n if ( ! readMoreEls.length )\r\n return false;\r\n\r\n this.readMore = [];\r\n\r\n let opt = {\r\n selectors: {\r\n trigger: '[data-js=\"readmore-button\"]',\r\n content: '[data-js=\"readmore-content\"]'\r\n }\r\n };\r\n\r\n for ( let i = 0; i < readMoreEls.length; i++ ) {\r\n this.readMore.push(new ReadMore(readMoreEls[i], opt));\r\n }\r\n }\r\n\r\n // Initialise MiniSearch\r\n initMiniSearch() {\r\n this.minisearch = false;\r\n let form = document.querySelector('[data-js=\"minisearch\"]');\r\n let input = document.querySelector('[data-js=\"minisearch-input\"]');\r\n let button = document.querySelector('[data-js=\"minisearch-button\"]');\r\n let inputWrap = document.querySelector('[data-js=\"minisearch-wrap\"]');\r\n let nav = document.querySelector('.Nav');\r\n\r\n let toggle = () => {\r\n this.minisearch = ! this.minisearch;\r\n inputWrap.classList.toggle('is-open');\r\n nav.classList.toggle('has-minisearch');\r\n };\r\n\r\n let close = () => {\r\n if ( inputWrap.classList.contains('is-open') ) {\r\n toggle();\r\n }\r\n };\r\n\r\n let inputChange = (e) => {\r\n let value = input.value;\r\n button.setAttribute('type', value.length ? 'submit' : 'button');\r\n };\r\n\r\n button.addEventListener('click', toggle);\r\n input.addEventListener('keyup', inputChange);\r\n\r\n document.addEventListener('click', (e) => {\r\n if ( ! form.contains(e.target) ) {\r\n close();\r\n }\r\n });\r\n\r\n document.addEventListener('keyup', (e) => {\r\n if ( e.keyCode == 27 ) {\r\n close();\r\n }\r\n });\r\n }\r\n\r\n // Initialise Bulletin Pagination\r\n initPagination() {\r\n let pages = document.querySelector('[data-js=\"pagination\"]');\r\n\r\n if ( pages === null )\r\n return false;\r\n\r\n let opt = {\r\n itemClass: 'js-page',\r\n currentItemClass: 'is-active',\r\n showPreviousClass: 'List-page--showPrevious',\r\n showNextClass: 'List-page--showNext',\r\n hidePreviousClass: 'List-page--hidePrevious',\r\n hideNextClass: 'List-page--hideNext',\r\n dots: true,\r\n arrows: true,\r\n dynamicHeight: true,\r\n buttonPreviousClass: 'js-prev',\r\n buttonNextClass: 'js-next',\r\n dotClass: 'js-dot',\r\n wrapperClass: 'js-wrapper'\r\n };\r\n\r\n this.pagination = new Pagination(pages, opt);\r\n }\r\n\r\n // Initialise CV File Uploads\r\n initFileUpload() {\r\n let fileUploads = document.querySelectorAll('input[type=\"file\"]');\r\n if ( ! fileUploads )\r\n return;\r\n\r\n this.fileUploads = [];\r\n\r\n for ( let i = 0; i < fileUploads.length; i++ ) {\r\n this.fileUploads.push(new FileUpload(fileUploads[i]));\r\n }\r\n }\r\n\r\n // Initialise Textarea Character Limit\r\n initCharLimit() {\r\n let charLimitEl = document.querySelector('[data-charlimit]');\r\n if ( ! charLimitEl )\r\n return;\r\n\r\n this.charLimit = new CharLimit(charLimitEl);\r\n }\r\n\r\n // Initialise ScrollMagic Scenes\r\n initScrollMagic() {\r\n // Create Controller\r\n this.controller = new ScrollMagic.Controller();\r\n\r\n // Header Scrolling Trigger\r\n const headerEl = document.querySelector('.Header');\r\n if ( headerEl ) {\r\n const subheaderEl = document.querySelector('.Nav-subBg');\r\n const headerTween = TweenMax.fromTo(headerEl, 1, {backgroundColor: 'rgba(0,81,186,.8)'}, {backgroundColor: 'rgba(0,81,186,1)', paused: true});\r\n const submenuTween = TweenMax.fromTo(subheaderEl, 1, {backgroundColor: 'rgba(0, 69, 152, .8)'}, {backgroundColor: 'rgba(0, 71, 159, 1)', paused: true});\r\n\r\n if ( document.querySelector('.Hero') ) {\r\n const headerSceneEl = document.querySelector('.Hero');\r\n const headerScene = new ScrollMagic.Scene({\r\n triggerElement: headerSceneEl,\r\n triggerHook: \"onLeave\",\r\n duration: 400,\r\n });\r\n\r\n headerScene.on(\"progress\", function(event) {\r\n headerTween.progress(event.progress);\r\n submenuTween.progress(event.progress);\r\n });\r\n headerScene.addTo(this.controller);\r\n\r\n } else {\r\n headerTween.progress(1);\r\n submenuTween.progress(1);\r\n }\r\n }\r\n\r\n // Hero Scroll Effect\r\n var heroImages = document.querySelector('.Hero-parallax') || document.querySelector('.Hero-photo');\r\n\r\n if ( heroImages ) {\r\n const heroTween = TweenMax.fromTo(heroImages, 2, {y: -50, opacity: 1}, {y: 100, opacity: 0.5, paused: true});\r\n\r\n var heroSceneEl = document.querySelector('.Hero');\r\n var duration = heroSceneEl.offsetHeight;\r\n var heroScene = new ScrollMagic.Scene({\r\n triggerElement: heroSceneEl,\r\n triggerHook: \"onLeave\",\r\n duration: duration\r\n });\r\n\r\n heroScene.on(\"progress\", function(event) {\r\n heroTween.progress(event.progress);\r\n });\r\n heroScene.addTo(this.controller);\r\n }\r\n\r\n // Compass Scroll Effect\r\n var compassEl = document.querySelector(\"[data-js=sm-compass]\");\r\n\r\n if ( compassEl ) {\r\n // Create Tween\r\n const compassTween = TweenMax.fromTo(compassEl, 1, {y: 50}, {y: -30, paused: true});\r\n\r\n // Create Scene\r\n var compassSceneEl = document.querySelector(\"[data-js=sm-notices]\");\r\n var compassScene = new ScrollMagic.Scene({\r\n triggerElement: compassSceneEl,\r\n duration: compassSceneEl.offsetHeight\r\n });\r\n\r\n // Progress tween over scene\r\n compassScene.on(\"progress\", function(event) {\r\n compassTween.seek(event.progress);\r\n });\r\n\r\n compassScene.addTo(this.controller);\r\n }\r\n }\r\n\r\n // Initialise Icon Animations\r\n initIcons() {\r\n this.icons = new Icons();\r\n\r\n var iconSceneEl = document.querySelector('[data-js=sm-icons]');\r\n var iconScene = new ScrollMagic.Scene({\r\n triggerElement: iconSceneEl,\r\n reverse: false\r\n });\r\n\r\n iconScene.on(\"enter\", (e) => {\r\n this.icons.timeline().play();\r\n iconScene.enabled(false);\r\n });\r\n\r\n iconScene.addTo(this.controller);\r\n }\r\n\r\n // Initialise Carousels\r\n initStaff() {\r\n \r\n let carouselEl = document.querySelector('[data-js=\"staff\"]');\r\n \r\n if ( carouselEl === null )\r\n return false;\r\n\r\n // if (window.innerWidth > 767 )\r\n // return false;\r\n\r\n let buttons = carouselEl.querySelectorAll('[data-button]');\r\n\r\n let opt = {\r\n itemClass: 'Staff-member',\r\n currentItemClass: 'is-active',\r\n showPreviousClass: 'Staff-member--showPrevious',\r\n showNextClass: 'Staff-member--showNext',\r\n hidePreviousClass: 'Staff-member--hidePrevious',\r\n hideNextClass: 'Staff-member--hideNext',\r\n };\r\n\r\n let carousel = new Wallop(carouselEl, opt);\r\n\r\n let carouselTimer = setInterval(function () {\r\n carousel.next();\r\n }, 5000);\r\n\r\n let hammertime = new Hammer(carouselEl);\r\n hammertime.on('swiperight', function (ev) {\r\n carousel.previous();\r\n clearInterval(carouselTimer);\r\n });\r\n hammertime.on('swipeleft', function (ev) {\r\n carousel.next();\r\n clearInterval(carouselTimer);\r\n });\r\n\r\n carouselEl.querySelector('[data-button=\"prev\"]').addEventListener(\"click\", function () {\r\n carousel.previous();\r\n });\r\n\r\n carouselEl.querySelector('[data-button=\"next\"]').addEventListener(\"click\", function () {\r\n carousel.next();\r\n });\r\n \r\n \r\n }\r\n}\r\n\r\nwindow.app = new App();\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/app.js","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/fn/object/define-property.js\n// module id = 52\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 53\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_a-function.js\n// module id = 54\n// module chunks = 0","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/HammerJS/hammer.js\n// module id = 56\n// module chunks = 0","//import mapStyle from './map-styles.json';\r\n\r\nvar map;\r\n\r\nfunction initMap() {\r\n var mapEl = document.getElementById('map');\r\n\r\n if ( mapEl ) {\r\n var center = {\r\n lat: parseFloat(mapEl.getAttribute('data-lat')),\r\n lng: parseFloat(mapEl.getAttribute('data-lng'))\r\n };\r\n\r\n map = new google.maps.Map(mapEl, {\r\n center: center,\r\n zoom: parseInt(mapEl.getAttribute('data-zoom')),\r\n //styles: mapStyle,\r\n scrollwheel: false,\r\n });\r\n\r\n var image = '/images/pin.png';\r\n\r\n var marker = new google.maps.Marker({\r\n position: center,\r\n map: map,\r\n title: mapEl.getAttribute('data-title'),\r\n icon: image,\r\n });\r\n }\r\n}\r\n\r\ninitMap();\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/map.js","import Wallop from 'wallop';\r\n\r\nclass Pagination {\r\n constructor(el, opts) {\r\n this.el = el;\r\n this.options = opts;\r\n this.init();\r\n }\r\n\r\n // Initialise\r\n init() {\r\n this.carousel = new Wallop(this.el, this.options);\r\n\r\n this.carousel.on('change', e => this.change(e));\r\n\r\n if ( this.options.dots ) {\r\n this.initDots();\r\n }\r\n\r\n if ( this.options.dynamicHeight ) {\r\n this.wrapper = this.getEl(this.options.wrapperClass)[0];\r\n }\r\n }\r\n\r\n change(e) {\r\n if ( this.options.dots && this.dots.length ) {\r\n this.getEl(this.options.dotClass + '.is-active')[0].classList.remove('is-active');\r\n this.dots[event.detail.currentItemIndex].classList.add('is-active');\r\n }\r\n if ( this.options.dynamicHeight && this.wrapper ) {\r\n let newHeight = this.carousel.allItemsArray[this.carousel.currentItemIndex].offsetHeight;\r\n this.wrapper.style.height = newHeight + 'px';\r\n }\r\n }\r\n\r\n initDots() {\r\n this.dots = this.getEl(this.options.dotClass);\r\n for ( let i = 0; i < this.dots.length; i++ ) {\r\n this.dots[i].addEventListener('click', e => this.jump(e));\r\n }\r\n }\r\n\r\n jump(e) {\r\n this.carousel.goTo(parseInt(e.target.text) - 1);\r\n }\r\n\r\n // Helpers\r\n getEl(selector) {\r\n return this.el.querySelectorAll('.' + selector);\r\n }\r\n\r\n}\r\n\r\nexport default Pagination;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/pagination.js","import utilities from './utilities';\r\n\r\n/**\r\n * Collapsible Blocks\r\n */\r\nclass Collapsible {\r\n constructor(el, options) {\r\n this.el = el;\r\n this.options = options;\r\n this.head = el.querySelector(this.options.selectors.head);\r\n this.intro = el.querySelector(this.options.selectors.intro);\r\n this.body = el.querySelector(this.options.selectors.body);\r\n this.content = el.querySelector(this.options.selectors.content);\r\n this.baseHeight = this.content.offsetHeight + 'px';\r\n\r\n if ( this.intro ) {\r\n this.introHeight = ( this.intro.offsetHeight + 15 ) + 'px';\r\n }\r\n\r\n this.bind();\r\n if ( ! el.classList.contains('is-open') )\r\n this.close();\r\n }\r\n\r\n bind() {\r\n this.head.addEventListener('click', e => this.toggle(e));\r\n let resize = utilities.debounce(e => this.resize(e), 300);\r\n window.addEventListener('resize', resize);\r\n }\r\n\r\n toggle() {\r\n this.el.classList.contains('is-open') ? this.close() : this.open();\r\n this.el.classList.toggle('is-open');\r\n }\r\n\r\n open() {\r\n this.body.style.height = this.baseHeight;\r\n if ( this.intro ) {\r\n this.intro.style.height = this.introHeight;\r\n }\r\n }\r\n\r\n close() {\r\n this.baseHeight = this.content.offsetHeight + 'px';\r\n this.body.style.height = 0;\r\n if ( this.intro ) {\r\n this.intro.style.height = 0;\r\n }\r\n }\r\n\r\n resize(e) {\r\n this.baseHeight = this.content.offsetHeight + 'px';\r\n if ( this.el.classList.contains('is-open') ) {\r\n this.body.style.height = this.baseHeight;\r\n this.intro.style.height = 'auto';\r\n this.intro.style.height = ( this.intro.offsetHeight + 15 ) + 'px';\r\n }\r\n }\r\n}\r\n\r\nexport default Collapsible;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/collapse.js","import Pin from './pin';\r\n/**\r\n * Office Map\r\n */\r\nclass OfficeMap {\r\n constructor(el, options) {\r\n this.el = el;\r\n this.pins = [];\r\n this.pinElements = document.querySelectorAll(options.pins);\r\n this.metaSelectors = options.meta;\r\n this.metaElements = {};\r\n this.metaButton = this.getElement(options.button);\r\n this.active = null;\r\n this.initPins();\r\n this.initMeta();\r\n this.initSelect();\r\n this.setActive(this.pins[0]);\r\n }\r\n\r\n // Build Pins\r\n initPins() {\r\n for ( var i = 0; i < this.pinElements.length; i++ ) {\r\n this.pins.push(new Pin(this.pinElements[i], this));\r\n }\r\n }\r\n\r\n // Store elements\r\n initMeta() {\r\n for ( var key in this.metaSelectors ) {\r\n this.metaElements[key] = this.getElement(this.metaSelectors[key]);\r\n }\r\n }\r\n\r\n // Mobile select\r\n initSelect() {\r\n this.select = document.querySelector('[data-js=officemap-select]');\r\n this.select.addEventListener('change', (e) => {\r\n this.pinElements[this.select.value].click();\r\n });\r\n }\r\n\r\n // Get Child Elements\r\n getElement(selector) {\r\n return this.el.querySelector(selector);\r\n }\r\n\r\n // Update active office\r\n setActive(pin) {\r\n this.clearActive();\r\n this.active = pin;\r\n this.active.toggle(1);\r\n\r\n if (this.metaButton) {\r\n if ( pin.label === 'UK' ) {\r\n this.metaButton.classList.add('is-hidden');\r\n } else {\r\n this.metaButton.classList.remove('is-hidden');\r\n this.metaButton.setAttribute('href', pin.data.website);\r\n }\r\n }\r\n\r\n for ( var key in this.metaElements ) {\r\n if ( this.metaElements[key] ) {\r\n let labelElement = this.metaElements[key].previousElementSibling;\r\n if ( labelElement ) {\r\n if ( pin.data[key] === null ) {\r\n labelElement.classList.add('is-hidden');\r\n } else {\r\n labelElement.classList.remove('is-hidden');\r\n }\r\n }\r\n\r\n this.metaElements[key].classList.add('is-hidden');\r\n setTimeout(this.metaFadeIn.bind(this, key, pin), 200);\r\n }\r\n }\r\n }\r\n\r\n clearActive() {\r\n if ( this.active ) {\r\n this.active.toggle(0);\r\n this.active = null;\r\n }\r\n }\r\n\r\n metaFadeIn(key, pin) {\r\n if ( typeof pin.data[key] == \"object\" && pin.data[key] !== null ) {\r\n this.metaElements[key].previousElementSibling.innerHTML = pin.data[key].label;\r\n this.metaElements[key].innerHTML = pin.data[key].value;\r\n } else {\r\n this.metaElements[key].innerHTML = pin.data[key];\r\n }\r\n this.metaElements[key].classList.remove('is-hidden');\r\n }\r\n}\r\n\r\nexport default OfficeMap;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/officemap.js","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/helpers/typeof.js\n// module id = 61\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 62\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 63\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_string-at.js\n// module id = 64\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_iter-create.js\n// module id = 65\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-dps.js\n// module id = 66\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_iobject.js\n// module id = 67\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_array-includes.js\n// module id = 68\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_to-absolute-index.js\n// module id = 69\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_html.js\n// module id = 70\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-gpo.js\n// module id = 71\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 72\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 73\n// module chunks = 0","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 74\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_iter-step.js\n// module id = 75\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/core-js/symbol.js\n// module id = 76\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/fn/symbol/index.js\n// module id = 77\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/es6.symbol.js\n// module id = 78\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_meta.js\n// module id = 79\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_enum-keys.js\n// module id = 80\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_is-array.js\n// module id = 81\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 82\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_object-gopd.js\n// module id = 83\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 85\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 86\n// module chunks = 0","class MobileMenu {\r\n constructor(el) {\r\n this.el = el;\r\n this.open = 0;\r\n this.bind();\r\n }\r\n\r\n bind() {\r\n this.el.addEventListener('click', () => this.toggle());\r\n }\r\n\r\n toggle() {\r\n this.el.classList.remove('is-open', 'is-closed');\r\n if ( this.open ) {\r\n this.el.classList.add('is-closed');\r\n } else {\r\n this.el.classList.add('is-open');\r\n }\r\n this.open = ! this.open;\r\n }\r\n}\r\n\r\nexport default MobileMenu;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/mobilemenu.js","class ReadMore {\r\n constructor(el, opt) {\r\n this.el = el;\r\n this.options = opt;\r\n this.init();\r\n this.bind();\r\n }\r\n\r\n init() {\r\n this.trigger = this.el.querySelector(this.options.selectors.trigger);\r\n this.content = this.el.querySelector(this.options.selectors.content);\r\n this.contentHeight = this.content.offsetHeight + 'px';\r\n this.content.style.height = 0;\r\n }\r\n\r\n bind() {\r\n this.trigger.addEventListener('click', () => this.toggle());\r\n let resize = utilities.debounce(e => this.resize(e), 300);\r\n window.addEventListener('resize', resize);\r\n }\r\n\r\n toggle() {\r\n this.el.classList.contains('is-open') ? this.close() : this.open();\r\n this.el.classList.toggle('is-open');\r\n }\r\n\r\n open() {\r\n this.content.style.height = this.contentHeight;\r\n if ( this.trigger.textContent && this.trigger.nodeName == \"BUTTON\" )\r\n this.trigger.textContent = 'Less';\r\n }\r\n\r\n close() {\r\n this.content.style.height = 0;\r\n if ( this.trigger.textContent && this.trigger.nodeName == \"BUTTON\" )\r\n this.trigger.textContent = 'More';\r\n }\r\n\r\n resize(e) {\r\n this.contentHeight = this.getHeight(this.content) + 'px';\r\n if ( this.el.classList.contains('is-open') ) {\r\n this.content.style.height = this.contentHeight;\r\n }\r\n }\r\n\r\n getHeight(el) {\r\n let height = 0;\r\n for ( let i = 0; i < el.children.length; i++ ) {\r\n let child = el.children[i];\r\n let style = getComputedStyle(child);\r\n height += ( child.offsetHeight + parseInt(style.getPropertyValue('margin-top')) + parseInt(style.getPropertyValue('margin-bottom')) );\r\n }\r\n return height;\r\n }\r\n}\r\n\r\nexport default ReadMore;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/readmore.js","class Icons {\r\n constructor() {\r\n this._timeline = new TimelineMax({\r\n paused: true\r\n });\r\n }\r\n\r\n timeline() {\r\n this.strategy();\r\n this.speed();\r\n this.change();\r\n this.diversity();\r\n return this._timeline;\r\n }\r\n\r\n change() {\r\n const svg = document.getElementById('values-change');\r\n if ( ! svg ) return;\r\n\r\n const circle = svg.querySelector('.circle');\r\n const lines = svg.querySelectorAll('.line');\r\n\r\n let timeline = new TimelineMax();\r\n\r\n // Circle\r\n let to = {\r\n rotation: 180,\r\n ease: Back.easeIn.config(1.5),\r\n transformOrigin: \"50% 50%\",\r\n };\r\n\r\n timeline.add(TweenMax.to(circle, 1.2, to));\r\n\r\n // Line\r\n let lineObj = {\r\n length: 0,\r\n totalLength: lines[0].getTotalLength()\r\n };\r\n\r\n function drawLine() {\r\n for ( var i = 0; i < lines.length; i++ ) {\r\n lines[i].style.strokeDasharray = [lineObj.length, lineObj.totalLength].join(' ');\r\n }\r\n }\r\n\r\n drawLine();\r\n\r\n timeline.to(lineObj, .48, {length: lineObj.totalLength, onUpdate: drawLine, easing: Circ.easeIn}, .72);\r\n\r\n this._timeline.add(timeline);\r\n }\r\n\r\n speed() {\r\n const svg = document.getElementById('values-speed')\r\n if ( ! svg ) return;\r\n\r\n const timeline = new TimelineMax();\r\n\r\n timeline.to(svg.querySelector('.spinner'), 1.25, { ease: Power3.easeInOut, rotation: 360, svgOrigin: '96px 96px' })\r\n\r\n this._timeline.add(timeline)\r\n }\r\n\r\n strategy() {\r\n const svg = document.getElementById('values-strategy')\r\n if ( ! svg ) return;\r\n\r\n const timeline = new TimelineMax();\r\n\r\n timeline.from(svg.querySelector('.arrow'), 1, { ease: Expo.easeIn, x: 140, y: -140 })\r\n\r\n this._timeline.add(timeline)\r\n }\r\n\r\n diversity() {\r\n const svg = document.getElementById('values-unity');\r\n if ( ! svg ) return;\r\n\r\n const pieces = document.querySelectorAll('.piece');\r\n\r\n let timeline = new TimelineMax();\r\n\r\n timeline.add(TweenMax.to(pieces[0], 0.35, {x: -23, y: 15, scale: 1.05, transformOrigin: \"50% 50%\"}));\r\n timeline.add(TweenMax.to(pieces[0], .85, {rotation: -90, x: 45, y: -12, scale: 1, transformOrigin: \"50% 50%\"}));\r\n\r\n timeline.add(TweenMax.to(pieces[1], 0.35, {x: -15, y: -23, scale: 1.05, transformOrigin: \"50% 50%\"}), 0);\r\n timeline.add(TweenMax.to(pieces[1], .85, {rotation: -90, x: 12, y: 45, scale: 1, transformOrigin: \"50% 50%\"}), 0.35);\r\n\r\n timeline.add(TweenMax.to(pieces[2], 0.35, {x: 15, y: 23, scale: 1.05, transformOrigin: \"50% 50%\"}), 0);\r\n timeline.add(TweenMax.to(pieces[2], .85, {rotation: -90, x: -12, y: -45, scale: 1, transformOrigin: \"50% 50%\"}), 0.35);\r\n\r\n timeline.add(TweenMax.to(pieces[3], 0.35, {x: 23, y: -15, scale: 1.05, transformOrigin: \"50% 50%\"}), 0);\r\n timeline.add(TweenMax.to(pieces[3], .85, {rotation: -90, x: -45, y: 12, scale: 1, transformOrigin: \"50% 50%\"}), 0.35);\r\n\r\n this._timeline.add(timeline);\r\n }\r\n}\r\n\r\nexport default Icons;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/icons.js","class FileUpload {\r\n constructor(el) {\r\n this.el = el instanceof HTMLElement ? el : document.querySelector(el);\r\n this.build();\r\n\r\n this.el.addEventListener('change', e => this.update(e));\r\n }\r\n\r\n build() {\r\n this.label = document.createElement('label');\r\n this.label.setAttribute('for', this.el.id);\r\n this.label.classList.add('Upload');\r\n\r\n this.button = document.createElement('span');\r\n this.button.textContent = this.el.getAttribute('data-label');\r\n this.button.className = 'Upload-button Button Button--upload';\r\n this.label.appendChild(this.button);\r\n\r\n this.value = document.createElement('span');\r\n this.value.textContent = 'Please select a file...';\r\n this.value.classList.add('Upload-value');\r\n this.label.appendChild(this.value);\r\n\r\n this.el.parentNode.insertBefore(this.label, undefined);\r\n }\r\n\r\n update(e) {\r\n this.value.textContent = this.el.value.replace(/^.*[\\/\\\\]([^\\/\\\\].*\\.[A-Za-z]*)/, '$1');\r\n }\r\n}\r\n\r\nexport default FileUpload;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/fileupload.js","class VideoModal {\r\n constructor(el, opt) {\r\n this.el = el;\r\n this.options = opt;\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.openEls = document.querySelectorAll(this.options.open);\r\n this.closeEls = document.querySelectorAll(this.options.close);\r\n this.iframe = this.el.getElementsByTagName('iframe')[0].contentWindow;\r\n this.bind();\r\n }\r\n\r\n bind() {\r\n // Open Buttons\r\n if ( this.openEls.length ) {\r\n for ( let i = 0; i < this.openEls.length; i++ ) {\r\n this.openEls[i].addEventListener('click', e => this.open(e));\r\n }\r\n }\r\n\r\n // Close Buttons\r\n if ( this.closeEls.length ) {\r\n for ( let i = 0; i < this.closeEls.length; i++ ) {\r\n this.closeEls[i].addEventListener('click', e => this.close(e));\r\n }\r\n }\r\n\r\n // Close on escape\r\n document.addEventListener('keyup', e => {\r\n if ( e.keyCode == 27 ) {\r\n this.close(e);\r\n }\r\n });\r\n }\r\n\r\n close(e) {\r\n this.el.classList.remove('is-open');\r\n if ( this.iframe !== null )\r\n this.iframe.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\r\n }\r\n\r\n open(e) {\r\n this.el.classList.add('is-open');\r\n if ( this.iframe !== null )\r\n this.iframe.postMessage('{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*');\r\n }\r\n\r\n}\r\n\r\nexport default VideoModal;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/videomodal.js","class CharLimit {\r\n constructor(el) {\r\n this.el = el;\r\n this.init();\r\n this.bind();\r\n }\r\n\r\n init() {\r\n console.log(this.el);\r\n this.countDownEl = this.el.parentElement.querySelector('.u-hint');\r\n this.max = parseInt(this.el.getAttribute('data-charlimit')) | 0;\r\n }\r\n\r\n bind() {\r\n this.el.addEventListener('keydown', e => this.update(e));\r\n this.el.addEventListener('blur', e => this.update(e));\r\n }\r\n\r\n update(e) {\r\n var newVal = this.countDownEl.textContent.replace(/-?\\d+/, this.max - this.el.value.length);\r\n this.countDownEl.textContent = newVal;\r\n }\r\n}\r\n\r\n\r\nexport default CharLimit;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/charlimit.js","import { $, $1 } from \"Utilities/selector\";\r\n\r\nimport ComponentManager from \"Components/component-manager\";\r\nimport LoadManager, { QUEUE } from \"Components/load-manager\";\r\n\r\nclass Alert {\r\n constructor(el) {\r\n if (!el) return;\r\n\r\n this.el = el;\r\n this.button = $1('[data-alert=\"button\"]', el);\r\n this.text = $1('[data-alert=\"text\"]', el);\r\n this.header = $1('[data-alert=\"header\"]');\r\n this.height = el.offsetHeight;\r\n this.headerHeight = this.header.offsetHeight;\r\n this.storage = window.localStorage;\r\n\r\n this.init = this.init.bind(this);\r\n this.bind = this.bind.bind(this);\r\n this.resize = this.resize.bind(this);\r\n this.toggleText = this.toggleText.bind(this);\r\n this.toggleStorage = this.toggleStorage.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (!this.storage.getItem(\"alertClose\")) {\r\n this.toggleText();\r\n }\r\n this.resize();\r\n this.bind();\r\n }\r\n\r\n resize() {\r\n this.height = this.el.offsetHeight;\r\n this.header.style.top = this.height + \"px\";\r\n document.body.style.paddingTop = this.height + \"px\";\r\n }\r\n\r\n bind() {\r\n this.button.addEventListener(\"click\", () => {\r\n this.toggleText();\r\n this.toggleStorage();\r\n });\r\n let resize = utilities.debounce(() => this.resize(), 100);\r\n window.addEventListener(\"resize\", resize);\r\n }\r\n\r\n toggleText() {\r\n this.el.classList.toggle(\"is-open\");\r\n this.resize();\r\n }\r\n\r\n toggleStorage() {\r\n if (this.el.classList.contains(\"is-open\")) {\r\n this.storage.clear();\r\n } else {\r\n this.storage.setItem(\"alertClose\", true);\r\n }\r\n }\r\n}\r\n\r\nexport default LoadManager.queue(\r\n () => new ComponentManager(Alert, \"[data-js~=alert]\"),\r\n QUEUE.DOM\r\n);\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/alert.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/core-js/array/from.js\n// module id = 94\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/fn/array/from.js\n// module id = 95\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/es6.array.from.js\n// module id = 96\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_iter-call.js\n// module id = 97\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_is-array-iter.js\n// module id = 98\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_create-property.js\n// module id = 99\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/core.get-iterator-method.js\n// module id = 100\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_classof.js\n// module id = 101\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/core-js/library/modules/_iter-detect.js\n// module id = 102\n// module chunks = 0","import {$} from 'Utilities/selector';\r\n\r\nclass ComponentManager {\r\n constructor(component, selector, ...args) {\r\n if ( ! selector || ! component ) return;\r\n \r\n this.elements = [...$(selector)];\r\n this.component = component;\r\n this.args = args;\r\n\r\n if ( this.elements.length ) {\r\n this.components = this.elements.map(this.init, this);\r\n }\r\n }\r\n\r\n init(el) {\r\n let args = this.args.map(arg => typeof arg === \"function\" ? arg(el) : arg);\r\n return new this.component(el, ...args);\r\n }\r\n}\r\n\r\nexport default ComponentManager;\r\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/Components/component-manager.js","class LoadManager {\r\n events = {\r\n [QUEUE.DOM]: [],\r\n [QUEUE.RESOURCES]: [],\r\n [QUEUE.DONE]: []\r\n }\r\n \r\n loaded = {\r\n [QUEUE.DOM]: false,\r\n [QUEUE.RESOURCES]: false,\r\n [QUEUE.DONE]: false\r\n }\r\n \r\n constructor() {\r\n this.bind();\r\n }\r\n \r\n bind() {\r\n this.runDomQueue = this.run.bind(this, QUEUE.DOM);\r\n this.runResourceQueue = this.run.bind(this, QUEUE.RESOURCES);\r\n document.addEventListener(\"DOMContentLoaded\", this.runDomQueue);\r\n window.addEventListener(\"load\", this.runResourceQueue);\r\n }\r\n \r\n unbind(queue) {\r\n switch (queue)\r\n {\r\n case QUEUE.DOM:\r\n document.removeEventListener(\"DOMContentLoaded\", this.runDomQueue);\r\n break;\r\n \r\n case QUEUE.RESOURCES:\r\n window.removeEventListener(\"load\", this.runResourceQueue);\r\n }\r\n }\r\n \r\n queue(func, queue) {\r\n if ( typeof func !== 'function' ) {\r\n throw new Error('Event must be a function');\r\n }\r\n \r\n if ( typeof queue === \"undefined\" ) {\r\n throw new Error(\"Load Queue must be defined\");\r\n }\r\n \r\n if (\r\n typeof this.loaded[queue] !== \"boolean\" ||\r\n ( typeof this.loaded[queue] !== \"undefined\" && ! Array.isArray(this.events[queue]) )\r\n ) {\r\n throw new Error(\"Load Queue type does not exist\");\r\n }\r\n \r\n this.events[queue].push(func);\r\n if ( this.loaded[queue] ) {\r\n func()\r\n }\r\n }\r\n \r\n run = (queue, e) => {\r\n this.loaded[queue] = true;\r\n \r\n // console.log(queue, this.events[queue]);\r\n // performance.now();\r\n // performance.mark(\"Start loop: \" + queue);\r\n // this.events[queue].forEach((evt, i) => {\r\n // let name = i + '(' + evt.name + ')';\r\n // performance.mark(\"Start load: \" + name);\r\n // evt()\r\n // performance.mark(\"End load: \" + name);\r\n // performance.measure(\"Load: \" + name, \"Start load: \" + name, \"End load: \" + name);\r\n // });\r\n // performance.now();\r\n // performance.mark(\"End loop: \" + queue);\r\n // performance.measure(\"Loop: \" + queue, \"Start loop: \" + queue, \"End loop: \" + queue);\r\n \r\n this.events[queue].forEach(evt => evt());\r\n \r\n this.unbind(queue);\r\n \r\n document.body.classList.add(`is-${queue.toLowerCase()}-ready`);\r\n }\r\n }\r\n \r\n export const QUEUE = {\r\n DOM: \"DOM\",\r\n RESOURCES: \"RESOURCES\",\r\n DONE: \"DONE\"\r\n };\r\n \r\n export default new LoadManager();\r\n \n\n\n// WEBPACK FOOTER //\n// ./scripts/Components/load-manager.js","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/babel-runtime/helpers/defineProperty.js\n// module id = 105\n// module chunks = 0"],"sourceRoot":""}