From 89c43b729e41cf9f2cc21e9e6bc5ef73a9e87219 Mon Sep 17 00:00:00 2001 From: Istvan Jano Date: Fri, 4 Aug 2017 18:07:46 +0100 Subject: [PATCH 1/6] =?UTF-8?q?Using=20package=20=E2=80=98prop-types?= =?UTF-8?q?=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/js/src/components/ResponsiveImage.jsx | 21 ++++++++-------- .../js/src/components/ResponsiveImageSize.jsx | 25 ++++++++++--------- package.json | 1 + 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/assets/js/src/components/ResponsiveImage.jsx b/assets/js/src/components/ResponsiveImage.jsx index 73e4926..7386842 100644 --- a/assets/js/src/components/ResponsiveImage.jsx +++ b/assets/js/src/components/ResponsiveImage.jsx @@ -1,4 +1,5 @@ import React from 'react'; +import PropTypes from 'prop-types'; class ResponsiveImage extends React.Component { constructor(props) { @@ -153,17 +154,17 @@ class ResponsiveImage extends React.Component { * setting this to true will preload it before displaying */ ResponsiveImage.propTypes = { - alt: React.PropTypes.string, - background: React.PropTypes.bool, - children: React.PropTypes.oneOfType([ - React.PropTypes.array, - React.PropTypes.object, + alt: PropTypes.string, + background: PropTypes.bool, + children: PropTypes.oneOfType([ + PropTypes.array, + PropTypes.object, ]), - className: React.PropTypes.string, - imageStyle: React.PropTypes.object, - lazy: React.PropTypes.bool, - onLoad: React.PropTypes.func, - preloadBackground: React.PropTypes.bool, + className: PropTypes.string, + imageStyle: PropTypes.object, + lazy: PropTypes.bool, + onLoad: PropTypes.func, + preloadBackground: PropTypes.bool, }; export default ResponsiveImage; diff --git a/assets/js/src/components/ResponsiveImageSize.jsx b/assets/js/src/components/ResponsiveImageSize.jsx index 20fe839..8857518 100644 --- a/assets/js/src/components/ResponsiveImageSize.jsx +++ b/assets/js/src/components/ResponsiveImageSize.jsx @@ -1,4 +1,5 @@ import React from 'react'; +import PropTypes from 'prop-types'; class ResponsiveImageSize extends React.Component { constructor(props) { @@ -154,19 +155,19 @@ class ResponsiveImageSize extends React.Component { * setting this to true will preload it before displaying */ ResponsiveImageSize.propTypes = { - alt: React.PropTypes.string, - background: React.PropTypes.bool, - children: React.PropTypes.oneOfType([ - React.PropTypes.array, - React.PropTypes.object, + alt: PropTypes.string, + background: PropTypes.bool, + children: PropTypes.oneOfType([ + PropTypes.array, + PropTypes.object, ]), - default: React.PropTypes.bool, - imageStyle: React.PropTypes.object, - lazy: React.PropTypes.bool, - minWidth: React.PropTypes.number.isRequired, - onLoad: React.PropTypes.func, - path: React.PropTypes.string.isRequired, - preloadBackground: React.PropTypes.bool, + default: PropTypes.bool, + imageStyle: PropTypes.object, + lazy: PropTypes.bool, + minWidth: PropTypes.number.isRequired, + onLoad: PropTypes.func, + path: PropTypes.string.isRequired, + preloadBackground: PropTypes.bool, }; diff --git a/package.json b/package.json index 3f584b1..c263ccc 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "build": "NODE_ENV=production webpack -p --config webpack.production.config.js -d --display-reasons --display-chunks --progress" }, "dependencies": { + "prop-types": "^15.5.10", "react": "^15.1.0", "react-dom": "^15.1.0" }, From 5869b0d6581168ec4d4e66cde68341c76a315c9d Mon Sep 17 00:00:00 2001 From: Istvan Jano Date: Fri, 4 Aug 2017 18:08:15 +0100 Subject: [PATCH 2/6] Add fallback image support --- __test__/responsive-image-test.js | 29 +++++++++++++++++++ .../js/src/components/ResponsiveImageSize.jsx | 21 ++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/__test__/responsive-image-test.js b/__test__/responsive-image-test.js index 7230410..1769edf 100644 --- a/__test__/responsive-image-test.js +++ b/__test__/responsive-image-test.js @@ -416,3 +416,32 @@ test('ResponsiveImage component: Should add style to a background image', ReactDOM.unmountComponentAtNode(document); assert.end(); }); + + +test('ResponsiveImage component: Should render a fallback image', (assert) => { + const resourceTimeout = 100; + const component = ReactTestUtils.renderIntoDocument( + + + + + ); + + setTimeout(() => { + const node = ReactDOM.findDOMNode(component).firstChild.firstChild; + const nodeSrc = node.getAttribute('src'); + + assert.equal(nodeSrc, imageData.initialUrl); + + ReactDOM.unmountComponentAtNode(document); + assert.end(); + }, resourceTimeout); +}); diff --git a/assets/js/src/components/ResponsiveImageSize.jsx b/assets/js/src/components/ResponsiveImageSize.jsx index 8857518..0e49669 100644 --- a/assets/js/src/components/ResponsiveImageSize.jsx +++ b/assets/js/src/components/ResponsiveImageSize.jsx @@ -28,6 +28,7 @@ class ResponsiveImageSize extends React.Component { // bind 'this' to functions this.renderImageElement = this.renderImageElement.bind(this); this.onLoad = this.onLoad.bind(this); + this.onError = this.onError.bind(this); this.preloadImage = this.preloadImage.bind(this); } @@ -73,6 +74,7 @@ class ResponsiveImageSize extends React.Component { {this.props.alt} Date: Mon, 7 Aug 2017 10:18:38 +0100 Subject: [PATCH 3/6] Remove forceUpdate and pass down event --- assets/js/src/components/ResponsiveImageSize.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/js/src/components/ResponsiveImageSize.jsx b/assets/js/src/components/ResponsiveImageSize.jsx index 0e49669..880485e 100644 --- a/assets/js/src/components/ResponsiveImageSize.jsx +++ b/assets/js/src/components/ResponsiveImageSize.jsx @@ -121,16 +121,16 @@ class ResponsiveImageSize extends React.Component { /** * Called when image loading failed */ - onError() { + onError(e) { if (this.props.fallbackImage) { this.setState({ ...this.state, imagePath: this.props.fallbackImage, - }, this.forceUpdate); + }); } if (this.props.onError) { - this.props.onError(); + this.props.onError(e); } } From 4ffe0a9e7ffb331b85fae495b83a92b060cb7d17 Mon Sep 17 00:00:00 2001 From: Istvan Jano Date: Mon, 7 Aug 2017 10:18:58 +0100 Subject: [PATCH 4/6] Build stuff --- assets/js/lib/react-responsive-image.build.js | 37 ++++++++++++++++--- .../lib/react-responsive-image.build.js.map | 2 +- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/assets/js/lib/react-responsive-image.build.js b/assets/js/lib/react-responsive-image.build.js index 6140958..862b4c5 100644 --- a/assets/js/lib/react-responsive-image.build.js +++ b/assets/js/lib/react-responsive-image.build.js @@ -1,14 +1,41 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ResponsiveImage=t(require("react")):e.ResponsiveImage=t(e.react)}(this,function(e){return function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={exports:{},id:r,loaded:!1};return e[r].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([/*!********************************!*\ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ResponsiveImage=t(require("react")):e.ResponsiveImage=t(e.react)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([/*!********************************!*\ !*** ./assets/js/src/index.js ***! \********************************/ -function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ResponsiveImageSize=t.ResponsiveImage=void 0;var n=o(/*! ./components/ResponsiveImage.jsx */2),a=r(n),i=o(/*! ./components/ResponsiveImageSize.jsx */3),s=r(i);t.ResponsiveImage=a.default,t.ResponsiveImageSize=s.default},/*!************************!*\ +function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ResponsiveImageSize=t.ResponsiveImage=void 0;var o=n(/*! ./components/ResponsiveImage.jsx */8),i=r(o),a=n(/*! ./components/ResponsiveImageSize.jsx */9),u=r(a);t.ResponsiveImage=i.default,t.ResponsiveImageSize=u.default},/*!******************************!*\ + !*** ./~/process/browser.js ***! + \******************************/ +function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(c===setTimeout)return setTimeout(e,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function i(e){if(f===clearTimeout)return clearTimeout(e);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function a(){y&&d&&(y=!1,d.length?h=d.concat(h):m=-1,h.length&&u())}function u(){if(!y){var e=o(a);y=!0;for(var t=h.length;t;){for(d=h,h=[];++m1)for(var n=1;n1?t-1:0),r=1;r2?n-2:0),o=2;o=r.minWidth&&(e=this.props.children[o])}this.setState({windowSize:t,currentImageSize:e})}},{key:"loadImage",value:function(){this.refs.currentImageSize.preloadImage()}}]),t}(l.default.Component);u.propTypes={alt:l.default.PropTypes.string,background:l.default.PropTypes.bool,children:l.default.PropTypes.oneOfType([l.default.PropTypes.array,l.default.PropTypes.object]),className:l.default.PropTypes.string,imageStyle:l.default.PropTypes.object,lazy:l.default.PropTypes.bool,onLoad:l.default.PropTypes.func,preloadBackground:l.default.PropTypes.bool},t.default=u},/*!**********************************************************!*\ +function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n=r.minWidth&&(e=this.props.children[n])}this.setState({windowSize:t,currentImageSize:e})}},{key:"loadImage",value:function(){this.refs.currentImageSize.preloadImage()}}]),t}(l.default.Component);p.propTypes={alt:f.default.string,background:f.default.bool,children:f.default.oneOfType([f.default.array,f.default.object]),className:f.default.string,imageStyle:f.default.object,lazy:f.default.bool,onLoad:f.default.func,preloadBackground:f.default.bool},t.default=p},/*!**********************************************************!*\ !*** ./assets/js/src/components/ResponsiveImageSize.jsx ***! \**********************************************************/ -function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var o=0;o= childProps.minWidth) {\n\t currentImageSize = this.props.children[i];\n\t }\n\t }\n\t\n\t this.setState({\n\t windowSize: windowSize,\n\t currentImageSize: currentImageSize\n\t });\n\t }\n\t\n\t /**\n\t * Loads the image, intended as a public method to lazy load the image\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'loadImage',\n\t value: function loadImage() {\n\t this.refs.currentImageSize.preloadImage();\n\t }\n\t }]);\n\t\n\t return ResponsiveImage;\n\t}(_react2.default.Component);\n\t\n\t/**\n\t * Expected propTypes\n\t * @prop {String} alt - The value for the image alt attribute\n\t * @prop {Boolean} background - If set to true, the comopnent will render a\n\t * background image\n\t * @prop {Array|Object} children - The child elements of the component\n\t * @prop {String} className - An additional className to add to the component\n\t * @prop {Object} imageStyle - A style object to add to the component\n\t * @prop {Boolean} lazy - If the component should lazy-load the image\n\t * @prop {Function} onLoad - A callback to fire when the image is loaded\n\t * @prop {Boolean} preloadBackground - If the image is a background image,\n\t * setting this to true will preload it before displaying\n\t */\n\t\n\t\n\tResponsiveImage.propTypes = {\n\t alt: _react2.default.PropTypes.string,\n\t background: _react2.default.PropTypes.bool,\n\t children: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.array, _react2.default.PropTypes.object]),\n\t className: _react2.default.PropTypes.string,\n\t imageStyle: _react2.default.PropTypes.object,\n\t lazy: _react2.default.PropTypes.bool,\n\t onLoad: _react2.default.PropTypes.func,\n\t preloadBackground: _react2.default.PropTypes.bool\n\t};\n\t\n\texports.default = ResponsiveImage;\n\n/***/ },\n/* 3 */\n/*!**********************************************************!*\\\n !*** ./assets/js/src/components/ResponsiveImageSize.jsx ***!\n \\**********************************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(/*! react */ 1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar ResponsiveImageSize = function (_React$Component) {\n\t _inherits(ResponsiveImageSize, _React$Component);\n\t\n\t function ResponsiveImageSize(props) {\n\t _classCallCheck(this, ResponsiveImageSize);\n\t\n\t // used by React as the component name\n\t var _this = _possibleConstructorReturn(this, (ResponsiveImageSize.__proto__ || Object.getPrototypeOf(ResponsiveImageSize)).call(this, props));\n\t\n\t _this.displayName = 'ResponsiveImageSize';\n\t\n\t // blank 1px X 1px .gif in base64 format\n\t _this.placeHolderUrl = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///' + 'yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\t\n\t // initial state object\n\t _this.state = {\n\t imagePath: _this.props.preloadBackground || _this.props.lazy ? _this.placeHolderUrl : _this.props.path,\n\t loaded: _this.props.background && !_this.props.preloadBackground,\n\t fileWidth: 0,\n\t fileHeight: 0\n\t };\n\t\n\t // bind functions to component\n\t _this.renderImageElement = _this.renderImageElement.bind(_this);\n\t _this.onLoad = _this.onLoad.bind(_this);\n\t _this.preloadImage = _this.preloadImage.bind(_this);\n\t return _this;\n\t }\n\t\n\t /**\n\t * Called after component mounts to DOM\n\t * @returns {undefined} undefined\n\t */\n\t\n\t\n\t _createClass(ResponsiveImageSize, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t if (this.props.background && this.props.preloadBackground) {\n\t this.preloadImage();\n\t }\n\t }\n\t\n\t /**\n\t * Renders component\n\t * @returns {ReactElement} React element\n\t */\n\t\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var imageElement = this.renderImageElement();\n\t var backgroundClass = this.props.background ? ' background' : '';\n\t var loadedClass = this.state.loaded ? ' loaded' : '';\n\t var className = 'component-responsive-image-size' + backgroundClass + loadedClass;\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t { className: className },\n\t imageElement\n\t );\n\t }\n\t\n\t /**\n\t * Renders Image element\n\t * @returns {ReactElement} React element\n\t */\n\t\n\t }, {\n\t key: 'renderImageElement',\n\t value: function renderImageElement() {\n\t var element = void 0;\n\t\n\t if (!this.props.background) {\n\t element = _react2.default.createElement('img', {\n\t alt: this.props.alt,\n\t onLoad: this.onLoad,\n\t ref: 'image',\n\t src: this.state.imagePath,\n\t style: this.props.imageStyle\n\t });\n\t } else {\n\t var backgroundStyle = {\n\t backgroundImage: 'url(' + this.state.imagePath + ')'\n\t };\n\t var propStyle = this.props.imageStyle || {};\n\t var style = Object.assign(propStyle, backgroundStyle);\n\t\n\t element = _react2.default.createElement(\n\t 'div',\n\t { style: style },\n\t this.props.children\n\t );\n\t }\n\t\n\t return element;\n\t }\n\t\n\t /**\n\t * Called when the image is loaded\n\t * @param {Event} e - An onLoad event\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'onLoad',\n\t value: function onLoad(e) {\n\t if (e.target.getAttribute('src') !== this.placeHolderUrl) {\n\t this.setState({\n\t loaded: true,\n\t fileWidth: e.target.width,\n\t fileHeight: e.target.height\n\t });\n\t\n\t if (this.props.onLoad) {\n\t this.props.onLoad();\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * Preloads the image\n\t * @returns {ReactElement} React element\n\t */\n\t\n\t }, {\n\t key: 'preloadImage',\n\t value: function preloadImage() {\n\t var _this2 = this;\n\t\n\t var imageElement = new Image();\n\t\n\t imageElement.onload = function () {\n\t _this2.setState({\n\t loaded: true,\n\t imagePath: _this2.props.path\n\t });\n\t };\n\t\n\t imageElement.src = this.props.path;\n\t }\n\t }]);\n\t\n\t return ResponsiveImageSize;\n\t}(_react2.default.Component);\n\t\n\t/**\n\t * Expected propTypes\n\t * @prop {String} alt - The value for the image alt attribute\n\t * @prop {Boolean} background - If set to true, the comopnent will render a\n\t * background image\n\t * @prop {Array|Object} children - The child elements of the component\n\t * @prop {Boolean} default - If this is the default size to be loaded, before\n\t * the window width is available. Mainly used for rendering from the server.\n\t * @prop {Object} imageStyle - A style object to add to the component\n\t * @prop {Boolean} lazy - If the component should lazy-load the image\n\t * @prop {Boolean} lockSize - If set to true, the component will only load the\n\t * initial size\n\t * @prop {Number} minWidth - The minimum width the window should be to load\n\t * this image\n\t * @prop {Function} onLoad - A callback to fire when the image is loaded\n\t * @prop {Object} path - The image path\n\t * @prop {Boolean} preloadBackground - If the image is a background image,\n\t * setting this to true will preload it before displaying\n\t */\n\t\n\t\n\tResponsiveImageSize.propTypes = {\n\t alt: _react2.default.PropTypes.string,\n\t background: _react2.default.PropTypes.bool,\n\t children: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.array, _react2.default.PropTypes.object]),\n\t default: _react2.default.PropTypes.bool,\n\t imageStyle: _react2.default.PropTypes.object,\n\t lazy: _react2.default.PropTypes.bool,\n\t minWidth: _react2.default.PropTypes.number.isRequired,\n\t onLoad: _react2.default.PropTypes.func,\n\t path: _react2.default.PropTypes.string.isRequired,\n\t preloadBackground: _react2.default.PropTypes.bool\n\t};\n\t\n\texports.default = ResponsiveImageSize;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// react-responsive-image.build.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 66cb5102530a9c531b35","import ResponsiveImage from './components/ResponsiveImage.jsx';\nimport ResponsiveImageSize from './components/ResponsiveImageSize.jsx';\n\nexport { ResponsiveImage, ResponsiveImageSize };\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/src/index.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","import React from 'react';\n\nclass ResponsiveImage extends React.Component {\n constructor(props) {\n super(props);\n\n\n // used by React as the component name\n this.displayName = 'ResponsiveImage';\n\n\n // initial state object\n this.state = {\n currentImageSize: this.getInitialSize(),\n windowSize: {\n width: 0,\n height: 0,\n },\n };\n\n\n // bind functions to component\n this.onResize = this.onResize.bind(this);\n }\n\n\n /**\n * Called after component mounts to DOM\n * @returns {undefined} undefined\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize);\n this.onResize();\n }\n\n\n /**\n * Called before component is removed from the DOM\n * @returns {undefined} undefined\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n }\n\n\n /**\n * Renders component\n * @returns {ReactElement} React element\n */\n render() {\n const currentSizeClone = this.getCurrentSizeClone();\n const additionalClass = this.props.className ?\n ' ' + this.props.className : '';\n const className = 'component-responsive-image' + additionalClass;\n\n return (
\n {currentSizeClone}\n
);\n }\n\n\n /**\n * Gets the initial size\n * @returns {undefined} undefined\n */\n getInitialSize() {\n let initialSize;\n\n for (let i = 0; i < this.props.children.length; i++) {\n if (this.props.children[i].props.default) {\n initialSize = this.props.children[i];\n }\n }\n\n if (!initialSize) {\n initialSize = this.props.children[0];\n }\n\n return initialSize;\n }\n\n\n /**\n * Returns a clone of the current image size with added props\n * @returns {undefined} undefined\n */\n getCurrentSizeClone() {\n return React.cloneElement(this.state.currentImageSize, {\n alt: this.props.alt,\n background: this.props.background,\n key: 'image-size-' + this.state.currentImageSize.props.minWidth,\n lazy: this.props.lazy,\n onLoad: this.props.onLoad,\n preloadBackground: this.props.preloadBackground,\n ref: 'currentImageSize',\n imageStyle: this.props.imageStyle,\n windowSize: this.state.windowSize,\n });\n }\n\n\n /**\n * Resize handler\n * @returns {undefined} undefined\n */\n onResize() {\n let currentImageSize;\n\n const windowSize = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n\n for (let i = 0; i < this.props.children.length; i++) {\n const childProps = this.props.children[i].props;\n\n if (windowSize.width >= childProps.minWidth) {\n currentImageSize = this.props.children[i];\n }\n }\n\n this.setState({\n windowSize,\n currentImageSize,\n });\n }\n\n\n /**\n * Loads the image, intended as a public method to lazy load the image\n * @returns {undefined} undefined\n */\n loadImage() {\n this.refs.currentImageSize.preloadImage();\n }\n}\n\n\n/**\n * Expected propTypes\n * @prop {String} alt - The value for the image alt attribute\n * @prop {Boolean} background - If set to true, the comopnent will render a\n * background image\n * @prop {Array|Object} children - The child elements of the component\n * @prop {String} className - An additional className to add to the component\n * @prop {Object} imageStyle - A style object to add to the component\n * @prop {Boolean} lazy - If the component should lazy-load the image\n * @prop {Function} onLoad - A callback to fire when the image is loaded\n * @prop {Boolean} preloadBackground - If the image is a background image,\n * setting this to true will preload it before displaying\n */\nResponsiveImage.propTypes = {\n alt: React.PropTypes.string,\n background: React.PropTypes.bool,\n children: React.PropTypes.oneOfType([\n React.PropTypes.array,\n React.PropTypes.object,\n ]),\n className: React.PropTypes.string,\n imageStyle: React.PropTypes.object,\n lazy: React.PropTypes.bool,\n onLoad: React.PropTypes.func,\n preloadBackground: React.PropTypes.bool,\n};\n\nexport default ResponsiveImage;\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/src/components/ResponsiveImage.jsx","import React from 'react';\n\nclass ResponsiveImageSize extends React.Component {\n constructor(props) {\n super(props);\n\n\n // used by React as the component name\n this.displayName = 'ResponsiveImageSize';\n\n\n // blank 1px X 1px .gif in base64 format\n this.placeHolderUrl = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///' +\n 'yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\n\n // initial state object\n this.state = {\n imagePath: (this.props.preloadBackground || this.props.lazy) ?\n this.placeHolderUrl : this.props.path,\n loaded: (this.props.background && !this.props.preloadBackground),\n fileWidth: 0,\n fileHeight: 0,\n };\n\n\n // bind functions to component\n this.renderImageElement = this.renderImageElement.bind(this);\n this.onLoad = this.onLoad.bind(this);\n this.preloadImage = this.preloadImage.bind(this);\n }\n\n\n /**\n * Called after component mounts to DOM\n * @returns {undefined} undefined\n */\n componentDidMount() {\n if (this.props.background && this.props.preloadBackground) {\n this.preloadImage();\n }\n }\n\n\n /**\n * Renders component\n * @returns {ReactElement} React element\n */\n render() {\n const imageElement = this.renderImageElement();\n const backgroundClass = this.props.background ? ' background' : '';\n const loadedClass = this.state.loaded ? ' loaded' : '';\n const className = 'component-responsive-image-size' +\n backgroundClass +\n loadedClass;\n\n return (
\n {imageElement}\n
);\n }\n\n\n /**\n * Renders Image element\n * @returns {ReactElement} React element\n */\n renderImageElement() {\n let element;\n\n if (!this.props.background) {\n element = (\n \n );\n } else {\n const backgroundStyle = {\n backgroundImage: 'url(' + this.state.imagePath + ')',\n };\n const propStyle = this.props.imageStyle || {};\n const style = Object.assign(propStyle, backgroundStyle);\n\n element = (\n
\n {this.props.children}\n
\n );\n }\n\n return element;\n }\n\n\n /**\n * Called when the image is loaded\n * @param {Event} e - An onLoad event\n * @returns {undefined} undefined\n */\n onLoad(e) {\n if (e.target.getAttribute('src') !== this.placeHolderUrl) {\n this.setState({\n loaded: true,\n fileWidth: e.target.width,\n fileHeight: e.target.height,\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n }\n }\n\n\n /**\n * Preloads the image\n * @returns {ReactElement} React element\n */\n preloadImage() {\n const imageElement = new Image();\n\n imageElement.onload = () => {\n this.setState({\n loaded: true,\n imagePath: this.props.path,\n });\n };\n\n imageElement.src = this.props.path;\n }\n}\n\n\n/**\n * Expected propTypes\n * @prop {String} alt - The value for the image alt attribute\n * @prop {Boolean} background - If set to true, the comopnent will render a\n * background image\n * @prop {Array|Object} children - The child elements of the component\n * @prop {Boolean} default - If this is the default size to be loaded, before\n * the window width is available. Mainly used for rendering from the server.\n * @prop {Object} imageStyle - A style object to add to the component\n * @prop {Boolean} lazy - If the component should lazy-load the image\n * @prop {Boolean} lockSize - If set to true, the component will only load the\n * initial size\n * @prop {Number} minWidth - The minimum width the window should be to load\n * this image\n * @prop {Function} onLoad - A callback to fire when the image is loaded\n * @prop {Object} path - The image path\n * @prop {Boolean} preloadBackground - If the image is a background image,\n * setting this to true will preload it before displaying\n */\nResponsiveImageSize.propTypes = {\n alt: React.PropTypes.string,\n background: React.PropTypes.bool,\n children: React.PropTypes.oneOfType([\n React.PropTypes.array,\n React.PropTypes.object,\n ]),\n default: React.PropTypes.bool,\n imageStyle: React.PropTypes.object,\n lazy: React.PropTypes.bool,\n minWidth: React.PropTypes.number.isRequired,\n onLoad: React.PropTypes.func,\n path: React.PropTypes.string.isRequired,\n preloadBackground: React.PropTypes.bool,\n};\n\n\nexport default ResponsiveImageSize;\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/src/components/ResponsiveImageSize.jsx"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///react-responsive-image.build.js","webpack:///webpack/bootstrap cc3b7fc6db5268f5adcf","webpack:///./assets/js/src/index.js","webpack:///./~/process/browser.js","webpack:///./~/fbjs/lib/emptyFunction.js","webpack:///./~/fbjs/lib/invariant.js","webpack:///./~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/fbjs/lib/warning.js","webpack:///./~/prop-types/index.js","webpack:///external \"react\"","webpack:///./assets/js/src/components/ResponsiveImage.jsx","webpack:///./assets/js/src/components/ResponsiveImageSize.jsx","webpack:///./~/prop-types/checkPropTypes.js","webpack:///./~/prop-types/factoryWithThrowingShims.js","webpack:///./~/prop-types/factoryWithTypeCheckers.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_7__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","ResponsiveImageSize","ResponsiveImage","undefined","_ResponsiveImage","_ResponsiveImage2","_ResponsiveImageSize","_ResponsiveImageSize2","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","e","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","length","queue","concat","queueIndex","drainQueue","timeout","len","run","Item","array","noop","process","nextTick","args","Array","arguments","i","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","invariant","condition","format","a","b","d","f","validateFormat","error","argIndex","replace","framesToPop","NODE_ENV","ReactPropTypesSecret","warning","printWarning","_len","_key","message","console","x","indexOf","_len2","_key2","REACT_ELEMENT_TYPE","Symbol","for","isValidElement","object","$$typeof","throwOnDirectAccess","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_createClass","defineProperties","target","props","descriptor","key","protoProps","staticProps","_react","_react2","_propTypes","_propTypes2","_React$Component","_this","getPrototypeOf","displayName","getInitialSize","bind","onResize","getCurrentSizeClone","loadImage","state","currentImageSize","windowSize","width","height","window","addEventListener","removeEventListener","currentSizeClone","additionalClass","className","createElement","initialSize","children","cloneElement","alt","background","minWidth","lazy","onLoad","preloadBackground","ref","imageStyle","innerWidth","innerHeight","childProps","setState","refs","preloadImage","Component","propTypes","string","bool","oneOfType","func","_extends","assign","source","hasOwnProperty","placeHolderUrl","imagePath","path","fileWidth","fileHeight","renderImageElement","onError","imageElement","backgroundClass","loadedClass","element","backgroundStyle","backgroundImage","propStyle","style","src","getAttribute","fallbackImage","_this2","Image","onload","number","isRequired","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","ex","loggedTypeFailures","stack","shim","propName","propFullName","secret","getShim","ReactPropTypes","symbol","any","arrayOf","instanceOf","node","objectOf","oneOf","shape","PropTypes","getIteratorFn","maybeIterable","iteratorFn","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","is","y","PropTypeError","createChainableTypeChecker","validate","checkType","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","createPrimitiveTypeChecker","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","createAnyTypeChecker","createArrayOfTypeChecker","typeChecker","isArray","createElementTypeChecker","createInstanceTypeChecker","expectedClass","expectedClassName","actualClassName","getClassName","createEnumTypeChecker","expectedValues","valuesString","JSON","stringify","createObjectOfTypeChecker","createUnionTypeChecker","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","createNodeChecker","isNode","createShapeTypeChecker","shapeTypes","every","step","iterator","entries","next","done","entry","isSymbol","RegExp","Date","type"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,EAAAG,QAAA,UACA,kBAAAC,gBAAAC,IACAD,QAAA,SAAAJ,GACA,gBAAAC,SACAA,QAAA,gBAAAD,EAAAG,QAAA,UAEAJ,EAAA,gBAAAC,EAAAD,EAAA,QACCO,KAAA,SAAAC,GACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAT,OAGA,IAAAC,GAAAS,EAAAD,IACAT,WACAW,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAZ,EAAAD,QAAAC,IAAAD,QAAAQ,GAGAP,EAAAW,QAAA,EAGAX,EAAAD,QAvBA,GAAAU,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA;;;ADmBM,SAAUP,EAAQD,EAASQ,GAEhC,YAeA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAbvFG,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,IAETvB,EAAQwB,oBAAsBxB,EAAQyB,gBAAkBC,MEhEzD,IAAAC,GAAAnB,yCAAA,GFoEKoB,EAAoBX,EAAuBU,GEnEhDE,EAAArB,6CAAA,GFuEKsB,EAAwBb,EAAuBY,EAInD7B,GEzEQyB,gBFyEkBG,EAAkBR,QAC5CpB,EE1EyBwB,oBF0EKM,EAAsBV;;;AAO/C,SAAUnB,EAAQD,GGzExB,QAAA+B,KACA,SAAAC,OAAA,mCAEA,QAAAC,KACA,SAAAD,OAAA,qCAsBA,QAAAE,GAAAC,GACA,GAAAC,IAAAC,WAEA,MAAAA,YAAAF,EAAA,EAGA,KAAAC,IAAAL,IAAAK,IAAAC,WAEA,MADAD,GAAAC,WACAA,WAAAF,EAAA,EAEA,KAEA,MAAAC,GAAAD,EAAA,GACK,MAAAG,GACL,IAEA,MAAAF,GAAAvB,KAAA,KAAAsB,EAAA,GACS,MAAAG,GAET,MAAAF,GAAAvB,KAAAR,KAAA8B,EAAA,KAMA,QAAAI,GAAAC,GACA,GAAAC,IAAAC,aAEA,MAAAA,cAAAF,EAGA,KAAAC,IAAAR,IAAAQ,IAAAC,aAEA,MADAD,GAAAC,aACAA,aAAAF,EAEA,KAEA,MAAAC,GAAAD,GACK,MAAAF,GACL,IAEA,MAAAG,GAAA5B,KAAA,KAAA2B,GACS,MAAAF,GAGT,MAAAG,GAAA5B,KAAAR,KAAAmC,KAYA,QAAAG,KACAC,GAAAC,IAGAD,GAAA,EACAC,EAAAC,OACAC,EAAAF,EAAAG,OAAAD,GAEAE,GAAA,EAEAF,EAAAD,QACAI,KAIA,QAAAA,KACA,IAAAN,EAAA,CAGA,GAAAO,GAAAjB,EAAAS,EACAC,IAAA,CAGA,KADA,GAAAQ,GAAAL,EAAAD,OACAM,GAAA,CAGA,IAFAP,EAAAE,EACAA,OACAE,EAAAG,GACAP,GACAA,EAAAI,GAAAI,KAGAJ,IAAA,EACAG,EAAAL,EAAAD,OAEAD,EAAA,KACAD,GAAA,EACAL,EAAAY,IAiBA,QAAAG,GAAAnB,EAAAoB,GACAlD,KAAA8B,MACA9B,KAAAkD,QAYA,QAAAC,MAhKA,GAOApB,GACAK,EARAgB,EAAAxD,EAAAD,YAgBA,WACA,IAEAoC,EADA,kBAAAC,YACAA,WAEAN,EAEK,MAAAO,GACLF,EAAAL,EAEA,IAEAU,EADA,kBAAAC,cACAA,aAEAT,EAEK,MAAAK,GACLG,EAAAR,KAuDA,IAEAY,GAFAE,KACAH,GAAA,EAEAK,GAAA,CAyCAQ,GAAAC,SAAA,SAAAvB,GACA,GAAAwB,GAAA,GAAAC,OAAAC,UAAAf,OAAA,EACA,IAAAe,UAAAf,OAAA,EACA,OAAAgB,GAAA,EAAuBA,EAAAD,UAAAf,OAAsBgB,IAC7CH,EAAAG,EAAA,GAAAD,UAAAC,EAGAf,GAAAgB,KAAA,GAAAT,GAAAnB,EAAAwB,IACA,IAAAZ,EAAAD,QAAAF,GACAV,EAAAgB,IASAI,EAAAU,UAAAX,IAAA,WACAhD,KAAA8B,IAAA8B,MAAA,KAAA5D,KAAAkD,QAEAE,EAAAS,MAAA,UACAT,EAAAU,SAAA,EACAV,EAAAW,OACAX,EAAAY,QACAZ,EAAAa,QAAA,GACAb,EAAAc,YAIAd,EAAAe,GAAAhB,EACAC,EAAAgB,YAAAjB,EACAC,EAAAiB,KAAAlB,EACAC,EAAAkB,IAAAnB,EACAC,EAAAmB,eAAApB,EACAC,EAAAoB,mBAAArB,EACAC,EAAAqB,KAAAtB,EACAC,EAAAsB,gBAAAvB,EACAC,EAAAuB,oBAAAxB,EAEAC,EAAAwB,UAAA,SAAAC,GAAqC,UAErCzB,EAAA0B,QAAA,SAAAD,GACA,SAAAlD,OAAA,qCAGAyB,EAAA2B,IAAA,WAA2B,WAC3B3B,EAAA4B,MAAA,SAAAC,GACA,SAAAtD,OAAA,mCAEAyB,EAAA8B,MAAA,WAA4B;;;AH8FtB,SAAUtF,EAAQD,GIrRxB,YAaA,SAAAwF,GAAAC,GACA,kBACA,MAAAA,IASA,GAAAC,GAAA,YAEAA,GAAAC,YAAAH,EACAE,EAAAE,iBAAAJ,GAAA,GACAE,EAAAG,gBAAAL,GAAA,GACAE,EAAAI,gBAAAN,EAAA,MACAE,EAAAK,gBAAA,WACA,MAAA1F,OAEAqF,EAAAM,oBAAA,SAAAP,GACA,MAAAA,IAGAxF,EAAAD,QAAA0F;;;AJ8RM,SAAUzF,EAAQD,EAASQ,IKnUjC,SAAAiD,GAUA,YAuBA,SAAAwC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAtF,EAAAuF,EAAAhE,EAAAiE,GAGA,GAFAC,EAAAL,IAEAD,EAAA,CACA,GAAAO,EACA,IAAA/E,SAAAyE,EACAM,EAAA,GAAAzE,OAAA,qIACK,CACL,GAAA2B,IAAAyC,EAAAC,EAAAtF,EAAAuF,EAAAhE,EAAAiE,GACAG,EAAA,CACAD,GAAA,GAAAzE,OAAAmE,EAAAQ,QAAA,iBACA,MAAAhD,GAAA+C,QAEAD,EAAAvB,KAAA,sBAIA,KADAuB,GAAAG,YAAA,EACAH,GA3BA,GAAAD,GAAA,SAAAL,IAEA,gBAAA1C,EAAAW,IAAAyC,WACAL,EAAA,SAAAL,GACA,GAAAzE,SAAAyE,EACA,SAAAnE,OAAA,kDA0BA/B,EAAAD,QAAAiG,ILsU8BpF,KAAKb,EAASQ,mCAAsD;;;AAO5F,SAAUP,EAAQD,GM1XxB,YAEA,IAAA8G,GAAA,8CAEA7G,GAAAD,QAAA8G;;;AN6YM,SAAU7G,EAAQD,EAASQ,IO1ZjC,SAAAiD,GAUA,YAEA,IAAAiC,GAAAlF,wBAAA,GASAuG,EAAArB,CAEA,mBAAAjC,EAAAW,IAAAyC,SAAA,CACA,GAAAG,GAAA,SAAAb,GACA,OAAAc,GAAApD,UAAAf,OAAAa,EAAAC,MAAAqD,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAsFA,EAAAD,EAAaC,IACnGvD,EAAAuD,EAAA,GAAArD,UAAAqD,EAGA,IAAAR,GAAA,EACAS,EAAA,YAAAhB,EAAAQ,QAAA,iBACA,MAAAhD,GAAA+C,MAEA,oBAAAU,UACAA,QAAAX,MAAAU,EAEA,KAIA,SAAAnF,OAAAmF,GACK,MAAAE,KAGLN,GAAA,SAAAb,EAAAC,GACA,GAAAzE,SAAAyE,EACA,SAAAnE,OAAA,4EAGA,QAAAmE,EAAAmB,QAAA,iCAIApB,EAAA,CACA,OAAAqB,GAAA1D,UAAAf,OAAAa,EAAAC,MAAA2D,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAA4FA,EAAAD,EAAeC,IAC3G7D,EAAA6D,EAAA,GAAA3D,UAAA2D,EAGAR,GAAA/C,MAAAvC,QAAAyE,GAAAnD,OAAAW,MAKA1D,EAAAD,QAAA+G,IP6Z8BlG,KAAKb,EAASQ,mCAAsD;;;AAO5F,SAAUP,EAAQD,EAASQ,IQnejC,SAAAiD,GASA,kBAAAA,EAAAW,IAAAyC,SAAA,CACA,GAAAY,GAAA,kBAAAC,SACAA,OAAAC,KACAD,OAAAC,IAAA,kBACA,MAEAC,EAAA,SAAAC,GACA,sBAAAA,IACA,OAAAA,GACAA,EAAAC,WAAAL,GAKAM,GAAA,CACA9H,GAAAD,QAAAQ,kCAAA,IAAAoH,EAAAG,OAIA9H,GAAAD,QAAAQ,mCAAA,QRwe8BK,KAAKb,EAASQ,gCAAmD;;;AAOzF,SAAUP,EAAQD,GS3gBxBC,EAAAD,QAAAM;;;ATohBM,SAAUL,EAAQD,EAASQ,GAEhC,YAgBA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS8G,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMxH,GAAQ,IAAKwH,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOzH,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BwH,EAAPxH,EAElO,QAAS0H,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAASxE,UAAY3C,OAAOqH,OAAOD,GAAcA,EAAWzE,WAAa2E,aAAepH,MAAOiH,EAAUI,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeL,IAAYpH,OAAO0H,eAAiB1H,OAAO0H,eAAeP,EAAUC,GAAcD,EAASQ,UAAYP,GApBjepH,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GAGT,IAAI0H,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAItF,GAAI,EAAGA,EAAIsF,EAAMtG,OAAQgB,IAAK,CAAE,GAAIuF,GAAaD,EAAMtF,EAAIuF,GAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,SAAWO,KAAYA,EAAWR,UAAW,GAAMxH,OAAOC,eAAe6H,EAAQE,EAAWC,IAAKD,IAAiB,MAAO,UAAUnB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBhB,EAAYlE,UAAWuF,GAAiBC,GAAaN,EAAiBhB,EAAasB,GAAqBtB,MU5hBjiBuB,EAAAjJ,cAAA,GVgiBKkJ,EAAUzI,EAAuBwI,GU/hBtCE,EAAAnJ,mBAAA,GVmiBKoJ,EAAc3I,EAAuB0I,GUjiBpClI,EV2iBiB,SAAUoI,GU1iB/B,QAAApI,GAAY2H,GAAOpB,EAAA3H,KAAAoB,EAAA,IAAAqI,GAAA1B,EAAA/H,MAAAoB,EAAAuH,WAAA3H,OAAA0I,eAAAtI,IAAAZ,KAAAR,KACX+I,GADW,OAKjBU,GAAKE,YAAc,kBAInBF,EAAKG,eAAiBH,EAAKG,eAAeC,KAApBJ,GACtBA,EAAKK,SAAWL,EAAKK,SAASD,KAAdJ,GAChBA,EAAKM,oBAAsBN,EAAKM,oBAAoBF,KAAzBJ,GAC3BA,EAAKO,UAAYP,EAAKO,UAAUH,KAAfJ,GAIjBA,EAAKQ,OACHC,iBAAkBT,EAAKG,iBACvBO,YACEC,MAAO,EACPC,OAAQ,IApBKZ,EVssBlB,MA3JAvB,GAAU9G,EAAiBoI,GAiC3BZ,EAAaxH,IACX6H,IAAK,oBACL/H,MAAO,WU/iBRoJ,OAAOC,iBAAiB,SAAUvK,KAAK8J,UACvC9J,KAAK8J,cVyjBJb,IAAK,uBACL/H,MAAO,WUjjBRoJ,OAAOE,oBAAoB,SAAUxK,KAAK8J,aV2jBzCb,IAAK,SACL/H,MAAO,WUnjBR,GAAMuJ,GAAmBzK,KAAK+J,sBACxBW,EAAkB1K,KAAK+I,MAAM4B,UACjC,IAAM3K,KAAK+I,MAAM4B,UAAY,GACzBA,EAAY,6BAA+BD,CAEjD,OAAQrB,GAAAtI,QAAA6J,cAAA,OAAKD,UAAWA,GACrBF,MV+jBFxB,IAAK,iBACL/H,MAAO,WUpjBR,IAAK,GAFD2J,UAEKpH,EAAI,EAAGA,EAAIzD,KAAK+I,MAAM+B,SAASrI,OAAQgB,IAC1CzD,KAAK+I,MAAM+B,SAASrH,GAAGsF,MAAMhI,UAC/B8J,EAAc7K,KAAK+I,MAAM+B,SAASrH,GAQtC,OAJKoH,KACHA,EAAc7K,KAAK+I,MAAM+B,SAAS,IAG7BD,KVgkBN5B,IAAK,sBACL/H,MAAO,WUxjBR,MAAOmI,GAAAtI,QAAMgK,aAAa/K,KAAKiK,MAAMC,kBACnCc,IAAKhL,KAAK+I,MAAMiC,IAChBC,WAAYjL,KAAK+I,MAAMkC,WACvBhC,IAAK,cAAgBjJ,KAAKiK,MAAMC,iBAAiBnB,MAAMmC,SACvDC,KAAMnL,KAAK+I,MAAMoC,KACjBC,OAAQpL,KAAK+I,MAAMqC,OACnBC,kBAAmBrL,KAAK+I,MAAMsC,kBAC9BC,IAAK,mBACLC,WAAYvL,KAAK+I,MAAMwC,WACvBpB,WAAYnK,KAAKiK,MAAME,gBVmkBxBlB,IAAK,WACL/H,MAAO,WUnjBR,IAAK,GAPDgJ,UAEEC,GACJC,MAAOE,OAAOkB,WACdnB,OAAQC,OAAOmB,aAGRhI,EAAI,EAAGA,EAAIzD,KAAK+I,MAAM+B,SAASrI,OAAQgB,IAAK,CACnD,GAAMiI,GAAa1L,KAAK+I,MAAM+B,SAASrH,GAAGsF,KAEtCoB,GAAWC,OAASsB,EAAWR,WACjChB,EAAmBlK,KAAK+I,MAAM+B,SAASrH,IAI3CzD,KAAK2L,UACHxB,aACAD,wBVqkBDjB,IAAK,YACL/H,MAAO,WU5jBRlB,KAAK4L,KAAK1B,iBAAiB2B,mBVikBrBzK,GUvsBoBiI,EAAAtI,QAAM+K,UAwJpC1K,GAAgB2K,WACdf,IAAKzB,EAAAxI,QAAUiL,OACff,WAAY1B,EAAAxI,QAAUkL,KACtBnB,SAAUvB,EAAAxI,QAAUmL,WAClB3C,EAAAxI,QAAUmC,MACVqG,EAAAxI,QAAUyG,SAEZmD,UAAWpB,EAAAxI,QAAUiL,OACrBT,WAAYhC,EAAAxI,QAAUyG,OACtB2D,KAAM5B,EAAAxI,QAAUkL,KAChBb,OAAQ7B,EAAAxI,QAAUoL,KAClBd,kBAAmB9B,EAAAxI,QAAUkL,MVikB9BtM,EAAQoB,QU9jBMK;;;AVqkBT,SAAUxB,EAAQD,EAASQ,GAEhC,YAkBA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS8G,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMxH,GAAQ,IAAKwH,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOzH,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BwH,EAAPxH,EAElO,QAAS0H,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAASxE,UAAY3C,OAAOqH,OAAOD,GAAcA,EAAWzE,WAAa2E,aAAepH,MAAOiH,EAAUI,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeL,IAAYpH,OAAO0H,eAAiB1H,OAAO0H,eAAeP,EAAUC,GAAcD,EAASQ,UAAYP,GAtBjepH,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GAGT,IAAIkL,GAAWpL,OAAOqL,QAAU,SAAUvD,GAAU,IAAK,GAAIrF,GAAI,EAAGA,EAAID,UAAUf,OAAQgB,IAAK,CAAE,GAAI6I,GAAS9I,UAAUC,EAAI,KAAK,GAAIwF,KAAOqD,GAActL,OAAO2C,UAAU4I,eAAe/L,KAAK8L,EAAQrD,KAAQH,EAAOG,GAAOqD,EAAOrD,IAAY,MAAOH,IAEnPF,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAItF,GAAI,EAAGA,EAAIsF,EAAMtG,OAAQgB,IAAK,CAAE,GAAIuF,GAAaD,EAAMtF,EAAIuF,GAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,SAAWO,KAAYA,EAAWR,UAAW,GAAMxH,OAAOC,eAAe6H,EAAQE,EAAWC,IAAKD,IAAiB,MAAO,UAAUnB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBhB,EAAYlE,UAAWuF,GAAiBC,GAAaN,EAAiBhB,EAAasB,GAAqBtB,MWxvBjiBuB,EAAAjJ,cAAA,GX4vBKkJ,EAAUzI,EAAuBwI,GW3vBtCE,EAAAnJ,mBAAA,GX+vBKoJ,EAAc3I,EAAuB0I,GW7vBpCnI,EXuwBqB,SAAUqI,GWtwBnC,QAAArI,GAAY4H,GAAOpB,EAAA3H,KAAAmB,EAAA,IAAAsI,GAAA1B,EAAA/H,MAAAmB,EAAAwH,WAAA3H,OAAA0I,eAAAvI,IAAAX,KAAAR,KACX+I,GADW,OAKjBU,GAAKE,YAAc,sBAInBF,EAAK+C,eAAiB,iFAKtB/C,EAAKQ,OACHwC,UAAYhD,EAAKV,MAAMsC,mBAAqB5B,EAAKV,MAAMoC,KACrD1B,EAAK+C,eAAiB/C,EAAKV,MAAM2D,KACnCnM,OAASkJ,EAAKV,MAAMkC,aAAexB,EAAKV,MAAMsC,kBAC9CsB,UAAW,EACXC,WAAY,GAKdnD,EAAKoD,mBAAqBpD,EAAKoD,mBAAmBhD,KAAxBJ,GAC1BA,EAAK2B,OAAS3B,EAAK2B,OAAOvB,KAAZJ,GACdA,EAAKqD,QAAUrD,EAAKqD,QAAQjD,KAAbJ,GACfA,EAAKoC,aAAepC,EAAKoC,aAAahC,KAAlBJ,GA3BHA,EXy6BlB,MAlKAvB,GAAU/G,EAAqBqI,GAmC/BZ,EAAazH,IACX8H,IAAK,oBACL/H,MAAO,WWxwBJlB,KAAK+I,MAAMkC,YAAcjL,KAAK+I,MAAMsC,mBACtCrL,KAAK6L,kBXmxBN5C,IAAK,SACL/H,MAAO,WW1wBR,GAAM6L,GAAe/M,KAAK6M,qBACpBG,EAAkBhN,KAAK+I,MAAMkC,WAAa,cAAgB,GAC1DgC,EAAcjN,KAAKiK,MAAM1J,OAAS,UAAY,GAC9CoK,EAAY,kCAChBqC,EACAC,CAEF,OAAQ5D,GAAAtI,QAAA6J,cAAA,OAAKD,UAAWA,GACrBoC,MXqxBF9D,IAAK,qBACL/H,MAAO,WW5wBR,GAAIgM,SAEJ,IAAKlN,KAAK+I,MAAMkC,WAWT,CACL,GAAMkC,IACJC,gBAAiB,OAASpN,KAAKiK,MAAMwC,UAAY,KAE7CY,EAAYrN,KAAK+I,MAAMwC,eACvB+B,EAAQtM,OAAOqL,OAAOgB,EAAWF,EAEvCD,GACE7D,EAAAtI,QAAA6J,cAAA,OAAK0C,MAAOA,GACTtN,KAAK+I,MAAM+B,cAnBhBoC,GACE7D,EAAAtI,QAAA6J,cAAA,OACEI,IAAKhL,KAAK+I,MAAMiC,IAChBI,OAAQpL,KAAKoL,OACb0B,QAAS9M,KAAK8M,QACdxB,IAAI,QACJiC,IAAKvN,KAAKiK,MAAMwC,UAChBa,MAAOtN,KAAK+I,MAAMwC,YAiBxB,OAAO2B,MXqxBNjE,IAAK,SACL/H,MAAO,SW7wBHe,GACDA,EAAE6G,OAAO0E,aAAa,SAAWxN,KAAKwM,iBACxCxM,KAAK2L,UACHpL,QAAQ,EACRoM,UAAW1K,EAAE6G,OAAOsB,MACpBwC,WAAY3K,EAAE6G,OAAOuB,SAGnBrK,KAAK+I,MAAMqC,QACbpL,KAAK+I,MAAMqC,aXuxBdnC,IAAK,UACL/H,MAAO,SW/wBFe,GACFjC,KAAK+I,MAAM0E,eACbzN,KAAK2L,SAALS,KACKpM,KAAKiK,OACRwC,UAAWzM,KAAK+I,MAAM0E,iBAItBzN,KAAK+I,MAAM+D,SACb9M,KAAK+I,MAAM+D,QAAQ7K,MXwxBpBgH,IAAK,eACL/H,MAAO,WWhxBK,GAAAwM,GAAA1N,KACP+M,EAAe,GAAIY,MAEzBZ,GAAaa,OAAS,WACpBF,EAAK/B,UACHpL,QAAQ,EACRkM,UAAWiB,EAAK3E,MAAM2D,QAI1BK,EAAaQ,IAAMvN,KAAK+I,MAAM2D,SXsxBxBvL,GW16BwBkI,EAAAtI,QAAM+K,UA4KxC3K,GAAoB4K,WAClBf,IAAKzB,EAAAxI,QAAUiL,OACff,WAAY1B,EAAAxI,QAAUkL,KACtBnB,SAAUvB,EAAAxI,QAAUmL,WAClB3C,EAAAxI,QAAUmC,MACVqG,EAAAxI,QAAUyG,SAEZzG,QAASwI,EAAAxI,QAAUkL,KACnBV,WAAYhC,EAAAxI,QAAUyG,OACtB2D,KAAM5B,EAAAxI,QAAUkL,KAChBf,SAAU3B,EAAAxI,QAAU8M,OAAOC,WAC3B1C,OAAQ7B,EAAAxI,QAAUoL,KAClBW,QAASvD,EAAAxI,QAAUoL,KACnBO,KAAMnD,EAAAxI,QAAUiL,OAAO8B,WACvBzC,kBAAmB9B,EAAAxI,QAAUkL,KAC7BwB,cAAelE,EAAAxI,QAAUiL,QXsxB1BrM,EAAQoB,QWlxBMI;;;AXyxBT,SAAUvB,EAAQD,EAASQ,IY39BjC,SAAAiD,GASA,YAoBA,SAAA2K,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,kBAAAhL,EAAAW,IAAAyC,SACA,OAAA6H,KAAAL,GACA,GAAAA,EAAAzB,eAAA8B,GAAA,CACA,GAAAjI,EAIA,KAGAR,EAAA,kBAAAoI,GAAAK,GAAA,oFAAgGF,GAAA,cAAAD,EAAAG,GAChGjI,EAAA4H,EAAAK,GAAAJ,EAAAI,EAAAF,EAAAD,EAAA,KAAAzH,GACS,MAAA6H,GACTlI,EAAAkI,EAGA,GADA5H,GAAAN,eAAAzE,OAAA,2RAAgGwM,GAAA,cAAAD,EAAAG,QAAAjI,IAChGA,YAAAzE,UAAAyE,EAAAU,UAAAyH,IAAA,CAGAA,EAAAnI,EAAAU,UAAA,CAEA,IAAA0H,GAAAJ,MAAA,EAEA1H,IAAA,yBAAAwH,EAAA9H,EAAAU,QAAA,MAAA0H,IAAA,MA1CA,kBAAApL,EAAAW,IAAAyC,SACA,GAAAZ,GAAAzF,2BAAA,GACAuG,EAAAvG,yBAAA,GACAsG,EAAAtG,mCAAA,GACAoO,IA6CA3O,GAAAD,QAAAoO,IZ+9B8BvN,KAAKb,EAASQ,gCAAmD;;;AAOzF,SAAUP,EAAQD,EAASQ,GazhCjC,YAEA,IAAAkF,GAAAlF,+BAAA,GACAyF,EAAAzF,2BAAA,GACAsG,EAAAtG,mCAAA,EAEAP,GAAAD,QAAA,WACA,QAAA8O,GAAA1F,EAAA2F,EAAAP,EAAAD,EAAAS,EAAAC,GACAA,IAAAnI,GAIAb,GACA,EACA,mLAMA,QAAAiJ,KACA,MAAAJ,GAFAA,EAAAX,WAAAW,CAMA,IAAAK,IACA5L,MAAAuL,EACAxC,KAAAwC,EACAtC,KAAAsC,EACAZ,OAAAY,EACAjH,OAAAiH,EACAzC,OAAAyC,EACAM,OAAAN,EAEAO,IAAAP,EACAQ,QAAAJ,EACA3B,QAAAuB,EACAS,WAAAL,EACAM,KAAAV,EACAW,SAAAP,EACAQ,MAAAR,EACA3C,UAAA2C,EACAS,MAAAT,EAMA,OAHAC,GAAAf,eAAA1I,EACAyJ,EAAAS,UAAAT,EAEAA;;;Ab6iCM,SAAUlP,EAAQD,EAASQ,IctmCjC,SAAAiD,GASA,YAEA,IAAAiC,GAAAlF,+BAAA,GACAyF,EAAAzF,2BAAA,GACAuG,EAAAvG,yBAAA,GAEAsG,EAAAtG,mCAAA,GACA4N,EAAA5N,yBAAA,GAEAP,GAAAD,QAAA,SAAA4H,EAAAG,GAmBA,QAAA8H,GAAAC,GACA,GAAAC,GAAAD,IAAAE,GAAAF,EAAAE,IAAAF,EAAAG,GACA,sBAAAF,GACA,MAAAA,GAgFA,QAAAG,GAAA7I,EAAA8I,GAEA,MAAA9I,KAAA8I,EAGA,IAAA9I,GAAA,EAAAA,IAAA,EAAA8I,EAGA9I,OAAA8I,MAYA,QAAAC,GAAAjJ,GACA9G,KAAA8G,UACA9G,KAAAwO,MAAA,GAKA,QAAAwB,GAAAC,GAKA,QAAAC,GAAApC,EAAA/E,EAAA2F,EAAAP,EAAAD,EAAAS,EAAAC,GAIA,GAHAT,KAAAgC,EACAxB,KAAAD,EAEAE,IAAAnI,EACA,GAAAiB,EAEA9B,GACA,EACA,yLAIS,mBAAAxC,EAAAW,IAAAyC,UAAA,mBAAAO,SAAA,CAET,GAAAqJ,GAAAjC,EAAA,IAAAO,GAEA2B,EAAAD,IAEAE,EAAA,IAEA5J,GACA,EACA,8SAKAiI,EACAR,GAEAkC,EAAAD,IAAA,EACAE,KAIA,aAAAvH,EAAA2F,GACAZ,EAEA,GAAAiC,GADA,OAAAhH,EAAA2F,GACA,OAAAR,EAAA,KAAAS,EAAA,mCAAAR,EAAA,+BAEA,OAAAD,EAAA,KAAAS,EAAA,mCAAAR,EAAA,qCAEA,KAEA8B,EAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GAjDA,kBAAAvL,EAAAW,IAAAyC,SACA,GAAA6J,MACAC,EAAA,CAmDA,IAAAC,GAAAL,EAAArG,KAAA,QAGA,OAFA0G,GAAAzC,WAAAoC,EAAArG,KAAA,SAEA0G,EAGA,QAAAC,GAAAC,GACA,QAAAR,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,EAAAC,GACA,GAAA8B,GAAA3H,EAAA2F,GACAiC,EAAAC,EAAAF,EACA,IAAAC,IAAAF,EAAA,CAIA,GAAAI,GAAAC,EAAAJ,EAEA,WAAAX,GAAA,WAAA7B,EAAA,KAAAS,EAAA,kBAAAkC,EAAA,kBAAA1C,EAAA,qBAAAsC,EAAA,OAEA,YAEA,MAAAT,GAAAC,GAGA,QAAAc,KACA,MAAAf,GAAA3K,EAAAI,iBAGA,QAAAuL,GAAAC,GACA,QAAAhB,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GACA,qBAAAsC,GACA,UAAAlB,GAAA,aAAApB,EAAA,mBAAAR,EAAA,kDAEA,IAAAuC,GAAA3H,EAAA2F,EACA,KAAAnL,MAAA2N,QAAAR,GAAA,CACA,GAAAC,GAAAC,EAAAF,EACA,WAAAX,GAAA,WAAA7B,EAAA,KAAAS,EAAA,kBAAAgC,EAAA,kBAAAxC,EAAA,0BAEA,OAAA1K,GAAA,EAAqBA,EAAAiN,EAAAjO,OAAsBgB,IAAA,CAC3C,GAAA2C,GAAA6K,EAAAP,EAAAjN,EAAA0K,EAAAD,EAAAS,EAAA,IAAAlL,EAAA,IAAAgD,EACA,IAAAL,YAAAzE,OACA,MAAAyE,GAGA,YAEA,MAAA4J,GAAAC,GAGA,QAAAkB,KACA,QAAAlB,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GACA,GAAA+B,GAAA3H,EAAA2F,EACA,KAAAnH,EAAAmJ,GAAA,CACA,GAAAC,GAAAC,EAAAF,EACA,WAAAX,GAAA,WAAA7B,EAAA,KAAAS,EAAA,kBAAAgC,EAAA,kBAAAxC,EAAA,uCAEA,YAEA,MAAA6B,GAAAC,GAGA,QAAAmB,GAAAC,GACA,QAAApB,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GACA,KAAA5F,EAAA2F,YAAA2C,IAAA,CACA,GAAAC,GAAAD,EAAAxM,MAAAsL,EACAoB,EAAAC,EAAAzI,EAAA2F,GACA,WAAAqB,GAAA,WAAA7B,EAAA,KAAAS,EAAA,kBAAA4C,EAAA,kBAAApD,EAAA,iCAAAmD,EAAA,OAEA,YAEA,MAAAtB,GAAAC,GAGA,QAAAwB,GAAAC,GAMA,QAAAzB,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GAEA,OADA+B,GAAA3H,EAAA2F,GACAjL,EAAA,EAAqBA,EAAAiO,EAAAjP,OAA2BgB,IAChD,GAAAoM,EAAAa,EAAAgB,EAAAjO,IACA,WAIA,IAAAkO,GAAAC,KAAAC,UAAAH,EACA,WAAA3B,GAAA,WAAA7B,EAAA,KAAAS,EAAA,eAAA+B,EAAA,sBAAAvC,EAAA,sBAAAwD,EAAA,MAdA,MAAApO,OAAA2N,QAAAQ,GAgBA1B,EAAAC,IAfA,eAAA7M,EAAAW,IAAAyC,SAAAE,GAAA,+EACArB,EAAAI,iBAiBA,QAAAqM,GAAAb,GACA,QAAAhB,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GACA,qBAAAsC,GACA,UAAAlB,GAAA,aAAApB,EAAA,mBAAAR,EAAA,mDAEA,IAAAuC,GAAA3H,EAAA2F,GACAiC,EAAAC,EAAAF,EACA,eAAAC,EACA,UAAAZ,GAAA,WAAA7B,EAAA,KAAAS,EAAA,kBAAAgC,EAAA,kBAAAxC,EAAA,0BAEA,QAAAlF,KAAAyH,GACA,GAAAA,EAAAnE,eAAAtD,GAAA,CACA,GAAA7C,GAAA6K,EAAAP,EAAAzH,EAAAkF,EAAAD,EAAAS,EAAA,IAAA1F,EAAAxC,EACA,IAAAL,YAAAzE,OACA,MAAAyE,GAIA,YAEA,MAAA4J,GAAAC,GAGA,QAAA8B,GAAAC,GAoBA,QAAA/B,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GACA,OAAAlL,GAAA,EAAqBA,EAAAuO,EAAAvP,OAAgCgB,IAAA,CACrD,GAAAwO,GAAAD,EAAAvO,EACA,UAAAwO,EAAAlJ,EAAA2F,EAAAP,EAAAD,EAAAS,EAAAlI,GACA,YAIA,UAAAsJ,GAAA,WAAA7B,EAAA,KAAAS,EAAA,sBAAAR,EAAA,OA3BA,IAAA5K,MAAA2N,QAAAc,GAEA,MADA,eAAA5O,EAAAW,IAAAyC,SAAAE,GAAA,mFACArB,EAAAI,eAGA,QAAAhC,GAAA,EAAmBA,EAAAuO,EAAAvP,OAAgCgB,IAAA,CACnD,GAAAwO,GAAAD,EAAAvO,EACA,sBAAAwO,GAQA,MAPAvL,IACA,EACA,4GAEAwL,EAAAD,GACAxO,GAEA4B,EAAAI,gBAcA,MAAAuK,GAAAC,GAGA,QAAAkC,KACA,QAAAlC,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GACA,MAAAyD,GAAArJ,EAAA2F,IAGA,KAFA,GAAAqB,GAAA,WAAA7B,EAAA,KAAAS,EAAA,sBAAAR,EAAA,6BAIA,MAAA6B,GAAAC,GAGA,QAAAoC,GAAAC,GACA,QAAArC,GAAAlH,EAAA2F,EAAAP,EAAAD,EAAAS,GACA,GAAA+B,GAAA3H,EAAA2F,GACAiC,EAAAC,EAAAF,EACA,eAAAC,EACA,UAAAZ,GAAA,WAAA7B,EAAA,KAAAS,EAAA,cAAAgC,EAAA,sBAAAxC,EAAA,yBAEA,QAAAlF,KAAAqJ,GAAA,CACA,GAAAL,GAAAK,EAAArJ,EACA,IAAAgJ,EAAA,CAGA,GAAA7L,GAAA6L,EAAAvB,EAAAzH,EAAAkF,EAAAD,EAAAS,EAAA,IAAA1F,EAAAxC,EACA,IAAAL,EACA,MAAAA,IAGA,YAEA,MAAA4J,GAAAC,GAGA,QAAAmC,GAAA1B,GACA,aAAAA,IACA,aACA,aACA,gBACA,QACA,eACA,OAAAA,CACA,cACA,GAAAnN,MAAA2N,QAAAR,GACA,MAAAA,GAAA6B,MAAAH,EAEA,WAAA1B,GAAAnJ,EAAAmJ,GACA,QAGA,IAAAhB,GAAAF,EAAAkB,EACA,KAAAhB,EAqBA,QApBA,IACA8C,GADAC,EAAA/C,EAAAlP,KAAAkQ,EAEA,IAAAhB,IAAAgB,EAAAgC,SACA,OAAAF,EAAAC,EAAAE,QAAAC,MACA,IAAAR,EAAAI,EAAAtR,OACA,aAKA,QAAAsR,EAAAC,EAAAE,QAAAC,MAAA,CACA,GAAAC,GAAAL,EAAAtR,KACA,IAAA2R,IACAT,EAAAS,EAAA,IACA,SASA,QACA,SACA,UAIA,QAAAC,GAAAnC,EAAAD,GAEA,iBAAAC,IAKA,WAAAD,EAAA,kBAKA,kBAAArJ,SAAAqJ,YAAArJ,SAQA,QAAAuJ,GAAAF,GACA,GAAAC,SAAAD,EACA,OAAAnN,OAAA2N,QAAAR,GACA,QAEAA,YAAAqC,QAIA,SAEAD,EAAAnC,EAAAD,GACA,SAEAC,EAKA,QAAAG,GAAAJ,GACA,sBAAAA,IAAA,OAAAA,EACA,SAAAA,CAEA,IAAAC,GAAAC,EAAAF,EACA,eAAAC,EAAA,CACA,GAAAD,YAAAsC,MACA,YACO,IAAAtC,YAAAqC,QACP,eAGA,MAAApC,GAKA,QAAAuB,GAAAhR,GACA,GAAA+R,GAAAnC,EAAA5P,EACA,QAAA+R,GACA,YACA,aACA,YAAAA,CACA,eACA,WACA,aACA,WAAAA,CACA,SACA,MAAAA,IAKA,QAAAzB,GAAAd,GACA,MAAAA,GAAApI,aAAAoI,EAAApI,YAAAzD,KAGA6L,EAAApI,YAAAzD,KAFAsL,EAleA,GAAAR,GAAA,kBAAAtI,gBAAAoL,SACA7C,EAAA,aAsEAO,EAAA,gBAIArB,GACA5L,MAAAsN,EAAA,SACAvE,KAAAuE,EAAA,WACArE,KAAAqE,EAAA,YACA3C,OAAA2C,EAAA,UACAhJ,OAAAgJ,EAAA,UACAxE,OAAAwE,EAAA,UACAzB,OAAAyB,EAAA,UAEAxB,IAAA+B,IACA9B,QAAA+B,EACA9D,QAAAiE,IACAjC,WAAAkC,EACAjC,KAAAgD,IACA/C,SAAA0C,EACAzC,MAAAoC,EACAvF,UAAA6F,EACAzC,MAAA+C,EA8YA,OA7WAtC,GAAApM,UAAAhC,MAAAgC,UA0WAmL,EAAAf,iBACAe,EAAAS,UAAAT,EAEAA,Kd2mC8BtO,KAAKb,EAASQ,gCAAmD","file":"react-responsive-image.build.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ResponsiveImage\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ResponsiveImage\"] = factory(root[\"react\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_7__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ResponsiveImage\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ResponsiveImage\"] = factory(root[\"react\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_7__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!********************************!*\\\n !*** ./assets/js/src/index.js ***!\n \\********************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.ResponsiveImageSize = exports.ResponsiveImage = undefined;\n\t\n\tvar _ResponsiveImage = __webpack_require__(/*! ./components/ResponsiveImage.jsx */ 8);\n\t\n\tvar _ResponsiveImage2 = _interopRequireDefault(_ResponsiveImage);\n\t\n\tvar _ResponsiveImageSize = __webpack_require__(/*! ./components/ResponsiveImageSize.jsx */ 9);\n\t\n\tvar _ResponsiveImageSize2 = _interopRequireDefault(_ResponsiveImageSize);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.ResponsiveImage = _ResponsiveImage2.default;\n\texports.ResponsiveImageSize = _ResponsiveImageSize2.default;\n\n/***/ }),\n/* 1 */\n/*!******************************!*\\\n !*** ./~/process/browser.js ***!\n \\******************************/\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\tprocess.prependListener = noop;\n\tprocess.prependOnceListener = noop;\n\t\n\tprocess.listeners = function (name) { return [] }\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 2 */\n/*!*************************************!*\\\n !*** ./~/fbjs/lib/emptyFunction.js ***!\n \\*************************************/\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * \n\t */\n\t\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\t\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\t\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\t\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 3 */\n/*!*********************************!*\\\n !*** ./~/fbjs/lib/invariant.js ***!\n \\*********************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar validateFormat = function validateFormat(format) {};\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\t\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\t\n\tmodule.exports = invariant;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ 1)))\n\n/***/ }),\n/* 4 */\n/*!**************************************************!*\\\n !*** ./~/prop-types/lib/ReactPropTypesSecret.js ***!\n \\**************************************************/\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\t\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 5 */\n/*!*******************************!*\\\n !*** ./~/fbjs/lib/warning.js ***!\n \\*******************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ 2);\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = emptyFunction;\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var printWarning = function printWarning(format) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var argIndex = 0;\n\t var message = 'Warning: ' + format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // --- Welcome to debugging React ---\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch (x) {}\n\t };\n\t\n\t warning = function warning(condition, format) {\n\t if (format === undefined) {\n\t throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n\t }\n\t\n\t if (format.indexOf('Failed Composite propType: ') === 0) {\n\t return; // Ignore CompositeComponent proptype check.\n\t }\n\t\n\t if (!condition) {\n\t for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n\t args[_key2 - 2] = arguments[_key2];\n\t }\n\t\n\t printWarning.apply(undefined, [format].concat(args));\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ 1)))\n\n/***/ }),\n/* 6 */\n/*!*******************************!*\\\n !*** ./~/prop-types/index.js ***!\n \\*******************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\t\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\t\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ 12)(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(/*! ./factoryWithThrowingShims */ 11)();\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../process/browser.js */ 1)))\n\n/***/ }),\n/* 7 */\n/*!************************!*\\\n !*** external \"react\" ***!\n \\************************/\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_7__;\n\n/***/ }),\n/* 8 */\n/*!******************************************************!*\\\n !*** ./assets/js/src/components/ResponsiveImage.jsx ***!\n \\******************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(/*! react */ 7);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(/*! prop-types */ 6);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar ResponsiveImage = function (_React$Component) {\n\t _inherits(ResponsiveImage, _React$Component);\n\t\n\t function ResponsiveImage(props) {\n\t _classCallCheck(this, ResponsiveImage);\n\t\n\t // used by React as the component name\n\t var _this = _possibleConstructorReturn(this, (ResponsiveImage.__proto__ || Object.getPrototypeOf(ResponsiveImage)).call(this, props));\n\t\n\t _this.displayName = 'ResponsiveImage';\n\t\n\t // bind 'this' to functions\n\t _this.getInitialSize = _this.getInitialSize.bind(_this);\n\t _this.onResize = _this.onResize.bind(_this);\n\t _this.getCurrentSizeClone = _this.getCurrentSizeClone.bind(_this);\n\t _this.loadImage = _this.loadImage.bind(_this);\n\t\n\t // initial state object\n\t _this.state = {\n\t currentImageSize: _this.getInitialSize(),\n\t windowSize: {\n\t width: 0,\n\t height: 0\n\t }\n\t };\n\t return _this;\n\t }\n\t\n\t /**\n\t * Called after component mounts to DOM\n\t * @returns {undefined} undefined\n\t */\n\t\n\t\n\t _createClass(ResponsiveImage, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t window.addEventListener('resize', this.onResize);\n\t this.onResize();\n\t }\n\t\n\t /**\n\t * Called before component is removed from the DOM\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t window.removeEventListener('resize', this.onResize);\n\t }\n\t\n\t /**\n\t * Renders component\n\t * @returns {ReactElement} React element\n\t */\n\t\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var currentSizeClone = this.getCurrentSizeClone();\n\t var additionalClass = this.props.className ? ' ' + this.props.className : '';\n\t var className = 'component-responsive-image' + additionalClass;\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t { className: className },\n\t currentSizeClone\n\t );\n\t }\n\t\n\t /**\n\t * Gets the initial size\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'getInitialSize',\n\t value: function getInitialSize() {\n\t var initialSize = void 0;\n\t\n\t for (var i = 0; i < this.props.children.length; i++) {\n\t if (this.props.children[i].props.default) {\n\t initialSize = this.props.children[i];\n\t }\n\t }\n\t\n\t if (!initialSize) {\n\t initialSize = this.props.children[0];\n\t }\n\t\n\t return initialSize;\n\t }\n\t\n\t /**\n\t * Returns a clone of the current image size with added props\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'getCurrentSizeClone',\n\t value: function getCurrentSizeClone() {\n\t return _react2.default.cloneElement(this.state.currentImageSize, {\n\t alt: this.props.alt,\n\t background: this.props.background,\n\t key: 'image-size-' + this.state.currentImageSize.props.minWidth,\n\t lazy: this.props.lazy,\n\t onLoad: this.props.onLoad,\n\t preloadBackground: this.props.preloadBackground,\n\t ref: 'currentImageSize',\n\t imageStyle: this.props.imageStyle,\n\t windowSize: this.state.windowSize\n\t });\n\t }\n\t\n\t /**\n\t * Resize handler\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'onResize',\n\t value: function onResize() {\n\t var currentImageSize = void 0;\n\t\n\t var windowSize = {\n\t width: window.innerWidth,\n\t height: window.innerHeight\n\t };\n\t\n\t for (var i = 0; i < this.props.children.length; i++) {\n\t var childProps = this.props.children[i].props;\n\t\n\t if (windowSize.width >= childProps.minWidth) {\n\t currentImageSize = this.props.children[i];\n\t }\n\t }\n\t\n\t this.setState({\n\t windowSize: windowSize,\n\t currentImageSize: currentImageSize\n\t });\n\t }\n\t\n\t /**\n\t * Loads the image, intended as a public method to lazy load the image\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'loadImage',\n\t value: function loadImage() {\n\t this.refs.currentImageSize.preloadImage();\n\t }\n\t }]);\n\t\n\t return ResponsiveImage;\n\t}(_react2.default.Component);\n\t\n\t/**\n\t * Expected propTypes\n\t * @prop {String} alt - The value for the image alt attribute\n\t * @prop {Boolean} background - If set to true, the comopnent will render a\n\t * background image\n\t * @prop {Array|Object} children - The child elements of the component\n\t * @prop {String} className - An additional className to add to the component\n\t * @prop {Object} imageStyle - A style object to add to the component\n\t * @prop {Boolean} lazy - If the component should lazy-load the image\n\t * @prop {Function} onLoad - A callback to fire when the image is loaded\n\t * @prop {Boolean} preloadBackground - If the image is a background image,\n\t * setting this to true will preload it before displaying\n\t */\n\t\n\t\n\tResponsiveImage.propTypes = {\n\t alt: _propTypes2.default.string,\n\t background: _propTypes2.default.bool,\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),\n\t className: _propTypes2.default.string,\n\t imageStyle: _propTypes2.default.object,\n\t lazy: _propTypes2.default.bool,\n\t onLoad: _propTypes2.default.func,\n\t preloadBackground: _propTypes2.default.bool\n\t};\n\t\n\texports.default = ResponsiveImage;\n\n/***/ }),\n/* 9 */\n/*!**********************************************************!*\\\n !*** ./assets/js/src/components/ResponsiveImageSize.jsx ***!\n \\**********************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(/*! react */ 7);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(/*! prop-types */ 6);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar ResponsiveImageSize = function (_React$Component) {\n\t _inherits(ResponsiveImageSize, _React$Component);\n\t\n\t function ResponsiveImageSize(props) {\n\t _classCallCheck(this, ResponsiveImageSize);\n\t\n\t // used by React as the component name\n\t var _this = _possibleConstructorReturn(this, (ResponsiveImageSize.__proto__ || Object.getPrototypeOf(ResponsiveImageSize)).call(this, props));\n\t\n\t _this.displayName = 'ResponsiveImageSize';\n\t\n\t // blank 1px X 1px .gif in base64 format\n\t _this.placeHolderUrl = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///' + 'yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\t\n\t // initial state object\n\t _this.state = {\n\t imagePath: _this.props.preloadBackground || _this.props.lazy ? _this.placeHolderUrl : _this.props.path,\n\t loaded: _this.props.background && !_this.props.preloadBackground,\n\t fileWidth: 0,\n\t fileHeight: 0\n\t };\n\t\n\t // bind 'this' to functions\n\t _this.renderImageElement = _this.renderImageElement.bind(_this);\n\t _this.onLoad = _this.onLoad.bind(_this);\n\t _this.onError = _this.onError.bind(_this);\n\t _this.preloadImage = _this.preloadImage.bind(_this);\n\t return _this;\n\t }\n\t\n\t /**\n\t * Called after component mounts to DOM\n\t * @returns {undefined} undefined\n\t */\n\t\n\t\n\t _createClass(ResponsiveImageSize, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t if (this.props.background && this.props.preloadBackground) {\n\t this.preloadImage();\n\t }\n\t }\n\t\n\t /**\n\t * Renders component\n\t * @returns {ReactElement} React element\n\t */\n\t\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var imageElement = this.renderImageElement();\n\t var backgroundClass = this.props.background ? ' background' : '';\n\t var loadedClass = this.state.loaded ? ' loaded' : '';\n\t var className = 'component-responsive-image-size' + backgroundClass + loadedClass;\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t { className: className },\n\t imageElement\n\t );\n\t }\n\t\n\t /**\n\t * Renders Image element\n\t * @returns {ReactElement} React element\n\t */\n\t\n\t }, {\n\t key: 'renderImageElement',\n\t value: function renderImageElement() {\n\t var element = void 0;\n\t\n\t if (!this.props.background) {\n\t element = _react2.default.createElement('img', {\n\t alt: this.props.alt,\n\t onLoad: this.onLoad,\n\t onError: this.onError,\n\t ref: 'image',\n\t src: this.state.imagePath,\n\t style: this.props.imageStyle\n\t });\n\t } else {\n\t var backgroundStyle = {\n\t backgroundImage: 'url(' + this.state.imagePath + ')'\n\t };\n\t var propStyle = this.props.imageStyle || {};\n\t var style = Object.assign(propStyle, backgroundStyle);\n\t\n\t element = _react2.default.createElement(\n\t 'div',\n\t { style: style },\n\t this.props.children\n\t );\n\t }\n\t\n\t return element;\n\t }\n\t\n\t /**\n\t * Called when the image is loaded\n\t * @param {Event} e - An onLoad event\n\t * @returns {undefined} undefined\n\t */\n\t\n\t }, {\n\t key: 'onLoad',\n\t value: function onLoad(e) {\n\t if (e.target.getAttribute('src') !== this.placeHolderUrl) {\n\t this.setState({\n\t loaded: true,\n\t fileWidth: e.target.width,\n\t fileHeight: e.target.height\n\t });\n\t\n\t if (this.props.onLoad) {\n\t this.props.onLoad();\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * Called when image loading failed\n\t */\n\t\n\t }, {\n\t key: 'onError',\n\t value: function onError(e) {\n\t if (this.props.fallbackImage) {\n\t this.setState(_extends({}, this.state, {\n\t imagePath: this.props.fallbackImage\n\t }));\n\t }\n\t\n\t if (this.props.onError) {\n\t this.props.onError(e);\n\t }\n\t }\n\t\n\t /**\n\t * Preloads the image\n\t * @returns {ReactElement} React element\n\t */\n\t\n\t }, {\n\t key: 'preloadImage',\n\t value: function preloadImage() {\n\t var _this2 = this;\n\t\n\t var imageElement = new Image();\n\t\n\t imageElement.onload = function () {\n\t _this2.setState({\n\t loaded: true,\n\t imagePath: _this2.props.path\n\t });\n\t };\n\t\n\t imageElement.src = this.props.path;\n\t }\n\t }]);\n\t\n\t return ResponsiveImageSize;\n\t}(_react2.default.Component);\n\t\n\t/**\n\t * Expected propTypes\n\t * @prop {String} alt - The value for the image alt attribute\n\t * @prop {Boolean} background - If set to true, the comopnent will render a\n\t * background image\n\t * @prop {Array|Object} children - The child elements of the component\n\t * @prop {Boolean} default - If this is the default size to be loaded, before\n\t * the window width is available. Mainly used for rendering from the server.\n\t * @prop {Object} imageStyle - A style object to add to the component\n\t * @prop {Boolean} lazy - If the component should lazy-load the image\n\t * @prop {Boolean} lockSize - If set to true, the component will only load the\n\t * initial size\n\t * @prop {Number} minWidth - The minimum width the window should be to load\n\t * this image\n\t * @prop {Function} onLoad - A callback to fire when the image is loaded\n\t * @prop {Object} path - The image path\n\t * @prop {Boolean} preloadBackground - If the image is a background image,\n\t * setting this to true will preload it before displaying\n\t */\n\t\n\t\n\tResponsiveImageSize.propTypes = {\n\t alt: _propTypes2.default.string,\n\t background: _propTypes2.default.bool,\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),\n\t default: _propTypes2.default.bool,\n\t imageStyle: _propTypes2.default.object,\n\t lazy: _propTypes2.default.bool,\n\t minWidth: _propTypes2.default.number.isRequired,\n\t onLoad: _propTypes2.default.func,\n\t onError: _propTypes2.default.func,\n\t path: _propTypes2.default.string.isRequired,\n\t preloadBackground: _propTypes2.default.bool,\n\t fallbackImage: _propTypes2.default.string\n\t};\n\t\n\texports.default = ResponsiveImageSize;\n\n/***/ }),\n/* 10 */\n/*!****************************************!*\\\n !*** ./~/prop-types/checkPropTypes.js ***!\n \\****************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var invariant = __webpack_require__(/*! fbjs/lib/invariant */ 3);\n\t var warning = __webpack_require__(/*! fbjs/lib/warning */ 5);\n\t var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ 4);\n\t var loggedTypeFailures = {};\n\t}\n\t\n\t/**\n\t * Assert that the values match with the type specs.\n\t * Error messages are memorized and will only be shown once.\n\t *\n\t * @param {object} typeSpecs Map of name to a ReactPropType\n\t * @param {object} values Runtime values that need to be type-checked\n\t * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n\t * @param {string} componentName Name of the component for error messages.\n\t * @param {?Function} getStack Returns the component stack.\n\t * @private\n\t */\n\tfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t for (var typeSpecName in typeSpecs) {\n\t if (typeSpecs.hasOwnProperty(typeSpecName)) {\n\t var error;\n\t // Prop type validation may throw. In case they do, we don't want to\n\t // fail the render phase where it didn't fail before. So we log it.\n\t // After these have been cleaned up, we'll let them throw.\n\t try {\n\t // This is intentionally an invariant that gets caught. It's the same\n\t // behavior as without this statement except with a better message.\n\t invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n\t error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t } catch (ex) {\n\t error = ex;\n\t }\n\t warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n\t if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n\t // Only monitor this failure once because there tends to be a lot of the\n\t // same error.\n\t loggedTypeFailures[error.message] = true;\n\t\n\t var stack = getStack ? getStack() : '';\n\t\n\t warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n\t }\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = checkPropTypes;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../process/browser.js */ 1)))\n\n/***/ }),\n/* 11 */\n/*!**************************************************!*\\\n !*** ./~/prop-types/factoryWithThrowingShims.js ***!\n \\**************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 2);\n\tvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 3);\n\tvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ 4);\n\t\n\tmodule.exports = function() {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\t\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\t\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 12 */\n/*!*************************************************!*\\\n !*** ./~/prop-types/factoryWithTypeCheckers.js ***!\n \\*************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 2);\n\tvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 3);\n\tvar warning = __webpack_require__(/*! fbjs/lib/warning */ 5);\n\t\n\tvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ 4);\n\tvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ 10);\n\t\n\tmodule.exports = function(isValidElement, throwOnDirectAccess) {\n\t /* global Symbol */\n\t var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n\t var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\t\n\t /**\n\t * Returns the iterator method function contained on the iterable object.\n\t *\n\t * Be sure to invoke the function with the iterable as context:\n\t *\n\t * var iteratorFn = getIteratorFn(myIterable);\n\t * if (iteratorFn) {\n\t * var iterator = iteratorFn.call(myIterable);\n\t * ...\n\t * }\n\t *\n\t * @param {?object} maybeIterable\n\t * @return {?function}\n\t */\n\t function getIteratorFn(maybeIterable) {\n\t var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\t if (typeof iteratorFn === 'function') {\n\t return iteratorFn;\n\t }\n\t }\n\t\n\t /**\n\t * Collection of methods that allow declaration and validation of props that are\n\t * supplied to React components. Example usage:\n\t *\n\t * var Props = require('ReactPropTypes');\n\t * var MyArticle = React.createClass({\n\t * propTypes: {\n\t * // An optional string prop named \"description\".\n\t * description: Props.string,\n\t *\n\t * // A required enum prop named \"category\".\n\t * category: Props.oneOf(['News','Photos']).isRequired,\n\t *\n\t * // A prop named \"dialog\" that requires an instance of Dialog.\n\t * dialog: Props.instanceOf(Dialog).isRequired\n\t * },\n\t * render: function() { ... }\n\t * });\n\t *\n\t * A more formal specification of how these methods are used:\n\t *\n\t * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n\t * decl := ReactPropTypes.{type}(.isRequired)?\n\t *\n\t * Each and every declaration produces a function with the same signature. This\n\t * allows the creation of custom validation functions. For example:\n\t *\n\t * var MyLink = React.createClass({\n\t * propTypes: {\n\t * // An optional string or URI prop named \"href\".\n\t * href: function(props, propName, componentName) {\n\t * var propValue = props[propName];\n\t * if (propValue != null && typeof propValue !== 'string' &&\n\t * !(propValue instanceof URI)) {\n\t * return new Error(\n\t * 'Expected a string or an URI for ' + propName + ' in ' +\n\t * componentName\n\t * );\n\t * }\n\t * }\n\t * },\n\t * render: function() {...}\n\t * });\n\t *\n\t * @internal\n\t */\n\t\n\t var ANONYMOUS = '<>';\n\t\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\t var ReactPropTypes = {\n\t array: createPrimitiveTypeChecker('array'),\n\t bool: createPrimitiveTypeChecker('boolean'),\n\t func: createPrimitiveTypeChecker('function'),\n\t number: createPrimitiveTypeChecker('number'),\n\t object: createPrimitiveTypeChecker('object'),\n\t string: createPrimitiveTypeChecker('string'),\n\t symbol: createPrimitiveTypeChecker('symbol'),\n\t\n\t any: createAnyTypeChecker(),\n\t arrayOf: createArrayOfTypeChecker,\n\t element: createElementTypeChecker(),\n\t instanceOf: createInstanceTypeChecker,\n\t node: createNodeChecker(),\n\t objectOf: createObjectOfTypeChecker,\n\t oneOf: createEnumTypeChecker,\n\t oneOfType: createUnionTypeChecker,\n\t shape: createShapeTypeChecker\n\t };\n\t\n\t /**\n\t * inlined Object.is polyfill to avoid requiring consumers ship their own\n\t * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\t */\n\t /*eslint-disable no-self-compare*/\n\t function is(x, y) {\n\t // SameValue algorithm\n\t if (x === y) {\n\t // Steps 1-5, 7-10\n\t // Steps 6.b-6.e: +0 != -0\n\t return x !== 0 || 1 / x === 1 / y;\n\t } else {\n\t // Step 6.a: NaN == NaN\n\t return x !== x && y !== y;\n\t }\n\t }\n\t /*eslint-enable no-self-compare*/\n\t\n\t /**\n\t * We use an Error-like object for backward compatibility as people may call\n\t * PropTypes directly and inspect their output. However, we don't use real\n\t * Errors anymore. We don't inspect their stack anyway, and creating them\n\t * is prohibitively expensive if they are created too often, such as what\n\t * happens in oneOfType() for any type before the one that matched.\n\t */\n\t function PropTypeError(message) {\n\t this.message = message;\n\t this.stack = '';\n\t }\n\t // Make `instanceof Error` still work for returned errors.\n\t PropTypeError.prototype = Error.prototype;\n\t\n\t function createChainableTypeChecker(validate) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t var manualPropTypeCallCache = {};\n\t var manualPropTypeWarningCount = 0;\n\t }\n\t function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n\t componentName = componentName || ANONYMOUS;\n\t propFullName = propFullName || propName;\n\t\n\t if (secret !== ReactPropTypesSecret) {\n\t if (throwOnDirectAccess) {\n\t // New behavior only for users of `prop-types` package\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use `PropTypes.checkPropTypes()` to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n\t // Old behavior for people using React.PropTypes\n\t var cacheKey = componentName + ':' + propName;\n\t if (\n\t !manualPropTypeCallCache[cacheKey] &&\n\t // Avoid spamming the console because they are often not actionable except for lib authors\n\t manualPropTypeWarningCount < 3\n\t ) {\n\t warning(\n\t false,\n\t 'You are manually calling a React.PropTypes validation ' +\n\t 'function for the `%s` prop on `%s`. This is deprecated ' +\n\t 'and will throw in the standalone `prop-types` package. ' +\n\t 'You may be seeing this warning due to a third-party PropTypes ' +\n\t 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n\t propFullName,\n\t componentName\n\t );\n\t manualPropTypeCallCache[cacheKey] = true;\n\t manualPropTypeWarningCount++;\n\t }\n\t }\n\t }\n\t if (props[propName] == null) {\n\t if (isRequired) {\n\t if (props[propName] === null) {\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n\t }\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n\t }\n\t return null;\n\t } else {\n\t return validate(props, propName, componentName, location, propFullName);\n\t }\n\t }\n\t\n\t var chainedCheckType = checkType.bind(null, false);\n\t chainedCheckType.isRequired = checkType.bind(null, true);\n\t\n\t return chainedCheckType;\n\t }\n\t\n\t function createPrimitiveTypeChecker(expectedType) {\n\t function validate(props, propName, componentName, location, propFullName, secret) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== expectedType) {\n\t // `propValue` being instance of, say, date/regexp, pass the 'object'\n\t // check, but we can offer a more precise error message here rather than\n\t // 'of type `object`'.\n\t var preciseType = getPreciseType(propValue);\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createAnyTypeChecker() {\n\t return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n\t }\n\t\n\t function createArrayOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n\t }\n\t var propValue = props[propName];\n\t if (!Array.isArray(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n\t }\n\t for (var i = 0; i < propValue.length; i++) {\n\t var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createElementTypeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t if (!isValidElement(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createInstanceTypeChecker(expectedClass) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!(props[propName] instanceof expectedClass)) {\n\t var expectedClassName = expectedClass.name || ANONYMOUS;\n\t var actualClassName = getClassName(props[propName]);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createEnumTypeChecker(expectedValues) {\n\t if (!Array.isArray(expectedValues)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t for (var i = 0; i < expectedValues.length; i++) {\n\t if (is(propValue, expectedValues[i])) {\n\t return null;\n\t }\n\t }\n\t\n\t var valuesString = JSON.stringify(expectedValues);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createObjectOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n\t }\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n\t }\n\t for (var key in propValue) {\n\t if (propValue.hasOwnProperty(key)) {\n\t var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createUnionTypeChecker(arrayOfTypeCheckers) {\n\t if (!Array.isArray(arrayOfTypeCheckers)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (typeof checker !== 'function') {\n\t warning(\n\t false,\n\t 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n\t 'received %s at index %s.',\n\t getPostfixForTypeWarning(checker),\n\t i\n\t );\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n\t return null;\n\t }\n\t }\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createNodeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!isNode(props[propName])) {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createShapeTypeChecker(shapeTypes) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n\t }\n\t for (var key in shapeTypes) {\n\t var checker = shapeTypes[key];\n\t if (!checker) {\n\t continue;\n\t }\n\t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function isNode(propValue) {\n\t switch (typeof propValue) {\n\t case 'number':\n\t case 'string':\n\t case 'undefined':\n\t return true;\n\t case 'boolean':\n\t return !propValue;\n\t case 'object':\n\t if (Array.isArray(propValue)) {\n\t return propValue.every(isNode);\n\t }\n\t if (propValue === null || isValidElement(propValue)) {\n\t return true;\n\t }\n\t\n\t var iteratorFn = getIteratorFn(propValue);\n\t if (iteratorFn) {\n\t var iterator = iteratorFn.call(propValue);\n\t var step;\n\t if (iteratorFn !== propValue.entries) {\n\t while (!(step = iterator.next()).done) {\n\t if (!isNode(step.value)) {\n\t return false;\n\t }\n\t }\n\t } else {\n\t // Iterator will provide entry [k,v] tuples rather than values.\n\t while (!(step = iterator.next()).done) {\n\t var entry = step.value;\n\t if (entry) {\n\t if (!isNode(entry[1])) {\n\t return false;\n\t }\n\t }\n\t }\n\t }\n\t } else {\n\t return false;\n\t }\n\t\n\t return true;\n\t default:\n\t return false;\n\t }\n\t }\n\t\n\t function isSymbol(propType, propValue) {\n\t // Native Symbol.\n\t if (propType === 'symbol') {\n\t return true;\n\t }\n\t\n\t // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\t if (propValue['@@toStringTag'] === 'Symbol') {\n\t return true;\n\t }\n\t\n\t // Fallback for non-spec compliant Symbols which are polyfilled.\n\t if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n\t return true;\n\t }\n\t\n\t return false;\n\t }\n\t\n\t // Equivalent of `typeof` but with special handling for array and regexp.\n\t function getPropType(propValue) {\n\t var propType = typeof propValue;\n\t if (Array.isArray(propValue)) {\n\t return 'array';\n\t }\n\t if (propValue instanceof RegExp) {\n\t // Old webkits (at least until Android 4.0) return 'function' rather than\n\t // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n\t // passes PropTypes.object.\n\t return 'object';\n\t }\n\t if (isSymbol(propType, propValue)) {\n\t return 'symbol';\n\t }\n\t return propType;\n\t }\n\t\n\t // This handles more types than `getPropType`. Only used for error messages.\n\t // See `createPrimitiveTypeChecker`.\n\t function getPreciseType(propValue) {\n\t if (typeof propValue === 'undefined' || propValue === null) {\n\t return '' + propValue;\n\t }\n\t var propType = getPropType(propValue);\n\t if (propType === 'object') {\n\t if (propValue instanceof Date) {\n\t return 'date';\n\t } else if (propValue instanceof RegExp) {\n\t return 'regexp';\n\t }\n\t }\n\t return propType;\n\t }\n\t\n\t // Returns a string that is postfixed to a warning about an invalid type.\n\t // For example, \"undefined\" or \"of type array\"\n\t function getPostfixForTypeWarning(value) {\n\t var type = getPreciseType(value);\n\t switch (type) {\n\t case 'array':\n\t case 'object':\n\t return 'an ' + type;\n\t case 'boolean':\n\t case 'date':\n\t case 'regexp':\n\t return 'a ' + type;\n\t default:\n\t return type;\n\t }\n\t }\n\t\n\t // Returns class name of the object, if any.\n\t function getClassName(propValue) {\n\t if (!propValue.constructor || !propValue.constructor.name) {\n\t return ANONYMOUS;\n\t }\n\t return propValue.constructor.name;\n\t }\n\t\n\t ReactPropTypes.checkPropTypes = checkPropTypes;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../process/browser.js */ 1)))\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// react-responsive-image.build.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap cc3b7fc6db5268f5adcf","import ResponsiveImage from './components/ResponsiveImage.jsx';\nimport ResponsiveImageSize from './components/ResponsiveImageSize.jsx';\n\nexport { ResponsiveImage, ResponsiveImageSize };\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/src/index.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 1\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 3\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 4\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 5\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 6\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_7__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 7\n// module chunks = 0","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass ResponsiveImage extends React.Component {\n constructor(props) {\n super(props);\n\n\n // used by React as the component name\n this.displayName = 'ResponsiveImage';\n\n\n // bind 'this' to functions\n this.getInitialSize = this.getInitialSize.bind(this);\n this.onResize = this.onResize.bind(this);\n this.getCurrentSizeClone = this.getCurrentSizeClone.bind(this);\n this.loadImage = this.loadImage.bind(this);\n\n\n // initial state object\n this.state = {\n currentImageSize: this.getInitialSize(),\n windowSize: {\n width: 0,\n height: 0,\n },\n };\n }\n\n\n /**\n * Called after component mounts to DOM\n * @returns {undefined} undefined\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize);\n this.onResize();\n }\n\n\n /**\n * Called before component is removed from the DOM\n * @returns {undefined} undefined\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n }\n\n\n /**\n * Renders component\n * @returns {ReactElement} React element\n */\n render() {\n const currentSizeClone = this.getCurrentSizeClone();\n const additionalClass = this.props.className ?\n ' ' + this.props.className : '';\n const className = 'component-responsive-image' + additionalClass;\n\n return (
\n {currentSizeClone}\n
);\n }\n\n\n /**\n * Gets the initial size\n * @returns {undefined} undefined\n */\n getInitialSize() {\n let initialSize;\n\n for (let i = 0; i < this.props.children.length; i++) {\n if (this.props.children[i].props.default) {\n initialSize = this.props.children[i];\n }\n }\n\n if (!initialSize) {\n initialSize = this.props.children[0];\n }\n\n return initialSize;\n }\n\n\n /**\n * Returns a clone of the current image size with added props\n * @returns {undefined} undefined\n */\n getCurrentSizeClone() {\n return React.cloneElement(this.state.currentImageSize, {\n alt: this.props.alt,\n background: this.props.background,\n key: 'image-size-' + this.state.currentImageSize.props.minWidth,\n lazy: this.props.lazy,\n onLoad: this.props.onLoad,\n preloadBackground: this.props.preloadBackground,\n ref: 'currentImageSize',\n imageStyle: this.props.imageStyle,\n windowSize: this.state.windowSize,\n });\n }\n\n\n /**\n * Resize handler\n * @returns {undefined} undefined\n */\n onResize() {\n let currentImageSize;\n\n const windowSize = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n\n for (let i = 0; i < this.props.children.length; i++) {\n const childProps = this.props.children[i].props;\n\n if (windowSize.width >= childProps.minWidth) {\n currentImageSize = this.props.children[i];\n }\n }\n\n this.setState({\n windowSize,\n currentImageSize,\n });\n }\n\n\n /**\n * Loads the image, intended as a public method to lazy load the image\n * @returns {undefined} undefined\n */\n loadImage() {\n this.refs.currentImageSize.preloadImage();\n }\n}\n\n\n/**\n * Expected propTypes\n * @prop {String} alt - The value for the image alt attribute\n * @prop {Boolean} background - If set to true, the comopnent will render a\n * background image\n * @prop {Array|Object} children - The child elements of the component\n * @prop {String} className - An additional className to add to the component\n * @prop {Object} imageStyle - A style object to add to the component\n * @prop {Boolean} lazy - If the component should lazy-load the image\n * @prop {Function} onLoad - A callback to fire when the image is loaded\n * @prop {Boolean} preloadBackground - If the image is a background image,\n * setting this to true will preload it before displaying\n */\nResponsiveImage.propTypes = {\n alt: PropTypes.string,\n background: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object,\n ]),\n className: PropTypes.string,\n imageStyle: PropTypes.object,\n lazy: PropTypes.bool,\n onLoad: PropTypes.func,\n preloadBackground: PropTypes.bool,\n};\n\nexport default ResponsiveImage;\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/src/components/ResponsiveImage.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass ResponsiveImageSize extends React.Component {\n constructor(props) {\n super(props);\n\n\n // used by React as the component name\n this.displayName = 'ResponsiveImageSize';\n\n\n // blank 1px X 1px .gif in base64 format\n this.placeHolderUrl = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///' +\n 'yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\n\n // initial state object\n this.state = {\n imagePath: (this.props.preloadBackground || this.props.lazy) ?\n this.placeHolderUrl : this.props.path,\n loaded: (this.props.background && !this.props.preloadBackground),\n fileWidth: 0,\n fileHeight: 0,\n };\n\n\n // bind 'this' to functions\n this.renderImageElement = this.renderImageElement.bind(this);\n this.onLoad = this.onLoad.bind(this);\n this.onError = this.onError.bind(this);\n this.preloadImage = this.preloadImage.bind(this);\n }\n\n\n /**\n * Called after component mounts to DOM\n * @returns {undefined} undefined\n */\n componentDidMount() {\n if (this.props.background && this.props.preloadBackground) {\n this.preloadImage();\n }\n }\n\n\n /**\n * Renders component\n * @returns {ReactElement} React element\n */\n render() {\n const imageElement = this.renderImageElement();\n const backgroundClass = this.props.background ? ' background' : '';\n const loadedClass = this.state.loaded ? ' loaded' : '';\n const className = 'component-responsive-image-size' +\n backgroundClass +\n loadedClass;\n\n return (
\n {imageElement}\n
);\n }\n\n\n /**\n * Renders Image element\n * @returns {ReactElement} React element\n */\n renderImageElement() {\n let element;\n\n if (!this.props.background) {\n element = (\n \n );\n } else {\n const backgroundStyle = {\n backgroundImage: 'url(' + this.state.imagePath + ')',\n };\n const propStyle = this.props.imageStyle || {};\n const style = Object.assign(propStyle, backgroundStyle);\n\n element = (\n
\n {this.props.children}\n
\n );\n }\n\n return element;\n }\n\n\n /**\n * Called when the image is loaded\n * @param {Event} e - An onLoad event\n * @returns {undefined} undefined\n */\n onLoad(e) {\n if (e.target.getAttribute('src') !== this.placeHolderUrl) {\n this.setState({\n loaded: true,\n fileWidth: e.target.width,\n fileHeight: e.target.height,\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n }\n }\n\n\n /**\n * Called when image loading failed\n */\n onError(e) {\n if (this.props.fallbackImage) {\n this.setState({\n ...this.state,\n imagePath: this.props.fallbackImage,\n });\n }\n\n if (this.props.onError) {\n this.props.onError(e);\n }\n }\n\n\n /**\n * Preloads the image\n * @returns {ReactElement} React element\n */\n preloadImage() {\n const imageElement = new Image();\n\n imageElement.onload = () => {\n this.setState({\n loaded: true,\n imagePath: this.props.path,\n });\n };\n\n imageElement.src = this.props.path;\n }\n}\n\n\n/**\n * Expected propTypes\n * @prop {String} alt - The value for the image alt attribute\n * @prop {Boolean} background - If set to true, the comopnent will render a\n * background image\n * @prop {Array|Object} children - The child elements of the component\n * @prop {Boolean} default - If this is the default size to be loaded, before\n * the window width is available. Mainly used for rendering from the server.\n * @prop {Object} imageStyle - A style object to add to the component\n * @prop {Boolean} lazy - If the component should lazy-load the image\n * @prop {Boolean} lockSize - If set to true, the component will only load the\n * initial size\n * @prop {Number} minWidth - The minimum width the window should be to load\n * this image\n * @prop {Function} onLoad - A callback to fire when the image is loaded\n * @prop {Object} path - The image path\n * @prop {Boolean} preloadBackground - If the image is a background image,\n * setting this to true will preload it before displaying\n */\nResponsiveImageSize.propTypes = {\n alt: PropTypes.string,\n background: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object,\n ]),\n default: PropTypes.bool,\n imageStyle: PropTypes.object,\n lazy: PropTypes.bool,\n minWidth: PropTypes.number.isRequired,\n onLoad: PropTypes.func,\n onError: PropTypes.func,\n path: PropTypes.string.isRequired,\n preloadBackground: PropTypes.bool,\n fallbackImage: PropTypes.string,\n};\n\n\nexport default ResponsiveImageSize;\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/src/components/ResponsiveImageSize.jsx","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 10\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 11\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 12\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file From 9122464153bd6e6590da6338902e5b781273d417 Mon Sep 17 00:00:00 2001 From: Istvan Jano Date: Mon, 7 Aug 2017 10:23:02 +0100 Subject: [PATCH 5/6] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c263ccc..77624dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-responsive-image", - "version": "3.3.5", + "version": "3.4.2", "description": "A responsive image React component", "main": "index.js", "author": "Mike Fey", From 21ea8d23c7d145ce56d393547989a67e6d08e484 Mon Sep 17 00:00:00 2001 From: Istvan Jano Date: Mon, 7 Aug 2017 17:14:39 +0100 Subject: [PATCH 6/6] PR feedback --- assets/js/src/components/ResponsiveImageSize.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/assets/js/src/components/ResponsiveImageSize.jsx b/assets/js/src/components/ResponsiveImageSize.jsx index 880485e..a63d450 100644 --- a/assets/js/src/components/ResponsiveImageSize.jsx +++ b/assets/js/src/components/ResponsiveImageSize.jsx @@ -124,7 +124,6 @@ class ResponsiveImageSize extends React.Component { onError(e) { if (this.props.fallbackImage) { this.setState({ - ...this.state, imagePath: this.props.fallbackImage, }); }