{"version":3,"sources":["webpack:///18.3477b3ff.bundle.js","webpack:///./src/js/components/global/StickyHeader.js","webpack:///./node_modules/blob/index.js"],"names":["webpackJsonp","248","module","exports","__webpack_require__","$","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","defineProperty","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_component2","_component","_blob2","_blob","StickyHeader","el","config","setWaypoint","downloading","progressBarContent","setScrollBarProgress","_Component","this","dom","$scrollProgressBar","$downloadBtn","$el","find","$sectionNav","$sectionNavList","$shareThis","that","window","addEventListener","on","onDownload","$tl","TimelineMax","paused","to","css","className","from","top","ease","Expo","easeOut","animation","waypoint","direction","hasClass","removeClass","offset","matchMedia","matches","play","reverse","winTop","scrollTop","docHeight","height","winHeight","totalScroll","e","preventDefault","currentTarget","$spinner","show","endpoint","dataset","ajax","xhrFields","responseType","url","method","done","response","newBlob","Blob","type","navigator","msSaveOrOpenBlob","link","document","createElement","body","appendChild","href","URL","createObjectURL","notAlphaNumericMatcher","RegExp","sanitizeTitle","title","replace","download","click","hide","removeChild","fail","Component","609","mapArrayBufferViews","ary","map","chunk","buffer","ArrayBuffer","buf","byteLength","copy","Uint8Array","set","byteOffset","BlobBuilderConstructor","options","bb","BlobBuilder","forEach","part","append","getBlob","BlobConstructor","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","size","blobSupportsArrayBufferView","blobBuilderSupported"],"mappings":"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","file":"18.3477b3ff.bundle.js","sourcesContent":["webpackJsonp([18],{\n\n/***/ 248:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = __webpack_require__(33);\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _blob = __webpack_require__(609);\n\nvar _blob2 = _interopRequireDefault(_blob);\n\n__webpack_require__(213);\n\nvar _gsap = __webpack_require__(90);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StickyHeader = function (_Component) {\n _inherits(StickyHeader, _Component);\n\n function StickyHeader(el, config) {\n _classCallCheck(this, StickyHeader);\n\n var _this = _possibleConstructorReturn(this, (StickyHeader.__proto__ || Object.getPrototypeOf(StickyHeader)).call(this, el, config));\n\n _this.setWaypoint();\n _this.downloading = false;\n\n if ($(_this.config.progressBarContent).length > 0) {\n _this.setScrollBarProgress();\n }\n return _this;\n }\n\n _createClass(StickyHeader, [{\n key: 'setupDefaults',\n value: function setupDefaults() {\n this.dom = {\n $scrollProgressBar: $('.wh-scroll-progress__bar'),\n $downloadBtn: this.$el.find('.wh-sticky-header-icons__icon--download'),\n $sectionNav: this.$el.find('.wh-section-nav'),\n $sectionNavList: this.$el.find('.wh-section-nav-list'),\n $shareThis: this.$el.find('.wh-sticky-header-sharethis')\n };\n }\n }, {\n key: 'addListeners',\n value: function addListeners() {\n if ($(this.config.progressBarContent).length > 0) {\n var that = this;\n\n window.addEventListener('scroll', function () {\n that.setScrollBarProgress();\n });\n }\n\n this.dom.$downloadBtn.on('click', this.onDownload);\n }\n }, {\n key: 'setWaypoint',\n value: function setWaypoint() {\n var _this2 = this;\n\n var $tl = new _gsap.TimelineMax({ paused: true });\n\n $tl.to(this.$el, 0, { css: { className: '+=stuck' } }, 0).from(this.$el, 0.5, { top: -125, ease: _gsap.Expo.easeOut }, 0.1);\n\n this.animation = $tl;\n\n $('body').waypoint(function (direction) {\n if (direction === 'down') {\n\n _this2.$el.css('top', 0);\n } else {\n _this2.$el.css('top', -150);\n\n if ($(_this2.dom.$shareThis).hasClass('sharethis-open')) {\n $(_this2.dom.$shareThis).removeClass('sharethis-open');\n }\n }\n }, {\n offset: function offset() {\n if (!_this2.dom.$sectionNav.length) {\n return -300;\n }\n if (window.matchMedia('(max-width: 767px)').matches) {\n return -600;\n }\n if (window.matchMedia('(max-width: 768px)').matches) {\n return -500;\n }\n return -300;\n }\n });\n }\n }, {\n key: 'stickMenu',\n value: function stickMenu() {\n this.animation.play();\n }\n }, {\n key: 'unstickMenu',\n value: function unstickMenu() {\n this.animation.reverse();\n }\n }, {\n key: 'setScrollBarProgress',\n value: function setScrollBarProgress() {\n\n var winTop = $(window).scrollTop();\n var docHeight = $(this.config.progressBarContent).height();\n var winHeight = $(window).height();\n var totalScroll = winTop / (docHeight - winHeight) * 100;\n\n this.dom.$scrollProgressBar.css('width', totalScroll + '%');\n }\n }, {\n key: 'onDownload',\n value: function onDownload(e) {\n var _this3 = this;\n\n e.preventDefault();\n // Return if download its on queue\n if (this.downloading) return;\n this.downloading = true;\n\n $(e.currentTarget).css('cursor', 'inherit');\n var $spinner = $(e.currentTarget).find('.spinner');\n $spinner.show();\n var endpoint = e.currentTarget.dataset.endpoint;\n\n $.ajax({\n xhrFields: { responseType: 'blob' },\n url: endpoint,\n method: 'get'\n }).done(function (response) {\n var newBlob = new _blob2.default([response], { type: response.type });\n // IE doesn't allow using a blob object directly as link href\n // instead it is necessary to use msSaveOrOpenBlob\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(newBlob);\n _this3.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n return;\n }\n // For other browsers:\n var link = document.createElement('a');\n document.body.appendChild(link);\n link.href = window.URL.createObjectURL(newBlob);\n var notAlphaNumericMatcher = new RegExp(/[^\\w\\s]/gim);\n var sanitizeTitle = document.title.replace(notAlphaNumericMatcher, '');\n link.download = sanitizeTitle.replace(/\\s/g, '-');\n link.click();\n $spinner.hide();\n document.body.removeChild(link);\n _this3.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n }).fail(function () {\n $spinner.hide();\n _this3.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n });\n }\n }]);\n\n return StickyHeader;\n}(_component2.default);\n\nexports.default = StickyHeader;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10)))\n\n/***/ }),\n\n/***/ 609:\n/***/ (function(module, exports) {\n\n/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// 18.3477b3ff.bundle.js","import Component from 'component';\nimport Blob from 'blob';\nimport 'waypoints/jquery.waypoints';\nimport { TweenMax, TimelineMax, Expo } from 'gsap';\n\nclass StickyHeader extends Component {\n constructor(el, config) {\n super(el, config);\n\n this.setWaypoint();\n this.downloading = false;\n\n if ($(this.config.progressBarContent).length > 0) {\n this.setScrollBarProgress();\n }\n }\n\n setupDefaults() {\n this.dom = {\n $scrollProgressBar: $('.wh-scroll-progress__bar'),\n $downloadBtn: this.$el.find('.wh-sticky-header-icons__icon--download'),\n $sectionNav: this.$el.find('.wh-section-nav'),\n $sectionNavList: this.$el.find('.wh-section-nav-list'),\n $shareThis: this.$el.find('.wh-sticky-header-sharethis')\n };\n\n\n\n }\n\n addListeners() {\n if ($(this.config.progressBarContent).length > 0) {\n const that = this;\n\n window.addEventListener('scroll', () => {\n that.setScrollBarProgress()\n });\n }\n\n this.dom.$downloadBtn.on('click', this.onDownload);\n }\n\n setWaypoint() {\n const $tl = new TimelineMax({ paused: true });\n\n $tl\n .to(this.$el, 0, { css: { className: '+=stuck' } }, 0)\n .from(this.$el, 0.5, { top: -125, ease: Expo.easeOut }, 0.1);\n\n this.animation = $tl;\n\n $('body').waypoint(\n direction => {\n if (direction === 'down') {\n\n this.$el.css('top', 0);\n } else {\n this.$el.css('top', -150);\n\n if ($(this.dom.$shareThis).hasClass('sharethis-open')) {\n $(this.dom.$shareThis).removeClass('sharethis-open')\n\n }\n\n }\n },\n {\n offset: () => {\n if (!this.dom.$sectionNav.length) {\n return -300;\n }\n if (window.matchMedia('(max-width: 767px)').matches) {\n return -600;\n }\n if (window.matchMedia('(max-width: 768px)').matches) {\n return -500;\n }\n return -300;\n }\n }\n );\n }\n\n stickMenu() {\n this.animation.play();\n }\n\n unstickMenu() {\n this.animation.reverse();\n }\n\n setScrollBarProgress() {\n\n const winTop = $(window).scrollTop();\n const docHeight = $(this.config.progressBarContent).height();\n const winHeight = $(window).height();\n const totalScroll = (winTop / (docHeight - winHeight)) * 100;\n\n this.dom.$scrollProgressBar.css('width', totalScroll + '%');\n }\n\n onDownload(e) {\n\n e.preventDefault();\n // Return if download its on queue\n if (this.downloading) return;\n this.downloading = true;\n\n $(e.currentTarget).css('cursor', 'inherit');\n const $spinner = $(e.currentTarget).find('.spinner');\n $spinner.show();\n const { endpoint } = e.currentTarget.dataset;\n $.ajax({\n xhrFields: { responseType: 'blob' },\n url: endpoint,\n method: 'get'\n })\n .done(response => {\n const newBlob = new Blob([response], { type: response.type });\n // IE doesn't allow using a blob object directly as link href\n // instead it is necessary to use msSaveOrOpenBlob\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(newBlob);\n this.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n return;\n }\n // For other browsers:\n const link = document.createElement('a');\n document.body.appendChild(link);\n link.href = window.URL.createObjectURL(newBlob);\n const notAlphaNumericMatcher = new RegExp(/[^\\w\\s]/gim);\n const sanitizeTitle = document.title.replace(\n notAlphaNumericMatcher,\n ''\n );\n link.download = sanitizeTitle.replace(/\\s/g, '-');\n link.click();\n $spinner.hide();\n document.body.removeChild(link);\n this.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n })\n .fail(() => {\n $spinner.hide();\n this.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n });\n }\n}\n\nexport default StickyHeader;\n\n\n\n// WEBPACK FOOTER //\n// ./src/js/components/global/StickyHeader.js","/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/blob/index.js\n// module id = 609\n// module chunks = 13 18"],"sourceRoot":""}