mirror of
				https://github.com/Mastermindzh/react-cookie-consent.git
				synced 2025-11-04 02:38:50 +01:00 
			
		
		
		
	added an expires prop, idea inspired by aleplusplus (https://github.com/Mastermindzh/react-cookie-consent/pull/14)
This commit is contained in:
		@@ -55,6 +55,7 @@ You can optionally set some props like this (next chapter will show all props):
 | 
			
		||||
    cookieName="myAwesomeCookieName2"
 | 
			
		||||
    style={{ background: "#2B373B" }}
 | 
			
		||||
    buttonStyle={{ color: "#4e503b", fontSize: "13px" }}
 | 
			
		||||
    expires={150}
 | 
			
		||||
>
 | 
			
		||||
    This website uses cookies to enhance the user experience.{" "}
 | 
			
		||||
    <span style={{ fontSize: "10px" }}>
 | 
			
		||||
@@ -85,7 +86,8 @@ One of the props (onAccept) is a function, this function will be called after th
 | 
			
		||||
| style         | object                           | [look at source][style]        | React styling object for the bar.                                                    |
 | 
			
		||||
| buttonStyle   | object                           | [look at source][buttonStyle]  | React styling object for the button.                                                 |
 | 
			
		||||
| contentStyle  | object                           | [look at source][contentStyle] | React styling object for the content.                                                |
 | 
			
		||||
| debug         | boolean                          | undefined     | Cookie is removed to debug styling.                                                                   |
 | 
			
		||||
| debug         | boolean                          | undefined     | Bar will be drawn regardless of cookie for debugging purposes.                                                                   |
 | 
			
		||||
| expires         | number                          | 365     | Number of days before the cookie expires.                                                                   |
 | 
			
		||||
 | 
			
		||||
## Styling it
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										901
									
								
								build/index.js
									
									
									
									
									
								
							
							
						
						
									
										901
									
								
								build/index.js
									
									
									
									
									
								
							@@ -34,6 +34,9 @@ module.exports =
 | 
			
		||||
/******/ 	// expose the module cache
 | 
			
		||||
/******/ 	__webpack_require__.c = installedModules;
 | 
			
		||||
/******/
 | 
			
		||||
/******/ 	// identity function for calling harmony imports with the correct context
 | 
			
		||||
/******/ 	__webpack_require__.i = function(value) { return value; };
 | 
			
		||||
/******/
 | 
			
		||||
/******/ 	// define getter function for harmony exports
 | 
			
		||||
/******/ 	__webpack_require__.d = function(exports, name, getter) {
 | 
			
		||||
/******/ 		if(!__webpack_require__.o(exports, name)) {
 | 
			
		||||
@@ -61,7 +64,7 @@ module.exports =
 | 
			
		||||
/******/ 	__webpack_require__.p = "";
 | 
			
		||||
/******/
 | 
			
		||||
/******/ 	// Load entry module and return exports
 | 
			
		||||
/******/ 	return __webpack_require__(__webpack_require__.s = 5);
 | 
			
		||||
/******/ 	return __webpack_require__(__webpack_require__.s = 8);
 | 
			
		||||
/******/ })
 | 
			
		||||
/************************************************************************/
 | 
			
		||||
/******/ ([
 | 
			
		||||
@@ -448,6 +451,222 @@ module.exports = warning;
 | 
			
		||||
/* 5 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 | 
			
		||||
 * JavaScript Cookie v2.2.0
 | 
			
		||||
 * https://github.com/js-cookie/js-cookie
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
 | 
			
		||||
 * Released under the MIT license
 | 
			
		||||
 */
 | 
			
		||||
;(function (factory) {
 | 
			
		||||
	var registeredInModuleLoader = false;
 | 
			
		||||
	if (true) {
 | 
			
		||||
		!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
 | 
			
		||||
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
 | 
			
		||||
				(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
 | 
			
		||||
				__WEBPACK_AMD_DEFINE_FACTORY__),
 | 
			
		||||
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 | 
			
		||||
		registeredInModuleLoader = true;
 | 
			
		||||
	}
 | 
			
		||||
	if (true) {
 | 
			
		||||
		module.exports = factory();
 | 
			
		||||
		registeredInModuleLoader = true;
 | 
			
		||||
	}
 | 
			
		||||
	if (!registeredInModuleLoader) {
 | 
			
		||||
		var OldCookies = window.Cookies;
 | 
			
		||||
		var api = window.Cookies = factory();
 | 
			
		||||
		api.noConflict = function () {
 | 
			
		||||
			window.Cookies = OldCookies;
 | 
			
		||||
			return api;
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
}(function () {
 | 
			
		||||
	function extend () {
 | 
			
		||||
		var i = 0;
 | 
			
		||||
		var result = {};
 | 
			
		||||
		for (; i < arguments.length; i++) {
 | 
			
		||||
			var attributes = arguments[ i ];
 | 
			
		||||
			for (var key in attributes) {
 | 
			
		||||
				result[key] = attributes[key];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function init (converter) {
 | 
			
		||||
		function api (key, value, attributes) {
 | 
			
		||||
			var result;
 | 
			
		||||
			if (typeof document === 'undefined') {
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Write
 | 
			
		||||
 | 
			
		||||
			if (arguments.length > 1) {
 | 
			
		||||
				attributes = extend({
 | 
			
		||||
					path: '/'
 | 
			
		||||
				}, api.defaults, attributes);
 | 
			
		||||
 | 
			
		||||
				if (typeof attributes.expires === 'number') {
 | 
			
		||||
					var expires = new Date();
 | 
			
		||||
					expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
 | 
			
		||||
					attributes.expires = expires;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				// We're using "expires" because "max-age" is not supported by IE
 | 
			
		||||
				attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
 | 
			
		||||
 | 
			
		||||
				try {
 | 
			
		||||
					result = JSON.stringify(value);
 | 
			
		||||
					if (/^[\{\[]/.test(result)) {
 | 
			
		||||
						value = result;
 | 
			
		||||
					}
 | 
			
		||||
				} catch (e) {}
 | 
			
		||||
 | 
			
		||||
				if (!converter.write) {
 | 
			
		||||
					value = encodeURIComponent(String(value))
 | 
			
		||||
						.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
 | 
			
		||||
				} else {
 | 
			
		||||
					value = converter.write(value, key);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				key = encodeURIComponent(String(key));
 | 
			
		||||
				key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
 | 
			
		||||
				key = key.replace(/[\(\)]/g, escape);
 | 
			
		||||
 | 
			
		||||
				var stringifiedAttributes = '';
 | 
			
		||||
 | 
			
		||||
				for (var attributeName in attributes) {
 | 
			
		||||
					if (!attributes[attributeName]) {
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
					stringifiedAttributes += '; ' + attributeName;
 | 
			
		||||
					if (attributes[attributeName] === true) {
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
					stringifiedAttributes += '=' + attributes[attributeName];
 | 
			
		||||
				}
 | 
			
		||||
				return (document.cookie = key + '=' + value + stringifiedAttributes);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Read
 | 
			
		||||
 | 
			
		||||
			if (!key) {
 | 
			
		||||
				result = {};
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// To prevent the for loop in the first place assign an empty array
 | 
			
		||||
			// in case there are no cookies at all. Also prevents odd result when
 | 
			
		||||
			// calling "get()"
 | 
			
		||||
			var cookies = document.cookie ? document.cookie.split('; ') : [];
 | 
			
		||||
			var rdecode = /(%[0-9A-Z]{2})+/g;
 | 
			
		||||
			var i = 0;
 | 
			
		||||
 | 
			
		||||
			for (; i < cookies.length; i++) {
 | 
			
		||||
				var parts = cookies[i].split('=');
 | 
			
		||||
				var cookie = parts.slice(1).join('=');
 | 
			
		||||
 | 
			
		||||
				if (!this.json && cookie.charAt(0) === '"') {
 | 
			
		||||
					cookie = cookie.slice(1, -1);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				try {
 | 
			
		||||
					var name = parts[0].replace(rdecode, decodeURIComponent);
 | 
			
		||||
					cookie = converter.read ?
 | 
			
		||||
						converter.read(cookie, name) : converter(cookie, name) ||
 | 
			
		||||
						cookie.replace(rdecode, decodeURIComponent);
 | 
			
		||||
 | 
			
		||||
					if (this.json) {
 | 
			
		||||
						try {
 | 
			
		||||
							cookie = JSON.parse(cookie);
 | 
			
		||||
						} catch (e) {}
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					if (key === name) {
 | 
			
		||||
						result = cookie;
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					if (!key) {
 | 
			
		||||
						result[name] = cookie;
 | 
			
		||||
					}
 | 
			
		||||
				} catch (e) {}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return result;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		api.set = api;
 | 
			
		||||
		api.get = function (key) {
 | 
			
		||||
			return api.call(api, key);
 | 
			
		||||
		};
 | 
			
		||||
		api.getJSON = function () {
 | 
			
		||||
			return api.apply({
 | 
			
		||||
				json: true
 | 
			
		||||
			}, [].slice.call(arguments));
 | 
			
		||||
		};
 | 
			
		||||
		api.defaults = {};
 | 
			
		||||
 | 
			
		||||
		api.remove = function (key, attributes) {
 | 
			
		||||
			api(key, '', extend(attributes, {
 | 
			
		||||
				expires: -1
 | 
			
		||||
			}));
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		api.withConverter = init;
 | 
			
		||||
 | 
			
		||||
		return api;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return init(function () {});
 | 
			
		||||
}));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 6 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
/* WEBPACK VAR INJECTION */(function(process) {/**
 | 
			
		||||
 * Copyright (c) 2013-present, Facebook, Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is licensed under the MIT license found in the
 | 
			
		||||
 * LICENSE file in the root directory of this source tree.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
if (process.env.NODE_ENV !== 'production') {
 | 
			
		||||
  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
 | 
			
		||||
    Symbol.for &&
 | 
			
		||||
    Symbol.for('react.element')) ||
 | 
			
		||||
    0xeac7;
 | 
			
		||||
 | 
			
		||||
  var isValidElement = function(object) {
 | 
			
		||||
    return typeof object === 'object' &&
 | 
			
		||||
      object !== null &&
 | 
			
		||||
      object.$$typeof === REACT_ELEMENT_TYPE;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  // By explicitly using `prop-types` you are opting into new development behavior.
 | 
			
		||||
  // http://fb.me/prop-types-in-prod
 | 
			
		||||
  var throwOnDirectAccess = true;
 | 
			
		||||
  module.exports = __webpack_require__(12)(isValidElement, throwOnDirectAccess);
 | 
			
		||||
} else {
 | 
			
		||||
  // By explicitly using `prop-types` you are opting into new production behavior.
 | 
			
		||||
  // http://fb.me/prop-types-in-prod
 | 
			
		||||
  module.exports = __webpack_require__(11)();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 7 */
 | 
			
		||||
/***/ (function(module, exports) {
 | 
			
		||||
 | 
			
		||||
module.exports = require("react");
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 8 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -460,15 +679,15 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
 | 
			
		||||
 | 
			
		||||
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__(6);
 | 
			
		||||
var _react = __webpack_require__(7);
 | 
			
		||||
 | 
			
		||||
var _react2 = _interopRequireDefault(_react);
 | 
			
		||||
 | 
			
		||||
var _propTypes = __webpack_require__(7);
 | 
			
		||||
var _propTypes = __webpack_require__(6);
 | 
			
		||||
 | 
			
		||||
var _propTypes2 = _interopRequireDefault(_propTypes);
 | 
			
		||||
 | 
			
		||||
var _jsCookie = __webpack_require__(12);
 | 
			
		||||
var _jsCookie = __webpack_require__(5);
 | 
			
		||||
 | 
			
		||||
var _jsCookie2 = _interopRequireDefault(_jsCookie);
 | 
			
		||||
 | 
			
		||||
@@ -548,10 +767,12 @@ var CookieConsent = function (_Component) {
 | 
			
		||||
  }, {
 | 
			
		||||
    key: "accept",
 | 
			
		||||
    value: function accept() {
 | 
			
		||||
      var cookieName = this.props.cookieName;
 | 
			
		||||
      var _props2 = this.props,
 | 
			
		||||
          cookieName = _props2.cookieName,
 | 
			
		||||
          expires = _props2.expires;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      _jsCookie2.default.set(cookieName, true);
 | 
			
		||||
      _jsCookie2.default.set(cookieName, true, { expires: expires });
 | 
			
		||||
      this.setState({ visible: false });
 | 
			
		||||
    }
 | 
			
		||||
  }, {
 | 
			
		||||
@@ -564,14 +785,14 @@ var CookieConsent = function (_Component) {
 | 
			
		||||
        return null;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      var _props2 = this.props,
 | 
			
		||||
          location = _props2.location,
 | 
			
		||||
          style = _props2.style,
 | 
			
		||||
          buttonStyle = _props2.buttonStyle,
 | 
			
		||||
          contentStyle = _props2.contentStyle,
 | 
			
		||||
          disableStyles = _props2.disableStyles,
 | 
			
		||||
          onAccept = _props2.onAccept,
 | 
			
		||||
          buttonText = _props2.buttonText;
 | 
			
		||||
      var _props3 = this.props,
 | 
			
		||||
          location = _props3.location,
 | 
			
		||||
          style = _props3.style,
 | 
			
		||||
          buttonStyle = _props3.buttonStyle,
 | 
			
		||||
          contentStyle = _props3.contentStyle,
 | 
			
		||||
          disableStyles = _props3.disableStyles,
 | 
			
		||||
          onAccept = _props3.onAccept,
 | 
			
		||||
          buttonText = _props3.buttonText;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      var myStyle = {};
 | 
			
		||||
@@ -637,7 +858,8 @@ CookieConsent.propTypes = {
 | 
			
		||||
  onAccept: _propTypes2.default.func,
 | 
			
		||||
  buttonText: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func, _propTypes2.default.element]),
 | 
			
		||||
  cookieName: _propTypes2.default.string,
 | 
			
		||||
  debug: _propTypes2.default.bool
 | 
			
		||||
  debug: _propTypes2.default.bool,
 | 
			
		||||
  expires: _propTypes2.default.number
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CookieConsent.defaultProps = {
 | 
			
		||||
@@ -646,22 +868,115 @@ CookieConsent.defaultProps = {
 | 
			
		||||
  onAccept: function onAccept() {},
 | 
			
		||||
  cookieName: "CookieConsent",
 | 
			
		||||
  buttonText: "I understand",
 | 
			
		||||
  debug: false
 | 
			
		||||
  debug: false,
 | 
			
		||||
  expires: 365
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.default = CookieConsent;
 | 
			
		||||
exports.Cookies = _jsCookie2.default;
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 6 */
 | 
			
		||||
/***/ (function(module, exports) {
 | 
			
		||||
 | 
			
		||||
module.exports = require("react");
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 7 */
 | 
			
		||||
/* 9 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
/*
 | 
			
		||||
object-assign
 | 
			
		||||
(c) Sindre Sorhus
 | 
			
		||||
@license MIT
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* eslint-disable no-unused-vars */
 | 
			
		||||
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
 | 
			
		||||
var hasOwnProperty = Object.prototype.hasOwnProperty;
 | 
			
		||||
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
 | 
			
		||||
 | 
			
		||||
function toObject(val) {
 | 
			
		||||
	if (val === null || val === undefined) {
 | 
			
		||||
		throw new TypeError('Object.assign cannot be called with null or undefined');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return Object(val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function shouldUseNative() {
 | 
			
		||||
	try {
 | 
			
		||||
		if (!Object.assign) {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Detect buggy property enumeration order in older V8 versions.
 | 
			
		||||
 | 
			
		||||
		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
 | 
			
		||||
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
 | 
			
		||||
		test1[5] = 'de';
 | 
			
		||||
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
 | 
			
		||||
		var test2 = {};
 | 
			
		||||
		for (var i = 0; i < 10; i++) {
 | 
			
		||||
			test2['_' + String.fromCharCode(i)] = i;
 | 
			
		||||
		}
 | 
			
		||||
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
 | 
			
		||||
			return test2[n];
 | 
			
		||||
		});
 | 
			
		||||
		if (order2.join('') !== '0123456789') {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
 | 
			
		||||
		var test3 = {};
 | 
			
		||||
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
 | 
			
		||||
			test3[letter] = letter;
 | 
			
		||||
		});
 | 
			
		||||
		if (Object.keys(Object.assign({}, test3)).join('') !==
 | 
			
		||||
				'abcdefghijklmnopqrst') {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	} catch (err) {
 | 
			
		||||
		// We don't expect any of the above to throw, but better to be safe.
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 | 
			
		||||
	var from;
 | 
			
		||||
	var to = toObject(target);
 | 
			
		||||
	var symbols;
 | 
			
		||||
 | 
			
		||||
	for (var s = 1; s < arguments.length; s++) {
 | 
			
		||||
		from = Object(arguments[s]);
 | 
			
		||||
 | 
			
		||||
		for (var key in from) {
 | 
			
		||||
			if (hasOwnProperty.call(from, key)) {
 | 
			
		||||
				to[key] = from[key];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (getOwnPropertySymbols) {
 | 
			
		||||
			symbols = getOwnPropertySymbols(from);
 | 
			
		||||
			for (var i = 0; i < symbols.length; i++) {
 | 
			
		||||
				if (propIsEnumerable.call(from, symbols[i])) {
 | 
			
		||||
					to[symbols[i]] = from[symbols[i]];
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return to;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 10 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
/* WEBPACK VAR INJECTION */(function(process) {/**
 | 
			
		||||
 * Copyright (c) 2013-present, Facebook, Inc.
 | 
			
		||||
 *
 | 
			
		||||
@@ -669,32 +984,128 @@ module.exports = require("react");
 | 
			
		||||
 * LICENSE file in the root directory of this source tree.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if (process.env.NODE_ENV !== 'production') {
 | 
			
		||||
  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
 | 
			
		||||
    Symbol.for &&
 | 
			
		||||
    Symbol.for('react.element')) ||
 | 
			
		||||
    0xeac7;
 | 
			
		||||
 | 
			
		||||
  var isValidElement = function(object) {
 | 
			
		||||
    return typeof object === 'object' &&
 | 
			
		||||
      object !== null &&
 | 
			
		||||
      object.$$typeof === REACT_ELEMENT_TYPE;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  // By explicitly using `prop-types` you are opting into new development behavior.
 | 
			
		||||
  // http://fb.me/prop-types-in-prod
 | 
			
		||||
  var throwOnDirectAccess = true;
 | 
			
		||||
  module.exports = __webpack_require__(8)(isValidElement, throwOnDirectAccess);
 | 
			
		||||
} else {
 | 
			
		||||
  // By explicitly using `prop-types` you are opting into new production behavior.
 | 
			
		||||
  // http://fb.me/prop-types-in-prod
 | 
			
		||||
  module.exports = __webpack_require__(11)();
 | 
			
		||||
  var invariant = __webpack_require__(2);
 | 
			
		||||
  var warning = __webpack_require__(4);
 | 
			
		||||
  var ReactPropTypesSecret = __webpack_require__(3);
 | 
			
		||||
  var loggedTypeFailures = {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Assert that the values match with the type specs.
 | 
			
		||||
 * Error messages are memorized and will only be shown once.
 | 
			
		||||
 *
 | 
			
		||||
 * @param {object} typeSpecs Map of name to a ReactPropType
 | 
			
		||||
 * @param {object} values Runtime values that need to be type-checked
 | 
			
		||||
 * @param {string} location e.g. "prop", "context", "child context"
 | 
			
		||||
 * @param {string} componentName Name of the component for error messages.
 | 
			
		||||
 * @param {?Function} getStack Returns the component stack.
 | 
			
		||||
 * @private
 | 
			
		||||
 */
 | 
			
		||||
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
 | 
			
		||||
  if (process.env.NODE_ENV !== 'production') {
 | 
			
		||||
    for (var typeSpecName in typeSpecs) {
 | 
			
		||||
      if (typeSpecs.hasOwnProperty(typeSpecName)) {
 | 
			
		||||
        var error;
 | 
			
		||||
        // Prop type validation may throw. In case they do, we don't want to
 | 
			
		||||
        // fail the render phase where it didn't fail before. So we log it.
 | 
			
		||||
        // After these have been cleaned up, we'll let them throw.
 | 
			
		||||
        try {
 | 
			
		||||
          // This is intentionally an invariant that gets caught. It's the same
 | 
			
		||||
          // behavior as without this statement except with a better message.
 | 
			
		||||
          invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);
 | 
			
		||||
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
 | 
			
		||||
        } catch (ex) {
 | 
			
		||||
          error = ex;
 | 
			
		||||
        }
 | 
			
		||||
        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);
 | 
			
		||||
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
 | 
			
		||||
          // Only monitor this failure once because there tends to be a lot of the
 | 
			
		||||
          // same error.
 | 
			
		||||
          loggedTypeFailures[error.message] = true;
 | 
			
		||||
 | 
			
		||||
          var stack = getStack ? getStack() : '';
 | 
			
		||||
 | 
			
		||||
          warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = checkPropTypes;
 | 
			
		||||
 | 
			
		||||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 8 */
 | 
			
		||||
/* 11 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright (c) 2013-present, Facebook, Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is licensed under the MIT license found in the
 | 
			
		||||
 * LICENSE file in the root directory of this source tree.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var emptyFunction = __webpack_require__(1);
 | 
			
		||||
var invariant = __webpack_require__(2);
 | 
			
		||||
var ReactPropTypesSecret = __webpack_require__(3);
 | 
			
		||||
 | 
			
		||||
module.exports = function() {
 | 
			
		||||
  function shim(props, propName, componentName, location, propFullName, secret) {
 | 
			
		||||
    if (secret === ReactPropTypesSecret) {
 | 
			
		||||
      // It is still safe when called from React.
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    invariant(
 | 
			
		||||
      false,
 | 
			
		||||
      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
 | 
			
		||||
      'Use PropTypes.checkPropTypes() to call them. ' +
 | 
			
		||||
      'Read more at http://fb.me/use-check-prop-types'
 | 
			
		||||
    );
 | 
			
		||||
  };
 | 
			
		||||
  shim.isRequired = shim;
 | 
			
		||||
  function getShim() {
 | 
			
		||||
    return shim;
 | 
			
		||||
  };
 | 
			
		||||
  // Important!
 | 
			
		||||
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
 | 
			
		||||
  var ReactPropTypes = {
 | 
			
		||||
    array: shim,
 | 
			
		||||
    bool: shim,
 | 
			
		||||
    func: shim,
 | 
			
		||||
    number: shim,
 | 
			
		||||
    object: shim,
 | 
			
		||||
    string: shim,
 | 
			
		||||
    symbol: shim,
 | 
			
		||||
 | 
			
		||||
    any: shim,
 | 
			
		||||
    arrayOf: getShim,
 | 
			
		||||
    element: shim,
 | 
			
		||||
    instanceOf: getShim,
 | 
			
		||||
    node: shim,
 | 
			
		||||
    objectOf: getShim,
 | 
			
		||||
    oneOf: getShim,
 | 
			
		||||
    oneOfType: getShim,
 | 
			
		||||
    shape: getShim,
 | 
			
		||||
    exact: getShim
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  ReactPropTypes.checkPropTypes = emptyFunction;
 | 
			
		||||
  ReactPropTypes.PropTypes = ReactPropTypes;
 | 
			
		||||
 | 
			
		||||
  return ReactPropTypes;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 12 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
@@ -1243,409 +1654,5 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
 | 
			
		||||
 | 
			
		||||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 9 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
/*
 | 
			
		||||
object-assign
 | 
			
		||||
(c) Sindre Sorhus
 | 
			
		||||
@license MIT
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* eslint-disable no-unused-vars */
 | 
			
		||||
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
 | 
			
		||||
var hasOwnProperty = Object.prototype.hasOwnProperty;
 | 
			
		||||
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
 | 
			
		||||
 | 
			
		||||
function toObject(val) {
 | 
			
		||||
	if (val === null || val === undefined) {
 | 
			
		||||
		throw new TypeError('Object.assign cannot be called with null or undefined');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return Object(val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function shouldUseNative() {
 | 
			
		||||
	try {
 | 
			
		||||
		if (!Object.assign) {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Detect buggy property enumeration order in older V8 versions.
 | 
			
		||||
 | 
			
		||||
		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
 | 
			
		||||
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
 | 
			
		||||
		test1[5] = 'de';
 | 
			
		||||
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
 | 
			
		||||
		var test2 = {};
 | 
			
		||||
		for (var i = 0; i < 10; i++) {
 | 
			
		||||
			test2['_' + String.fromCharCode(i)] = i;
 | 
			
		||||
		}
 | 
			
		||||
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
 | 
			
		||||
			return test2[n];
 | 
			
		||||
		});
 | 
			
		||||
		if (order2.join('') !== '0123456789') {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
 | 
			
		||||
		var test3 = {};
 | 
			
		||||
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
 | 
			
		||||
			test3[letter] = letter;
 | 
			
		||||
		});
 | 
			
		||||
		if (Object.keys(Object.assign({}, test3)).join('') !==
 | 
			
		||||
				'abcdefghijklmnopqrst') {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	} catch (err) {
 | 
			
		||||
		// We don't expect any of the above to throw, but better to be safe.
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 | 
			
		||||
	var from;
 | 
			
		||||
	var to = toObject(target);
 | 
			
		||||
	var symbols;
 | 
			
		||||
 | 
			
		||||
	for (var s = 1; s < arguments.length; s++) {
 | 
			
		||||
		from = Object(arguments[s]);
 | 
			
		||||
 | 
			
		||||
		for (var key in from) {
 | 
			
		||||
			if (hasOwnProperty.call(from, key)) {
 | 
			
		||||
				to[key] = from[key];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (getOwnPropertySymbols) {
 | 
			
		||||
			symbols = getOwnPropertySymbols(from);
 | 
			
		||||
			for (var i = 0; i < symbols.length; i++) {
 | 
			
		||||
				if (propIsEnumerable.call(from, symbols[i])) {
 | 
			
		||||
					to[symbols[i]] = from[symbols[i]];
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return to;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 10 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
/* WEBPACK VAR INJECTION */(function(process) {/**
 | 
			
		||||
 * Copyright (c) 2013-present, Facebook, Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is licensed under the MIT license found in the
 | 
			
		||||
 * LICENSE file in the root directory of this source tree.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if (process.env.NODE_ENV !== 'production') {
 | 
			
		||||
  var invariant = __webpack_require__(2);
 | 
			
		||||
  var warning = __webpack_require__(4);
 | 
			
		||||
  var ReactPropTypesSecret = __webpack_require__(3);
 | 
			
		||||
  var loggedTypeFailures = {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Assert that the values match with the type specs.
 | 
			
		||||
 * Error messages are memorized and will only be shown once.
 | 
			
		||||
 *
 | 
			
		||||
 * @param {object} typeSpecs Map of name to a ReactPropType
 | 
			
		||||
 * @param {object} values Runtime values that need to be type-checked
 | 
			
		||||
 * @param {string} location e.g. "prop", "context", "child context"
 | 
			
		||||
 * @param {string} componentName Name of the component for error messages.
 | 
			
		||||
 * @param {?Function} getStack Returns the component stack.
 | 
			
		||||
 * @private
 | 
			
		||||
 */
 | 
			
		||||
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
 | 
			
		||||
  if (process.env.NODE_ENV !== 'production') {
 | 
			
		||||
    for (var typeSpecName in typeSpecs) {
 | 
			
		||||
      if (typeSpecs.hasOwnProperty(typeSpecName)) {
 | 
			
		||||
        var error;
 | 
			
		||||
        // Prop type validation may throw. In case they do, we don't want to
 | 
			
		||||
        // fail the render phase where it didn't fail before. So we log it.
 | 
			
		||||
        // After these have been cleaned up, we'll let them throw.
 | 
			
		||||
        try {
 | 
			
		||||
          // This is intentionally an invariant that gets caught. It's the same
 | 
			
		||||
          // behavior as without this statement except with a better message.
 | 
			
		||||
          invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);
 | 
			
		||||
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
 | 
			
		||||
        } catch (ex) {
 | 
			
		||||
          error = ex;
 | 
			
		||||
        }
 | 
			
		||||
        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);
 | 
			
		||||
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
 | 
			
		||||
          // Only monitor this failure once because there tends to be a lot of the
 | 
			
		||||
          // same error.
 | 
			
		||||
          loggedTypeFailures[error.message] = true;
 | 
			
		||||
 | 
			
		||||
          var stack = getStack ? getStack() : '';
 | 
			
		||||
 | 
			
		||||
          warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = checkPropTypes;
 | 
			
		||||
 | 
			
		||||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 11 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright (c) 2013-present, Facebook, Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is licensed under the MIT license found in the
 | 
			
		||||
 * LICENSE file in the root directory of this source tree.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var emptyFunction = __webpack_require__(1);
 | 
			
		||||
var invariant = __webpack_require__(2);
 | 
			
		||||
var ReactPropTypesSecret = __webpack_require__(3);
 | 
			
		||||
 | 
			
		||||
module.exports = function() {
 | 
			
		||||
  function shim(props, propName, componentName, location, propFullName, secret) {
 | 
			
		||||
    if (secret === ReactPropTypesSecret) {
 | 
			
		||||
      // It is still safe when called from React.
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    invariant(
 | 
			
		||||
      false,
 | 
			
		||||
      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
 | 
			
		||||
      'Use PropTypes.checkPropTypes() to call them. ' +
 | 
			
		||||
      'Read more at http://fb.me/use-check-prop-types'
 | 
			
		||||
    );
 | 
			
		||||
  };
 | 
			
		||||
  shim.isRequired = shim;
 | 
			
		||||
  function getShim() {
 | 
			
		||||
    return shim;
 | 
			
		||||
  };
 | 
			
		||||
  // Important!
 | 
			
		||||
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
 | 
			
		||||
  var ReactPropTypes = {
 | 
			
		||||
    array: shim,
 | 
			
		||||
    bool: shim,
 | 
			
		||||
    func: shim,
 | 
			
		||||
    number: shim,
 | 
			
		||||
    object: shim,
 | 
			
		||||
    string: shim,
 | 
			
		||||
    symbol: shim,
 | 
			
		||||
 | 
			
		||||
    any: shim,
 | 
			
		||||
    arrayOf: getShim,
 | 
			
		||||
    element: shim,
 | 
			
		||||
    instanceOf: getShim,
 | 
			
		||||
    node: shim,
 | 
			
		||||
    objectOf: getShim,
 | 
			
		||||
    oneOf: getShim,
 | 
			
		||||
    oneOfType: getShim,
 | 
			
		||||
    shape: getShim,
 | 
			
		||||
    exact: getShim
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  ReactPropTypes.checkPropTypes = emptyFunction;
 | 
			
		||||
  ReactPropTypes.PropTypes = ReactPropTypes;
 | 
			
		||||
 | 
			
		||||
  return ReactPropTypes;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
/* 12 */
 | 
			
		||||
/***/ (function(module, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 | 
			
		||||
 * JavaScript Cookie v2.2.0
 | 
			
		||||
 * https://github.com/js-cookie/js-cookie
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
 | 
			
		||||
 * Released under the MIT license
 | 
			
		||||
 */
 | 
			
		||||
;(function (factory) {
 | 
			
		||||
	var registeredInModuleLoader = false;
 | 
			
		||||
	if (true) {
 | 
			
		||||
		!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
 | 
			
		||||
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
 | 
			
		||||
				(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
 | 
			
		||||
				__WEBPACK_AMD_DEFINE_FACTORY__),
 | 
			
		||||
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 | 
			
		||||
		registeredInModuleLoader = true;
 | 
			
		||||
	}
 | 
			
		||||
	if (true) {
 | 
			
		||||
		module.exports = factory();
 | 
			
		||||
		registeredInModuleLoader = true;
 | 
			
		||||
	}
 | 
			
		||||
	if (!registeredInModuleLoader) {
 | 
			
		||||
		var OldCookies = window.Cookies;
 | 
			
		||||
		var api = window.Cookies = factory();
 | 
			
		||||
		api.noConflict = function () {
 | 
			
		||||
			window.Cookies = OldCookies;
 | 
			
		||||
			return api;
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
}(function () {
 | 
			
		||||
	function extend () {
 | 
			
		||||
		var i = 0;
 | 
			
		||||
		var result = {};
 | 
			
		||||
		for (; i < arguments.length; i++) {
 | 
			
		||||
			var attributes = arguments[ i ];
 | 
			
		||||
			for (var key in attributes) {
 | 
			
		||||
				result[key] = attributes[key];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function init (converter) {
 | 
			
		||||
		function api (key, value, attributes) {
 | 
			
		||||
			var result;
 | 
			
		||||
			if (typeof document === 'undefined') {
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Write
 | 
			
		||||
 | 
			
		||||
			if (arguments.length > 1) {
 | 
			
		||||
				attributes = extend({
 | 
			
		||||
					path: '/'
 | 
			
		||||
				}, api.defaults, attributes);
 | 
			
		||||
 | 
			
		||||
				if (typeof attributes.expires === 'number') {
 | 
			
		||||
					var expires = new Date();
 | 
			
		||||
					expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
 | 
			
		||||
					attributes.expires = expires;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				// We're using "expires" because "max-age" is not supported by IE
 | 
			
		||||
				attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
 | 
			
		||||
 | 
			
		||||
				try {
 | 
			
		||||
					result = JSON.stringify(value);
 | 
			
		||||
					if (/^[\{\[]/.test(result)) {
 | 
			
		||||
						value = result;
 | 
			
		||||
					}
 | 
			
		||||
				} catch (e) {}
 | 
			
		||||
 | 
			
		||||
				if (!converter.write) {
 | 
			
		||||
					value = encodeURIComponent(String(value))
 | 
			
		||||
						.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
 | 
			
		||||
				} else {
 | 
			
		||||
					value = converter.write(value, key);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				key = encodeURIComponent(String(key));
 | 
			
		||||
				key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
 | 
			
		||||
				key = key.replace(/[\(\)]/g, escape);
 | 
			
		||||
 | 
			
		||||
				var stringifiedAttributes = '';
 | 
			
		||||
 | 
			
		||||
				for (var attributeName in attributes) {
 | 
			
		||||
					if (!attributes[attributeName]) {
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
					stringifiedAttributes += '; ' + attributeName;
 | 
			
		||||
					if (attributes[attributeName] === true) {
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
					stringifiedAttributes += '=' + attributes[attributeName];
 | 
			
		||||
				}
 | 
			
		||||
				return (document.cookie = key + '=' + value + stringifiedAttributes);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Read
 | 
			
		||||
 | 
			
		||||
			if (!key) {
 | 
			
		||||
				result = {};
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// To prevent the for loop in the first place assign an empty array
 | 
			
		||||
			// in case there are no cookies at all. Also prevents odd result when
 | 
			
		||||
			// calling "get()"
 | 
			
		||||
			var cookies = document.cookie ? document.cookie.split('; ') : [];
 | 
			
		||||
			var rdecode = /(%[0-9A-Z]{2})+/g;
 | 
			
		||||
			var i = 0;
 | 
			
		||||
 | 
			
		||||
			for (; i < cookies.length; i++) {
 | 
			
		||||
				var parts = cookies[i].split('=');
 | 
			
		||||
				var cookie = parts.slice(1).join('=');
 | 
			
		||||
 | 
			
		||||
				if (!this.json && cookie.charAt(0) === '"') {
 | 
			
		||||
					cookie = cookie.slice(1, -1);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				try {
 | 
			
		||||
					var name = parts[0].replace(rdecode, decodeURIComponent);
 | 
			
		||||
					cookie = converter.read ?
 | 
			
		||||
						converter.read(cookie, name) : converter(cookie, name) ||
 | 
			
		||||
						cookie.replace(rdecode, decodeURIComponent);
 | 
			
		||||
 | 
			
		||||
					if (this.json) {
 | 
			
		||||
						try {
 | 
			
		||||
							cookie = JSON.parse(cookie);
 | 
			
		||||
						} catch (e) {}
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					if (key === name) {
 | 
			
		||||
						result = cookie;
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					if (!key) {
 | 
			
		||||
						result[name] = cookie;
 | 
			
		||||
					}
 | 
			
		||||
				} catch (e) {}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return result;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		api.set = api;
 | 
			
		||||
		api.get = function (key) {
 | 
			
		||||
			return api.call(api, key);
 | 
			
		||||
		};
 | 
			
		||||
		api.getJSON = function () {
 | 
			
		||||
			return api.apply({
 | 
			
		||||
				json: true
 | 
			
		||||
			}, [].slice.call(arguments));
 | 
			
		||||
		};
 | 
			
		||||
		api.defaults = {};
 | 
			
		||||
 | 
			
		||||
		api.remove = function (key, attributes) {
 | 
			
		||||
			api(key, '', extend(attributes, {
 | 
			
		||||
				expires: -1
 | 
			
		||||
			}));
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		api.withConverter = init;
 | 
			
		||||
 | 
			
		||||
		return api;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return init(function () {});
 | 
			
		||||
}));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ })
 | 
			
		||||
/******/ ]);
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
    "name": "Rick van Lieshout",
 | 
			
		||||
    "email": "info@rickvanlieshout.com"
 | 
			
		||||
  },
 | 
			
		||||
  "version": "1.1.11",
 | 
			
		||||
  "version": "1.1.12",
 | 
			
		||||
  "description": "A small, simple and customizable cookie consent bar for use in React applications.",
 | 
			
		||||
  "main": "build/index.js",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								src/index.js
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								src/index.js
									
									
									
									
									
								
							@@ -56,9 +56,9 @@ class CookieConsent extends Component {
 | 
			
		||||
   * Set a persistent cookie
 | 
			
		||||
   */
 | 
			
		||||
  accept() {
 | 
			
		||||
    const { cookieName } = this.props;
 | 
			
		||||
    const { cookieName, expires } = this.props;
 | 
			
		||||
 | 
			
		||||
    Cookies.set(cookieName, true);
 | 
			
		||||
    Cookies.set(cookieName, true, { expires: expires });
 | 
			
		||||
    this.setState({ visible: false });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -132,7 +132,8 @@ CookieConsent.propTypes = {
 | 
			
		||||
  onAccept: PropTypes.func,
 | 
			
		||||
  buttonText: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.element]),
 | 
			
		||||
  cookieName: PropTypes.string,
 | 
			
		||||
  debug: PropTypes.bool
 | 
			
		||||
  debug: PropTypes.bool,
 | 
			
		||||
  expires: PropTypes.number
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CookieConsent.defaultProps = {
 | 
			
		||||
@@ -141,7 +142,8 @@ CookieConsent.defaultProps = {
 | 
			
		||||
  onAccept: () => {},
 | 
			
		||||
  cookieName: "CookieConsent",
 | 
			
		||||
  buttonText: "I understand",
 | 
			
		||||
  debug: false
 | 
			
		||||
  debug: false,
 | 
			
		||||
  expires: 365
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default CookieConsent;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user