(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react"), require("moment")); else if(typeof define === 'function' && define.amd) define("ReactWeather", ["react", "moment"], factory); else if(typeof exports === 'object') exports["ReactWeather"] = factory(require("react"), require("moment")); else root["ReactWeather"] = factory(root["React"], root["moment"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_30__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _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; }; }(); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); var _OpenWeatherApi = __webpack_require__(2); var _OpenWeatherApi2 = _interopRequireDefault(_OpenWeatherApi); var _utils = __webpack_require__(29); var _utils2 = _interopRequireDefault(_utils); var _TodayForecast = __webpack_require__(33); var _TodayForecast2 = _interopRequireDefault(_TodayForecast); var _DaysForecast = __webpack_require__(35); var _DaysForecast2 = _interopRequireDefault(_DaysForecast); var _WeatherIcon = __webpack_require__(36); var _WeatherIcon2 = _interopRequireDefault(_WeatherIcon); __webpack_require__(38); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _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; } function _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; } var propTypes = { unit: _react.PropTypes.oneOf(['metric', 'imperial']), type: _react.PropTypes.oneOf(['geo', 'city']), lat: _react.PropTypes.string, lon: _react.PropTypes.string, city: _react.PropTypes.string, forecast: _react.PropTypes.oneOf(['today', '5days']), apikey: _react.PropTypes.string.isRequired, lang: _react.PropTypes.string }; var defaultProps = { unit: 'metric', type: 'city', forecast: 'today', lang: 'tr' }; var ReactWeather = function (_React$Component) { _inherits(ReactWeather, _React$Component); function ReactWeather(props) { _classCallCheck(this, ReactWeather); var _this = _possibleConstructorReturn(this, (ReactWeather.__proto__ || Object.getPrototypeOf(ReactWeather)).call(this, props)); _this.api = new _OpenWeatherApi2['default'](props.unit, props.apikey, props.lang); _this.state = { data: null }; return _this; } _createClass(ReactWeather, [{ key: 'render', value: function () { function render() { var _props = this.props, unit = _props.unit, forecast = _props.forecast, lang = _props.lang; var data = this.state.data; if (data) { var days = data.days; var today = data.current; var todayIcon = _utils2['default'].getIcon(today.icon); return _react2['default'].createElement( 'div', { className: 'rw-box' }, _react2['default'].createElement( 'div', { className: 'rw-main type-' + forecast }, _react2['default'].createElement( 'div', { className: 'rw-box-left' }, _react2['default'].createElement( 'h2', null, data.location.name ), _react2['default'].createElement(_TodayForecast2['default'], { todayData: today, unit: unit, lang: lang }) ), _react2['default'].createElement( 'div', { className: 'rw-box-right' }, _react2['default'].createElement(_WeatherIcon2['default'], { name: todayIcon }) ) ), _react2['default'].createElement(_DaysForecast2['default'], { unit: unit, forecast: forecast, daysData: days, lang: lang }) ); } return _react2['default'].createElement( 'div', null, ); } return render; }() }, { key: 'componentDidMount', value: function () { function componentDidMount() { this.getForecastData(); } return componentDidMount; }() }, { key: 'getForecastData', value: function () { function getForecastData() { var self = this; var params = self._getParams(); var promise = null; promise = self.api.getForecast(params); promise.then(function (data) { self.setState({ data: data }); }); } return getForecastData; }() }, { key: '_getParams', value: function () { function _getParams() { var _props2 = this.props, type = _props2.type, lon = _props2.lon, lat = _props2.lat, city = _props2.city, lang = _props2.lang; switch (type) { case 'city': return { q: city, lang: lang }; case 'geo': return { lat: lat, lon: lon, lang: lang }; default: return { q: 'auto:ip', lang: lang }; } } return _getParams; }() }]); return ReactWeather; }(_react2['default'].Component); ReactWeather.propTypes = propTypes; ReactWeather.defaultProps = defaultProps; var _default = ReactWeather; exports['default'] = _default; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } __REACT_HOT_LOADER__.register(propTypes, 'propTypes', '/Users/ofiratt/Github/react-open-weather/src/js/components/ReactWeather.js'); __REACT_HOT_LOADER__.register(defaultProps, 'defaultProps', '/Users/ofiratt/Github/react-open-weather/src/js/components/ReactWeather.js'); __REACT_HOT_LOADER__.register(ReactWeather, 'ReactWeather', '/Users/ofiratt/Github/react-open-weather/src/js/components/ReactWeather.js'); __REACT_HOT_LOADER__.register(_default, 'default', '/Users/ofiratt/Github/react-open-weather/src/js/components/ReactWeather.js'); }(); ; /***/ }, /* 1 */ /***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _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; }; }(); var _axios = __webpack_require__(3); var _axios2 = _interopRequireDefault(_axios); var _utils = __webpack_require__(29); var _utils2 = _interopRequireDefault(_utils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var OpenWeatherApi = function () { function OpenWeatherApi(unit, apiKey, lang) { _classCallCheck(this, OpenWeatherApi); this.unit = unit; this.apiKey = apiKey; this.baseApiUrl = '//api.openweathermap.org/data/2.5'; this.lang = lang; } _createClass(OpenWeatherApi, [{ key: 'getForecast', value: function () { function getForecast(args) { var _this = this; var endpointForecast = this.baseApiUrl + '/forecast'; var endPointToday = this.baseApiUrl + '/weather'; var params = Object.assign({ appid: this.apiKey, lang: this.lang, units: this.unit }, args); var promise = _axios2['default'].all([_axios2['default'].get(endpointForecast, { params: params }), _axios2['default'].get(endPointToday, { params: params })]).then(_axios2['default'].spread(function (forecastReponse, todayReponse) { var forecastData = forecastReponse.data; var todayData = todayReponse.data; if (forecastData && todayData) { return _this._map(forecastData, todayData, params.lang); } return {}; })); return promise; } return getForecast; }() }, { key: '_map', value: function () { function _map(forecastData, todayData, lang) { var mapped = {}; mapped.location = forecastData.city; mapped.current = { description: todayData.weather[0].description, icon: todayData.weather[0].icon, temperature: { min: todayData.main.temp_min.toFixed(0), max: todayData.main.temp_max.toFixed(0), current: todayData.main.temp.toFixed(0) }, wind: todayData.wind.speed.toFixed(0), humidity: todayData.main.humidity, date: _utils2['default'].formatDate(todayData.dt, lang) }; mapped.days = this._mapForecast(forecastData.list, lang); return mapped; } return _map; }() }, { key: '_mapForecast', value: function () { function _mapForecast(daysData, lang) { var comingDays = _utils2['default'].getNextDays(new Date()); var daysMapped = []; // Getting data from each day for (var i = 0; i < 4; i++) { var dayDataFiltered = daysData.filter(function (item) { return item.dt_txt.includes(comingDays[i]); }); //7 or 8 data objects represnting a day var dayMapped = {}; dayMapped.date = _utils2['default'].formatDate(dayDataFiltered[0].dt, lang); // Getting the date from the 1st data object (random) dayMapped.temperature = {}; dayMapped.temperature.min = Math.min.apply(Math, dayDataFiltered.map(function (el) { return el.main.temp_min; })).toFixed(0); dayMapped.temperature.max = Math.max.apply(Math, dayDataFiltered.map(function (el) { return el.main.temp_max; })).toFixed(0); // Taking the middle of the day as reference dayMapped.description = dayDataFiltered[dayDataFiltered.length / 2].weather[0].description; dayMapped.icon = dayDataFiltered[dayDataFiltered.length / 2].weather[0].icon; daysMapped.push(dayMapped); } return daysMapped; } return _mapForecast; }() }]); return OpenWeatherApi; }(); var _default = OpenWeatherApi; exports['default'] = _default; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } __REACT_HOT_LOADER__.register(OpenWeatherApi, 'OpenWeatherApi', '/Users/ofiratt/Github/react-open-weather/src/js/OpenWeatherApi.js'); __REACT_HOT_LOADER__.register(_default, 'default', '/Users/ofiratt/Github/react-open-weather/src/js/OpenWeatherApi.js'); }(); ; /***/ }, /* 3 */ /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(4); /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); var bind = __webpack_require__(6); var Axios = __webpack_require__(8); var defaults = __webpack_require__(9); /** * Create an instance of Axios * * @param {Object} defaultConfig The default config for the instance * @return {Axios} A new instance of Axios */ function createInstance(defaultConfig) { var context = new Axios(defaultConfig); var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance utils.extend(instance, Axios.prototype, context); // Copy context to instance utils.extend(instance, context); return instance; } // Create the default instance to be exported var axios = createInstance(defaults); // Expose Axios class to allow class inheritance axios.Axios = Axios; // Factory for creating new instances axios.create = function create(instanceConfig) { return createInstance(utils.merge(defaults, instanceConfig)); }; // Expose Cancel & CancelToken axios.Cancel = __webpack_require__(26); axios.CancelToken = __webpack_require__(27); axios.isCancel = __webpack_require__(23); // Expose all/spread axios.all = function all(promises) { return Promise.all(promises); }; axios.spread = __webpack_require__(28); module.exports = axios; // Allow use of default import syntax in TypeScript module.exports.default = axios; /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var bind = __webpack_require__(6); var isBuffer = __webpack_require__(7); /*global toString:true*/ // utils is a library of generic helper functions non-specific to axios var toString = Object.prototype.toString; /** * Determine if a value is an Array * * @param {Object} val The value to test * @returns {boolean} True if value is an Array, otherwise false */ function isArray(val) { return toString.call(val) === '[object Array]'; } /** * Determine if a value is an ArrayBuffer * * @param {Object} val The value to test * @returns {boolean} True if value is an ArrayBuffer, otherwise false */ function isArrayBuffer(val) { return toString.call(val) === '[object ArrayBuffer]'; } /** * Determine if a value is a FormData * * @param {Object} val The value to test * @returns {boolean} True if value is an FormData, otherwise false */ function isFormData(val) { return (typeof FormData !== 'undefined') && (val instanceof FormData); } /** * Determine if a value is a view on an ArrayBuffer * * @param {Object} val The value to test * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false */ function isArrayBufferView(val) { var result; if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { result = ArrayBuffer.isView(val); } else { result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); } return result; } /** * Determine if a value is a String * * @param {Object} val The value to test * @returns {boolean} True if value is a String, otherwise false */ function isString(val) { return typeof val === 'string'; } /** * Determine if a value is a Number * * @param {Object} val The value to test * @returns {boolean} True if value is a Number, otherwise false */ function isNumber(val) { return typeof val === 'number'; } /** * Determine if a value is undefined * * @param {Object} val The value to test * @returns {boolean} True if the value is undefined, otherwise false */ function isUndefined(val) { return typeof val === 'undefined'; } /** * Determine if a value is an Object * * @param {Object} val The value to test * @returns {boolean} True if value is an Object, otherwise false */ function isObject(val) { return val !== null && typeof val === 'object'; } /** * Determine if a value is a Date * * @param {Object} val The value to test * @returns {boolean} True if value is a Date, otherwise false */ function isDate(val) { return toString.call(val) === '[object Date]'; } /** * Determine if a value is a File * * @param {Object} val The value to test * @returns {boolean} True if value is a File, otherwise false */ function isFile(val) { return toString.call(val) === '[object File]'; } /** * Determine if a value is a Blob * * @param {Object} val The value to test * @returns {boolean} True if value is a Blob, otherwise false */ function isBlob(val) { return toString.call(val) === '[object Blob]'; } /** * Determine if a value is a Function * * @param {Object} val The value to test * @returns {boolean} True if value is a Function, otherwise false */ function isFunction(val) { return toString.call(val) === '[object Function]'; } /** * Determine if a value is a Stream * * @param {Object} val The value to test * @returns {boolean} True if value is a Stream, otherwise false */ function isStream(val) { return isObject(val) && isFunction(val.pipe); } /** * Determine if a value is a URLSearchParams object * * @param {Object} val The value to test * @returns {boolean} True if value is a URLSearchParams object, otherwise false */ function isURLSearchParams(val) { return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; } /** * Trim excess whitespace off the beginning and end of a string * * @param {String} str The String to trim * @returns {String} The String freed of excess whitespace */ function trim(str) { return str.replace(/^\s*/, '').replace(/\s*$/, ''); } /** * Determine if we're running in a standard browser environment * * This allows axios to run in a web worker, and react-native. * Both environments support XMLHttpRequest, but not fully standard globals. * * web workers: * typeof window -> undefined * typeof document -> undefined * * react-native: * navigator.product -> 'ReactNative' */ function isStandardBrowserEnv() { if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') { return false; } return ( typeof window !== 'undefined' && typeof document !== 'undefined' ); } /** * Iterate over an Array or an Object invoking a function for each item. * * If `obj` is an Array callback will be called passing * the value, index, and complete array for each item. * * If 'obj' is an Object callback will be called passing * the value, key, and complete object for each property. * * @param {Object|Array} obj The object to iterate * @param {Function} fn The callback to invoke for each item */ function forEach(obj, fn) { // Don't bother if no value provided if (obj === null || typeof obj === 'undefined') { return; } // Force an array if not already something iterable if (typeof obj !== 'object') { /*eslint no-param-reassign:0*/ obj = [obj]; } if (isArray(obj)) { // Iterate over array values for (var i = 0, l = obj.length; i < l; i++) { fn.call(null, obj[i], i, obj); } } else { // Iterate over object keys for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { fn.call(null, obj[key], key, obj); } } } } /** * Accepts varargs expecting each argument to be an object, then * immutably merges the properties of each object and returns result. * * When multiple objects contain the same key the later object in * the arguments list will take precedence. * * Example: * * ```js * var result = merge({foo: 123}, {foo: 456}); * console.log(result.foo); // outputs 456 * ``` * * @param {Object} obj1 Object to merge * @returns {Object} Result of all merge properties */ function merge(/* obj1, obj2, obj3, ... */) { var result = {}; function assignValue(val, key) { if (typeof result[key] === 'object' && typeof val === 'object') { result[key] = merge(result[key], val); } else { result[key] = val; } } for (var i = 0, l = arguments.length; i < l; i++) { forEach(arguments[i], assignValue); } return result; } /** * Extends object a by mutably adding to it the properties of object b. * * @param {Object} a The object to be extended * @param {Object} b The object to copy properties from * @param {Object} thisArg The object to bind function to * @return {Object} The resulting value of object a */ function extend(a, b, thisArg) { forEach(b, function assignValue(val, key) { if (thisArg && typeof val === 'function') { a[key] = bind(val, thisArg); } else { a[key] = val; } }); return a; } module.exports = { isArray: isArray, isArrayBuffer: isArrayBuffer, isBuffer: isBuffer, isFormData: isFormData, isArrayBufferView: isArrayBufferView, isString: isString, isNumber: isNumber, isObject: isObject, isUndefined: isUndefined, isDate: isDate, isFile: isFile, isBlob: isBlob, isFunction: isFunction, isStream: isStream, isURLSearchParams: isURLSearchParams, isStandardBrowserEnv: isStandardBrowserEnv, forEach: forEach, merge: merge, extend: extend, trim: trim }; /***/ }, /* 6 */ /***/ function(module, exports) { 'use strict'; module.exports = function bind(fn, thisArg) { return function wrap() { var args = new Array(arguments.length); for (var i = 0; i < args.length; i++) { args[i] = arguments[i]; } return fn.apply(thisArg, args); }; }; /***/ }, /* 7 */ /***/ function(module, exports) { /*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh * @license MIT */ module.exports = function isBuffer (obj) { return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) } /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var defaults = __webpack_require__(9); var utils = __webpack_require__(5); var InterceptorManager = __webpack_require__(20); var dispatchRequest = __webpack_require__(21); /** * Create a new instance of Axios * * @param {Object} instanceConfig The default config for the instance */ function Axios(instanceConfig) { this.defaults = instanceConfig; this.interceptors = { request: new InterceptorManager(), response: new InterceptorManager() }; } /** * Dispatch a request * * @param {Object} config The config specific for this request (merged with this.defaults) */ Axios.prototype.request = function request(config) { /*eslint no-param-reassign:0*/ // Allow for axios('example/url'[, config]) a la fetch API if (typeof config === 'string') { config = utils.merge({ url: arguments[0] }, arguments[1]); } config = utils.merge(defaults, {method: 'get'}, this.defaults, config); config.method = config.method.toLowerCase(); // Hook up interceptors middleware var chain = [dispatchRequest, undefined]; var promise = Promise.resolve(config); this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { chain.unshift(interceptor.fulfilled, interceptor.rejected); }); this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { chain.push(interceptor.fulfilled, interceptor.rejected); }); while (chain.length) { promise = promise.then(chain.shift(), chain.shift()); } return promise; }; // Provide aliases for supported request methods utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { /*eslint func-names:0*/ Axios.prototype[method] = function(url, config) { return this.request(utils.merge(config || {}, { method: method, url: url })); }; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { /*eslint func-names:0*/ Axios.prototype[method] = function(url, data, config) { return this.request(utils.merge(config || {}, { method: method, url: url, data: data })); }; }); module.exports = Axios; /***/ }, /* 9 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; var utils = __webpack_require__(5); var normalizeHeaderName = __webpack_require__(11); var DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' }; function setContentTypeIfUnset(headers, value) { if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { headers['Content-Type'] = value; } } function getDefaultAdapter() { var adapter; if (typeof XMLHttpRequest !== 'undefined') { // For browsers use XHR adapter adapter = __webpack_require__(12); } else if (typeof process !== 'undefined') { // For node use HTTP adapter adapter = __webpack_require__(12); } return adapter; } var defaults = { adapter: getDefaultAdapter(), transformRequest: [function transformRequest(data, headers) { normalizeHeaderName(headers, 'Content-Type'); if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data) ) { return data; } if (utils.isArrayBufferView(data)) { return data.buffer; } if (utils.isURLSearchParams(data)) { setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); return data.toString(); } if (utils.isObject(data)) { setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); return JSON.stringify(data); } return data; }], transformResponse: [function transformResponse(data) { /*eslint no-param-reassign:0*/ if (typeof data === 'string') { try { data = JSON.parse(data); } catch (e) { /* Ignore */ } } return data; }], /** * A timeout in milliseconds to abort a request. If set to 0 (default) a * timeout is not created. */ timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, validateStatus: function validateStatus(status) { return status >= 200 && status < 300; } }; defaults.headers = { common: { 'Accept': 'application/json, text/plain, */*' } }; utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { defaults.headers[method] = {}; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); }); module.exports = defaults; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }, /* 10 */ /***/ function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // 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 return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // 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. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); module.exports = function normalizeHeaderName(headers, normalizedName) { utils.forEach(headers, function processHeader(value, name) { if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { headers[normalizedName] = value; delete headers[name]; } }); }; /***/ }, /* 12 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); var settle = __webpack_require__(13); var buildURL = __webpack_require__(16); var parseHeaders = __webpack_require__(17); var isURLSameOrigin = __webpack_require__(18); var createError = __webpack_require__(14); module.exports = function xhrAdapter(config) { return new Promise(function dispatchXhrRequest(resolve, reject) { var requestData = config.data; var requestHeaders = config.headers; if (utils.isFormData(requestData)) { delete requestHeaders['Content-Type']; // Let the browser set it } var request = new XMLHttpRequest(); // HTTP basic authentication if (config.auth) { var username = config.auth.username || ''; var password = config.auth.password || ''; requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); } request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS request.timeout = config.timeout; // Listen for ready state request.onreadystatechange = function handleLoad() { if (!request || request.readyState !== 4) { return; } // The request errored out and we didn't get a response, this will be // handled by onerror instead // With one exception: request that using file: protocol, most browsers // will return status as 0 even though it's a successful request if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { return; } // Prepare the response var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; var response = { data: responseData, status: request.status, statusText: request.statusText, headers: responseHeaders, config: config, request: request }; settle(resolve, reject, response); // Clean up request request = null; }; // Handle low level network errors request.onerror = function handleError() { // Real errors are hidden from us by the browser // onerror should only fire if it's a network error reject(createError('Network Error', config, null, request)); // Clean up request request = null; }; // Handle timeout request.ontimeout = function handleTimeout() { reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request request = null; }; // Add xsrf header // This is only done if running in a standard browser environment. // Specifically not if we're in a web worker, or react-native. if (utils.isStandardBrowserEnv()) { var cookies = __webpack_require__(19); // Add xsrf header var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined; if (xsrfValue) { requestHeaders[config.xsrfHeaderName] = xsrfValue; } } // Add headers to the request if ('setRequestHeader' in request) { utils.forEach(requestHeaders, function setRequestHeader(val, key) { if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { // Remove Content-Type if data is undefined delete requestHeaders[key]; } else { // Otherwise add header to the request request.setRequestHeader(key, val); } }); } // Add withCredentials to request if needed if (config.withCredentials) { request.withCredentials = true; } // Add responseType to request if needed if (config.responseType) { try { request.responseType = config.responseType; } catch (e) { // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. if (config.responseType !== 'json') { throw e; } } } // Handle progress if needed if (typeof config.onDownloadProgress === 'function') { request.addEventListener('progress', config.onDownloadProgress); } // Not all browsers support upload events if (typeof config.onUploadProgress === 'function' && request.upload) { request.upload.addEventListener('progress', config.onUploadProgress); } if (config.cancelToken) { // Handle cancellation config.cancelToken.promise.then(function onCanceled(cancel) { if (!request) { return; } request.abort(); reject(cancel); // Clean up request request = null; }); } if (requestData === undefined) { requestData = null; } // Send the request request.send(requestData); }); }; /***/ }, /* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var createError = __webpack_require__(14); /** * Resolve or reject a Promise based on response status. * * @param {Function} resolve A function that resolves the promise. * @param {Function} reject A function that rejects the promise. * @param {object} response The response. */ module.exports = function settle(resolve, reject, response) { var validateStatus = response.config.validateStatus; // Note: status is not exposed by XDomainRequest if (!response.status || !validateStatus || validateStatus(response.status)) { resolve(response); } else { reject(createError( 'Request failed with status code ' + response.status, response.config, null, response.request, response )); } }; /***/ }, /* 14 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var enhanceError = __webpack_require__(15); /** * Create an Error with the specified message, config, error code, request and response. * * @param {string} message The error message. * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). * @param {Object} [request] The request. * @param {Object} [response] The response. * @returns {Error} The created error. */ module.exports = function createError(message, config, code, request, response) { var error = new Error(message); return enhanceError(error, config, code, request, response); }; /***/ }, /* 15 */ /***/ function(module, exports) { 'use strict'; /** * Update an Error with the specified config, error code, and response. * * @param {Error} error The error to update. * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). * @param {Object} [request] The request. * @param {Object} [response] The response. * @returns {Error} The error. */ module.exports = function enhanceError(error, config, code, request, response) { error.config = config; if (code) { error.code = code; } error.request = request; error.response = response; return error; }; /***/ }, /* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); function encode(val) { return encodeURIComponent(val). replace(/%40/gi, '@'). replace(/%3A/gi, ':'). replace(/%24/g, '$'). replace(/%2C/gi, ','). replace(/%20/g, '+'). replace(/%5B/gi, '['). replace(/%5D/gi, ']'); } /** * Build a URL by appending params to the end * * @param {string} url The base of the url (e.g., http://www.google.com) * @param {object} [params] The params to be appended * @returns {string} The formatted url */ module.exports = function buildURL(url, params, paramsSerializer) { /*eslint no-param-reassign:0*/ if (!params) { return url; } var serializedParams; if (paramsSerializer) { serializedParams = paramsSerializer(params); } else if (utils.isURLSearchParams(params)) { serializedParams = params.toString(); } else { var parts = []; utils.forEach(params, function serialize(val, key) { if (val === null || typeof val === 'undefined') { return; } if (utils.isArray(val)) { key = key + '[]'; } else { val = [val]; } utils.forEach(val, function parseValue(v) { if (utils.isDate(v)) { v = v.toISOString(); } else if (utils.isObject(v)) { v = JSON.stringify(v); } parts.push(encode(key) + '=' + encode(v)); }); }); serializedParams = parts.join('&'); } if (serializedParams) { url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; } return url; }; /***/ }, /* 17 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); // Headers whose duplicates are ignored by node // c.f. https://nodejs.org/api/http.html#http_message_headers var ignoreDuplicateOf = [ 'age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent' ]; /** * Parse headers into an object * * ``` * Date: Wed, 27 Aug 2014 08:58:49 GMT * Content-Type: application/json * Connection: keep-alive * Transfer-Encoding: chunked * ``` * * @param {String} headers Headers needing to be parsed * @returns {Object} Headers parsed into an object */ module.exports = function parseHeaders(headers) { var parsed = {}; var key; var val; var i; if (!headers) { return parsed; } utils.forEach(headers.split('\n'), function parser(line) { i = line.indexOf(':'); key = utils.trim(line.substr(0, i)).toLowerCase(); val = utils.trim(line.substr(i + 1)); if (key) { if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { return; } if (key === 'set-cookie') { parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); } else { parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; } } }); return parsed; }; /***/ }, /* 18 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); module.exports = ( utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test // whether the request URL is of the same origin as current location. (function standardBrowserEnv() { var msie = /(msie|trident)/i.test(navigator.userAgent); var urlParsingNode = document.createElement('a'); var originURL; /** * Parse a URL to discover it's components * * @param {String} url The URL to be parsed * @returns {Object} */ function resolveURL(url) { var href = url; if (msie) { // IE needs attribute set twice to normalize properties urlParsingNode.setAttribute('href', href); href = urlParsingNode.href; } urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils return { href: urlParsingNode.href, protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', host: urlParsingNode.host, search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', hostname: urlParsingNode.hostname, port: urlParsingNode.port, pathname: (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname : '/' + urlParsingNode.pathname }; } originURL = resolveURL(window.location.href); /** * Determine if a URL shares the same origin as the current location * * @param {String} requestURL The URL to test * @returns {boolean} True if URL shares the same origin, otherwise false */ return function isURLSameOrigin(requestURL) { var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; return (parsed.protocol === originURL.protocol && parsed.host === originURL.host); }; })() : // Non standard browser envs (web workers, react-native) lack needed support. (function nonStandardBrowserEnv() { return function isURLSameOrigin() { return true; }; })() ); /***/ }, /* 19 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); module.exports = ( utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie (function standardBrowserEnv() { return { write: function write(name, value, expires, path, domain, secure) { var cookie = []; cookie.push(name + '=' + encodeURIComponent(value)); if (utils.isNumber(expires)) { cookie.push('expires=' + new Date(expires).toGMTString()); } if (utils.isString(path)) { cookie.push('path=' + path); } if (utils.isString(domain)) { cookie.push('domain=' + domain); } if (secure === true) { cookie.push('secure'); } document.cookie = cookie.join('; '); }, read: function read(name) { var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); return (match ? decodeURIComponent(match[3]) : null); }, remove: function remove(name) { this.write(name, '', Date.now() - 86400000); } }; })() : // Non standard browser env (web workers, react-native) lack needed support. (function nonStandardBrowserEnv() { return { write: function write() {}, read: function read() { return null; }, remove: function remove() {} }; })() ); /***/ }, /* 20 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); function InterceptorManager() { this.handlers = []; } /** * Add a new interceptor to the stack * * @param {Function} fulfilled The function to handle `then` for a `Promise` * @param {Function} rejected The function to handle `reject` for a `Promise` * * @return {Number} An ID used to remove interceptor later */ InterceptorManager.prototype.use = function use(fulfilled, rejected) { this.handlers.push({ fulfilled: fulfilled, rejected: rejected }); return this.handlers.length - 1; }; /** * Remove an interceptor from the stack * * @param {Number} id The ID that was returned by `use` */ InterceptorManager.prototype.eject = function eject(id) { if (this.handlers[id]) { this.handlers[id] = null; } }; /** * Iterate over all the registered interceptors * * This method is particularly useful for skipping over any * interceptors that may have become `null` calling `eject`. * * @param {Function} fn The function to call for each interceptor */ InterceptorManager.prototype.forEach = function forEach(fn) { utils.forEach(this.handlers, function forEachHandler(h) { if (h !== null) { fn(h); } }); }; module.exports = InterceptorManager; /***/ }, /* 21 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); var transformData = __webpack_require__(22); var isCancel = __webpack_require__(23); var defaults = __webpack_require__(9); var isAbsoluteURL = __webpack_require__(24); var combineURLs = __webpack_require__(25); /** * Throws a `Cancel` if cancellation has been requested. */ function throwIfCancellationRequested(config) { if (config.cancelToken) { config.cancelToken.throwIfRequested(); } } /** * Dispatch a request to the server using the configured adapter. * * @param {object} config The config that is to be used for the request * @returns {Promise} The Promise to be fulfilled */ module.exports = function dispatchRequest(config) { throwIfCancellationRequested(config); // Support baseURL config if (config.baseURL && !isAbsoluteURL(config.url)) { config.url = combineURLs(config.baseURL, config.url); } // Ensure headers exist config.headers = config.headers || {}; // Transform request data config.data = transformData( config.data, config.headers, config.transformRequest ); // Flatten headers config.headers = utils.merge( config.headers.common || {}, config.headers[config.method] || {}, config.headers || {} ); utils.forEach( ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) { delete config.headers[method]; } ); var adapter = config.adapter || defaults.adapter; return adapter(config).then(function onAdapterResolution(response) { throwIfCancellationRequested(config); // Transform response data response.data = transformData( response.data, response.headers, config.transformResponse ); return response; }, function onAdapterRejection(reason) { if (!isCancel(reason)) { throwIfCancellationRequested(config); // Transform response data if (reason && reason.response) { reason.response.data = transformData( reason.response.data, reason.response.headers, config.transformResponse ); } } return Promise.reject(reason); }); }; /***/ }, /* 22 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(5); /** * Transform the data for a request or a response * * @param {Object|String} data The data to be transformed * @param {Array} headers The headers for the request or response * @param {Array|Function} fns A single function or Array of functions * @returns {*} The resulting transformed data */ module.exports = function transformData(data, headers, fns) { /*eslint no-param-reassign:0*/ utils.forEach(fns, function transform(fn) { data = fn(data, headers); }); return data; }; /***/ }, /* 23 */ /***/ function(module, exports) { 'use strict'; module.exports = function isCancel(value) { return !!(value && value.__CANCEL__); }; /***/ }, /* 24 */ /***/ function(module, exports) { 'use strict'; /** * Determines whether the specified URL is absolute * * @param {string} url The URL to test * @returns {boolean} True if the specified URL is absolute, otherwise false */ module.exports = function isAbsoluteURL(url) { // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed // by any combination of letters, digits, plus, period, or hyphen. return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); }; /***/ }, /* 25 */ /***/ function(module, exports) { 'use strict'; /** * Creates a new URL by combining the specified URLs * * @param {string} baseURL The base URL * @param {string} relativeURL The relative URL * @returns {string} The combined URL */ module.exports = function combineURLs(baseURL, relativeURL) { return relativeURL ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; }; /***/ }, /* 26 */ /***/ function(module, exports) { 'use strict'; /** * A `Cancel` is an object that is thrown when an operation is canceled. * * @class * @param {string=} message The message. */ function Cancel(message) { this.message = message; } Cancel.prototype.toString = function toString() { return 'Cancel' + (this.message ? ': ' + this.message : ''); }; Cancel.prototype.__CANCEL__ = true; module.exports = Cancel; /***/ }, /* 27 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var Cancel = __webpack_require__(26); /** * A `CancelToken` is an object that can be used to request cancellation of an operation. * * @class * @param {Function} executor The executor function. */ function CancelToken(executor) { if (typeof executor !== 'function') { throw new TypeError('executor must be a function.'); } var resolvePromise; this.promise = new Promise(function promiseExecutor(resolve) { resolvePromise = resolve; }); var token = this; executor(function cancel(message) { if (token.reason) { // Cancellation has already been requested return; } token.reason = new Cancel(message); resolvePromise(token.reason); }); } /** * Throws a `Cancel` if cancellation has been requested. */ CancelToken.prototype.throwIfRequested = function throwIfRequested() { if (this.reason) { throw this.reason; } }; /** * Returns an object that contains a new `CancelToken` and a function that, when called, * cancels the `CancelToken`. */ CancelToken.source = function source() { var cancel; var token = new CancelToken(function executor(c) { cancel = c; }); return { token: token, cancel: cancel }; }; module.exports = CancelToken; /***/ }, /* 28 */ /***/ function(module, exports) { 'use strict'; /** * Syntactic sugar for invoking a function and expanding an array for arguments. * * Common use case would be to use `Function.prototype.apply`. * * ```js * function f(x, y, z) {} * var args = [1, 2, 3]; * f.apply(null, args); * ``` * * With `spread` this example can be re-written. * * ```js * spread(function(x, y, z) {})([1, 2, 3]); * ``` * * @param {Function} callback * @returns {Function} */ module.exports = function spread(callback) { return function wrap(arr) { return callback.apply(null, arr); }; }; /***/ }, /* 29 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _moment = __webpack_require__(30); var _moment2 = _interopRequireDefault(_moment); var _icons = __webpack_require__(31); var _lang = __webpack_require__(32); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } module.exports = { getIcon: function () { function getIcon(icon) { if (!icon) { return 'na'; } var icoClass = _icons.icons[icon]; if (icoClass) { return icoClass; } return 'na'; } return getIcon; }(), getUnits: function () { function getUnits(unit) { if (unit === 'metric') { return { temp: '°C', speed: 'km/h' }; } else if (unit === 'imperial') { return { temp: '°F', speed: 'mph' }; } return { temp: '', speed: '' }; } return getUnits; }(), formatDate: function () { function formatDate(dte, lang) { if (dte && (0, _moment2['default'])(dte).isValid()) { _moment2['default'].locale(lang); return _moment2['default'].unix(dte).format('ddd D MMMM'); } return ''; } return formatDate; }(), getLangs: function () { function getLangs(lang) { return _lang.langText[lang] === undefined ? _lang.langText.en : _lang.langText[lang]; } return getLangs; }(), getNextDays: function () { function getNextDays(tomorrow) { // Returns an array containing the next 4 days dates in format yyyy-mm-dd var fourDates = []; //var tomorrow = new Date(); // initialized at today var tomorrow_formated = ""; // Creating the 4 dates in the good format for (var i = 0; i < 4; i++) { tomorrow.setDate(tomorrow.getDate() + 1); tomorrow_formated = tomorrow.getFullYear() + "-" + ("0" + parseInt(tomorrow.getMonth() + 1)).slice(-2) + "-" + ("0" + tomorrow.getDate()).slice(-2); fourDates.push(tomorrow_formated); } return fourDates; } return getNextDays; }() }; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } }(); ; /***/ }, /* 30 */ /***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_30__; /***/ }, /* 31 */ /***/ function(module, exports) { 'use strict'; module.exports = { icons: { '01d': 'wi-day-sunny', '02d': 'wi-day-cloudy', '03d': 'wi-cloudy', '04d': 'wi-cloudy', '09d': 'wi-showers', '10d': 'wi-day-rain', '11d': 'wi-day-thunderstorm', '13d': 'wi-day-snow-thunderstorm', '50d': 'wi-fog', '01n': 'wi-day-sunny', '02n': 'wi-day-cloudy', '03n': 'wi-cloudy', '04n': 'wi-cloudy', '09n': 'wi-showers', '10n': 'wi-day-rain', '11n': 'wi-day-thunderstorm', '13n': 'wi-day-snow-thunderstorm', '50n': 'wi-fog' } }; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } }(); ; /***/ }, /* 32 */ /***/ function(module, exports) { 'use strict'; module.exports = { langText: { en: { Wind: 'Wind', Humidity: 'Humidity' }, es: { Wind: 'Viento', Humidity: 'Humedad' }, tr: {Wind: 'Rüzgar', Humidity: 'Nem'} } }; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } }(); ; /***/ }, /* 33 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); var _utils = __webpack_require__(29); var _utils2 = _interopRequireDefault(_utils); __webpack_require__(34); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var propTypes = { todayData: _react.PropTypes.object.isRequired, unit: _react.PropTypes.string.isRequired, lang: _react.PropTypes.string.isRequired }; var TodayForecast = function () { function TodayForecast(props) { var todayData = props.todayData, unit = props.unit, lang = props.lang; var todayIcon = _utils2['default'].getIcon(todayData.icon); var units = _utils2['default'].getUnits(unit); var langs = _utils2['default'].getLangs(lang); return _react2['default'].createElement( 'div', { className: 'rw-today' }, _react2['default'].createElement( 'div', { className: 'date' }, todayData.date ), _react2['default'].createElement('div', { className: 'hr' }), _react2['default'].createElement( 'div', { className: 'current' }, todayData.temperature.current, ' ', units.temp ), _react2['default'].createElement( 'div', { className: 'range' }, todayData.temperature.max, ' / ', todayData.temperature.min, ' ', units.temp ), _react2['default'].createElement( 'div', { className: 'desc' }, _react2['default'].createElement('i', { className: 'wicon wi ' + todayIcon }), '\xA0', todayData.description ), _react2['default'].createElement('div', { className: 'hr' }), _react2['default'].createElement( 'div', { className: 'info' }, _react2['default'].createElement( 'div', null, langs.Wind, ': ', _react2['default'].createElement( 'b', null, todayData.wind ), ' ', units.speed ), _react2['default'].createElement( 'div', null, langs.Humidity, ': ', _react2['default'].createElement( 'b', null, todayData.humidity ), ' %' ) ) ); } return TodayForecast; }(); TodayForecast.propTypes = propTypes; var _default = TodayForecast; exports['default'] = _default; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } __REACT_HOT_LOADER__.register(propTypes, 'propTypes', '/Users/ofiratt/Github/react-open-weather/src/js/components/TodayForecast.js'); __REACT_HOT_LOADER__.register(TodayForecast, 'TodayForecast', '/Users/ofiratt/Github/react-open-weather/src/js/components/TodayForecast.js'); __REACT_HOT_LOADER__.register(_default, 'default', '/Users/ofiratt/Github/react-open-weather/src/js/components/TodayForecast.js'); }(); ; /***/ }, /* 34 */ /***/ function(module, exports) { // removed by extract-text-webpack-plugin /***/ }, /* 35 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); var _utils = __webpack_require__(29); var _utils2 = _interopRequireDefault(_utils); var _WeatherIcon = __webpack_require__(36); var _WeatherIcon2 = _interopRequireDefault(_WeatherIcon); __webpack_require__(37); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var propTypes = { forecast: _react.PropTypes.string.isRequired, unit: _react.PropTypes.string.isRequired, daysData: _react.PropTypes.array.isRequired }; var DaysForecast = function () { function DaysForecast(props) { var forecast = props.forecast, unit = props.unit, daysData = props.daysData; if (forecast === '5days') { var units = _utils2['default'].getUnits(unit); return _react2['default'].createElement( 'div', { className: 'rw-box-days' }, daysData.map(function (day, i) { if (i >= 0) { var iconCls = _utils2['default'].getIcon(day.icon); return _react2['default'].createElement( 'div', { key: 'day-' + i, className: 'rw-day' }, _react2['default'].createElement( 'div', { className: 'rw-date' }, day.date ), _react2['default'].createElement(_WeatherIcon2['default'], { name: iconCls }), _react2['default'].createElement( 'div', { className: 'rw-desc' }, day.description ), _react2['default'].createElement( 'div', { className: 'rw-range' }, day.temperature.max, ' / ', day.temperature.min, ' ', units.temp ) ); } return ''; }) ); } return _react2['default'].createElement('div', null); } return DaysForecast; }(); DaysForecast.propTypes = propTypes; var _default = DaysForecast; exports['default'] = _default; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } __REACT_HOT_LOADER__.register(propTypes, 'propTypes', '/Users/ofiratt/Github/react-open-weather/src/js/components/DaysForecast.js'); __REACT_HOT_LOADER__.register(DaysForecast, 'DaysForecast', '/Users/ofiratt/Github/react-open-weather/src/js/components/DaysForecast.js'); __REACT_HOT_LOADER__.register(_default, 'default', '/Users/ofiratt/Github/react-open-weather/src/js/components/DaysForecast.js'); }(); ; /***/ }, /* 36 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var WeatherIcon = function () { function WeatherIcon(props) { return _react2['default'].createElement('i', { className: 'wicon wi ' + props.name }); } return WeatherIcon; }(); WeatherIcon.propTypes = { name: _react.PropTypes.string.isRequired }; var _default = WeatherIcon; exports['default'] = _default; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } __REACT_HOT_LOADER__.register(WeatherIcon, 'WeatherIcon', '/Users/ofiratt/Github/react-open-weather/src/js/components/WeatherIcon.js'); __REACT_HOT_LOADER__.register(_default, 'default', '/Users/ofiratt/Github/react-open-weather/src/js/components/WeatherIcon.js'); }(); ; /***/ }, /* 37 */ /***/ function(module, exports) { // removed by extract-text-webpack-plugin /***/ }, /* 38 */ /***/ function(module, exports) { // removed by extract-text-webpack-plugin /***/ } /******/ ]) }); ;