text: (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.BurgerMenu = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
  "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.
   *
   * 
   */
  
  function makeEmptyFunction(arg) {
    return function () {
      return arg;
    };
  }
  
  /**
   * This function accepts and discards inputs; it has no side effects. This is
   * primarily useful idiomatically for overridable function endpoints which
   * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
   */
  var emptyFunction = function emptyFunction() {};
  
  emptyFunction.thatReturns = makeEmptyFunction;
  emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
  emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
  emptyFunction.thatReturnsNull = makeEmptyFunction(null);
  emptyFunction.thatReturnsThis = function () {
    return this;
  };
  emptyFunction.thatReturnsArgument = function (arg) {
    return arg;
  };
  
  module.exports = emptyFunction;
  },{}],2:[function(require,module,exports){
  /**
   * 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.
   *
   */
  
  'use strict';
  
  /**
   * Use invariant() to assert state which your program assumes to be true.
   *
   * Provide sprintf-style format (only %s is supported) and arguments
   * to provide information about what broke and what you were
   * expecting.
   *
   * The invariant message will be stripped in production, but the invariant
   * will remain to ensure logic does not differ in production.
   */
  
  var validateFormat = function validateFormat(format) {};
  
  if ("production" !== 'production') {
    validateFormat = function validateFormat(format) {
      if (format === undefined) {
        throw new Error('invariant requires an error message argument');
      }
    };
  }
  
  function invariant(condition, format, a, b, c, d, e, f) {
    validateFormat(format);
  
    if (!condition) {
      var error;
      if (format === undefined) {
        error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
      } else {
        var args = [a, b, c, d, e, f];
        var argIndex = 0;
        error = new Error(format.replace(/%s/g, function () {
          return args[argIndex++];
        }));
        error.name = 'Invariant Violation';
      }
  
      error.framesToPop = 1; // we don't care about invariant's own frame
      throw error;
    }
  }
  
  module.exports = invariant;
  },{}],3:[function(require,module,exports){
  /**
   * Copyright (c) 2014-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.
   *
   */
  
  'use strict';
  
  var emptyFunction = require('./emptyFunction');
  
  /**
   * Similar to invariant but only logs a warning if the condition is not met.
   * This can be used to log issues in development environments in critical
   * paths. Removing the logging code for production environments will keep the
   * same logic and follow the same code paths.
   */
  
  var warning = emptyFunction;
  
  if ("production" !== 'production') {
    var printWarning = function printWarning(format) {
      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        args[_key - 1] = arguments[_key];
      }
  
      var argIndex = 0;
      var message = 'Warning: ' + format.replace(/%s/g, function () {
        return args[argIndex++];
      });
      if (typeof console !== 'undefined') {
        console.error(message);
      }
      try {
        // --- Welcome to debugging React ---
        // This error was thrown as a convenience so that you can use this stack
        // to find the callsite that caused this warning to fire.
        throw new Error(message);
      } catch (x) {}
    };
  
    warning = function warning(condition, format) {
      if (format === undefined) {
        throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
      }
  
      if (format.indexOf('Failed Composite propType: ') === 0) {
        return; // Ignore CompositeComponent proptype check.
      }
  
      if (!condition) {
        for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
          args[_key2 - 2] = arguments[_key2];
        }
  
        printWarning.apply(undefined, [format].concat(args));
      }
    };
  }
  
  module.exports = warning;
  },{"./emptyFunction":1}],4:[function(require,module,exports){
  /*
  object-assign
  (c) Sindre Sorhus
  @license MIT
  */
  
  'use strict';
  /* 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;
  };
  
  },{}],5:[function(require,module,exports){
  /**
   * 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.
   */
  
  'use strict';
  
  if ("production" !== 'production') {
    var invariant = require('fbjs/lib/invariant');
    var warning = require('fbjs/lib/warning');
    var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
    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 ("production" !== '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;
  
  },{"./lib/ReactPropTypesSecret":9,"fbjs/lib/invariant":2,"fbjs/lib/warning":3}],6:[function(require,module,exports){
  /**
   * 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.
   */
  
  'use strict';
  
  var emptyFunction = require('fbjs/lib/emptyFunction');
  var invariant = require('fbjs/lib/invariant');
  var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
  
  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;
  };
  
  },{"./lib/ReactPropTypesSecret":9,"fbjs/lib/emptyFunction":1,"fbjs/lib/invariant":2}],7:[function(require,module,exports){
  /**
   * 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.
   */
  
  'use strict';
  
  var emptyFunction = require('fbjs/lib/emptyFunction');
  var invariant = require('fbjs/lib/invariant');
  var warning = require('fbjs/lib/warning');
  var assign = require('object-assign');
  
  var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
  var checkPropTypes = require('./checkPropTypes');
  
  module.exports = function(isValidElement, throwOnDirectAccess) {
    /* global Symbol */
    var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
    var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
  
    /**
     * Returns the iterator method function contained on the iterable object.
     *
     * Be sure to invoke the function with the iterable as context:
     *
     *     var iteratorFn = getIteratorFn(myIterable);
     *     if (iteratorFn) {
     *       var iterator = iteratorFn.call(myIterable);
     *       ...
     *     }
     *
     * @param {?object} maybeIterable
     * @return {?function}
     */
    function getIteratorFn(maybeIterable) {
      var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
      if (typeof iteratorFn === 'function') {
        return iteratorFn;
      }
    }
  
    /**
     * Collection of methods that allow declaration and validation of props that are
     * supplied to React components. Example usage:
     *
     *   var Props = require('ReactPropTypes');
     *   var MyArticle = React.createClass({
     *     propTypes: {
     *       // An optional string prop named "description".
     *       description: Props.string,
     *
     *       // A required enum prop named "category".
     *       category: Props.oneOf(['News','Photos']).isRequired,
     *
     *       // A prop named "dialog" that requires an instance of Dialog.
     *       dialog: Props.instanceOf(Dialog).isRequired
     *     },
     *     render: function() { ... }
     *   });
     *
     * A more formal specification of how these methods are used:
     *
     *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
     *   decl := ReactPropTypes.{type}(.isRequired)?
     *
     * Each and every declaration produces a function with the same signature. This
     * allows the creation of custom validation functions. For example:
     *
     *  var MyLink = React.createClass({
     *    propTypes: {
     *      // An optional string or URI prop named "href".
     *      href: function(props, propName, componentName) {
     *        var propValue = props[propName];
     *        if (propValue != null && typeof propValue !== 'string' &&
     *            !(propValue instanceof URI)) {
     *          return new Error(
     *            'Expected a string or an URI for ' + propName + ' in ' +
     *            componentName
     *          );
     *        }
     *      }
     *    },
     *    render: function() {...}
     *  });
     *
     * @internal
     */
  
    var ANONYMOUS = '<<anonymous>>';
  
    // Important!
    // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
    var ReactPropTypes = {
      array: createPrimitiveTypeChecker('array'),
      bool: createPrimitiveTypeChecker('boolean'),
      func: createPrimitiveTypeChecker('function'),
      number: createPrimitiveTypeChecker('number'),
      object: createPrimitiveTypeChecker('object'),
      string: createPrimitiveTypeChecker('string'),
      symbol: createPrimitiveTypeChecker('symbol'),
  
      any: createAnyTypeChecker(),
      arrayOf: createArrayOfTypeChecker,
      element: createElementTypeChecker(),
      instanceOf: createInstanceTypeChecker,
      node: createNodeChecker(),
      objectOf: createObjectOfTypeChecker,
      oneOf: createEnumTypeChecker,
      oneOfType: createUnionTypeChecker,
      shape: createShapeTypeChecker,
      exact: createStrictShapeTypeChecker,
    };
  
    /**
     * inlined Object.is polyfill to avoid requiring consumers ship their own
     * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
     */
    /*eslint-disable no-self-compare*/
    function is(x, y) {
      // SameValue algorithm
      if (x === y) {
        // Steps 1-5, 7-10
        // Steps 6.b-6.e: +0 != -0
        return x !== 0 || 1 / x === 1 / y;
      } else {
        // Step 6.a: NaN == NaN
        return x !== x && y !== y;
      }
    }
    /*eslint-enable no-self-compare*/
  
    /**
     * We use an Error-like object for backward compatibility as people may call
     * PropTypes directly and inspect their output. However, we don't use real
     * Errors anymore. We don't inspect their stack anyway, and creating them
     * is prohibitively expensive if they are created too often, such as what
     * happens in oneOfType() for any type before the one that matched.
     */
    function PropTypeError(message) {
      this.message = message;
      this.stack = '';
    }
    // Make `instanceof Error` still work for returned errors.
    PropTypeError.prototype = Error.prototype;
  
    function createChainableTypeChecker(validate) {
      if ("production" !== 'production') {
        var manualPropTypeCallCache = {};
        var manualPropTypeWarningCount = 0;
      }
      function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
        componentName = componentName || ANONYMOUS;
        propFullName = propFullName || propName;
  
        if (secret !== ReactPropTypesSecret) {
          if (throwOnDirectAccess) {
            // New behavior only for users of `prop-types` package
            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'
            );
          } else if ("production" !== 'production' && typeof console !== 'undefined') {
            // Old behavior for people using React.PropTypes
            var cacheKey = componentName + ':' + propName;
            if (
              !manualPropTypeCallCache[cacheKey] &&
              // Avoid spamming the console because they are often not actionable except for lib authors
              manualPropTypeWarningCount < 3
            ) {
              warning(
                false,
                'You are manually calling a React.PropTypes validation ' +
                'function for the `%s` prop on `%s`. This is deprecated ' +
                'and will throw in the standalone `prop-types` package. ' +
                'You may be seeing this warning due to a third-party PropTypes ' +
                'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',
                propFullName,
                componentName
              );
              manualPropTypeCallCache[cacheKey] = true;
              manualPropTypeWarningCount++;
            }
          }
        }
        if (props[propName] == null) {
          if (isRequired) {
            if (props[propName] === null) {
              return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
            }
            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
          }
          return null;
        } else {
          return validate(props, propName, componentName, location, propFullName);
        }
      }
  
      var chainedCheckType = checkType.bind(null, false);
      chainedCheckType.isRequired = checkType.bind(null, true);
  
      return chainedCheckType;
    }
  
    function createPrimitiveTypeChecker(expectedType) {
      function validate(props, propName, componentName, location, propFullName, secret) {
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== expectedType) {
          // `propValue` being instance of, say, date/regexp, pass the 'object'
          // check, but we can offer a more precise error message here rather than
          // 'of type `object`'.
          var preciseType = getPreciseType(propValue);
  
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createAnyTypeChecker() {
      return createChainableTypeChecker(emptyFunction.thatReturnsNull);
    }
  
    function createArrayOfTypeChecker(typeChecker) {
      function validate(props, propName, componentName, location, propFullName) {
        if (typeof typeChecker !== 'function') {
          return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
        }
        var propValue = props[propName];
        if (!Array.isArray(propValue)) {
          var propType = getPropType(propValue);
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
        }
        for (var i = 0; i < propValue.length; i++) {
          var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
          if (error instanceof Error) {
            return error;
          }
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createElementTypeChecker() {
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        if (!isValidElement(propValue)) {
          var propType = getPropType(propValue);
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createInstanceTypeChecker(expectedClass) {
      function validate(props, propName, componentName, location, propFullName) {
        if (!(props[propName] instanceof expectedClass)) {
          var expectedClassName = expectedClass.name || ANONYMOUS;
          var actualClassName = getClassName(props[propName]);
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createEnumTypeChecker(expectedValues) {
      if (!Array.isArray(expectedValues)) {
        "production" !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
        return emptyFunction.thatReturnsNull;
      }
  
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        for (var i = 0; i < expectedValues.length; i++) {
          if (is(propValue, expectedValues[i])) {
            return null;
          }
        }
  
        var valuesString = JSON.stringify(expectedValues);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
      }
      return createChainableTypeChecker(validate);
    }
  
    function createObjectOfTypeChecker(typeChecker) {
      function validate(props, propName, componentName, location, propFullName) {
        if (typeof typeChecker !== 'function') {
          return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
        }
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== 'object') {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
        }
        for (var key in propValue) {
          if (propValue.hasOwnProperty(key)) {
            var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
            if (error instanceof Error) {
              return error;
            }
          }
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createUnionTypeChecker(arrayOfTypeCheckers) {
      if (!Array.isArray(arrayOfTypeCheckers)) {
        "production" !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
        return emptyFunction.thatReturnsNull;
      }
  
      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
        var checker = arrayOfTypeCheckers[i];
        if (typeof checker !== 'function') {
          warning(
            false,
            'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
            'received %s at index %s.',
            getPostfixForTypeWarning(checker),
            i
          );
          return emptyFunction.thatReturnsNull;
        }
      }
  
      function validate(props, propName, componentName, location, propFullName) {
        for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
          var checker = arrayOfTypeCheckers[i];
          if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
            return null;
          }
        }
  
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
      }
      return createChainableTypeChecker(validate);
    }
  
    function createNodeChecker() {
      function validate(props, propName, componentName, location, propFullName) {
        if (!isNode(props[propName])) {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createShapeTypeChecker(shapeTypes) {
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== 'object') {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
        }
        for (var key in shapeTypes) {
          var checker = shapeTypes[key];
          if (!checker) {
            continue;
          }
          var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error) {
            return error;
          }
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createStrictShapeTypeChecker(shapeTypes) {
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== 'object') {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
        }
        // We need to check all keys in case some are required but missing from
        // props.
        var allKeys = assign({}, props[propName], shapeTypes);
        for (var key in allKeys) {
          var checker = shapeTypes[key];
          if (!checker) {
            return new PropTypeError(
              'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
              '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
              '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
            );
          }
          var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error) {
            return error;
          }
        }
        return null;
      }
  
      return createChainableTypeChecker(validate);
    }
  
    function isNode(propValue) {
      switch (typeof propValue) {
        case 'number':
        case 'string':
        case 'undefined':
          return true;
        case 'boolean':
          return !propValue;
        case 'object':
          if (Array.isArray(propValue)) {
            return propValue.every(isNode);
          }
          if (propValue === null || isValidElement(propValue)) {
            return true;
          }
  
          var iteratorFn = getIteratorFn(propValue);
          if (iteratorFn) {
            var iterator = iteratorFn.call(propValue);
            var step;
            if (iteratorFn !== propValue.entries) {
              while (!(step = iterator.next()).done) {
                if (!isNode(step.value)) {
                  return false;
                }
              }
            } else {
              // Iterator will provide entry [k,v] tuples rather than values.
              while (!(step = iterator.next()).done) {
                var entry = step.value;
                if (entry) {
                  if (!isNode(entry[1])) {
                    return false;
                  }
                }
              }
            }
          } else {
            return false;
          }
  
          return true;
        default:
          return false;
      }
    }
  
    function isSymbol(propType, propValue) {
      // Native Symbol.
      if (propType === 'symbol') {
        return true;
      }
  
      // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
      if (propValue['@@toStringTag'] === 'Symbol') {
        return true;
      }
  
      // Fallback for non-spec compliant Symbols which are polyfilled.
      if (typeof Symbol === 'function' && propValue instanceof Symbol) {
        return true;
      }
  
      return false;
    }
  
    // Equivalent of `typeof` but with special handling for array and regexp.
    function getPropType(propValue) {
      var propType = typeof propValue;
      if (Array.isArray(propValue)) {
        return 'array';
      }
      if (propValue instanceof RegExp) {
        // Old webkits (at least until Android 4.0) return 'function' rather than
        // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
        // passes PropTypes.object.
        return 'object';
      }
      if (isSymbol(propType, propValue)) {
        return 'symbol';
      }
      return propType;
    }
  
    // This handles more types than `getPropType`. Only used for error messages.
    // See `createPrimitiveTypeChecker`.
    function getPreciseType(propValue) {
      if (typeof propValue === 'undefined' || propValue === null) {
        return '' + propValue;
      }
      var propType = getPropType(propValue);
      if (propType === 'object') {
        if (propValue instanceof Date) {
          return 'date';
        } else if (propValue instanceof RegExp) {
          return 'regexp';
        }
      }
      return propType;
    }
  
    // Returns a string that is postfixed to a warning about an invalid type.
    // For example, "undefined" or "of type array"
    function getPostfixForTypeWarning(value) {
      var type = getPreciseType(value);
      switch (type) {
        case 'array':
        case 'object':
          return 'an ' + type;
        case 'boolean':
        case 'date':
        case 'regexp':
          return 'a ' + type;
        default:
          return type;
      }
    }
  
    // Returns class name of the object, if any.
    function getClassName(propValue) {
      if (!propValue.constructor || !propValue.constructor.name) {
        return ANONYMOUS;
      }
      return propValue.constructor.name;
    }
  
    ReactPropTypes.checkPropTypes = checkPropTypes;
    ReactPropTypes.PropTypes = ReactPropTypes;
  
    return ReactPropTypes;
  };
  
  },{"./checkPropTypes":5,"./lib/ReactPropTypesSecret":9,"fbjs/lib/emptyFunction":1,"fbjs/lib/invariant":2,"fbjs/lib/warning":3,"object-assign":4}],8:[function(require,module,exports){
  /**
   * 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 ("production" !== '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 = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);
  } else {
    // By explicitly using `prop-types` you are opting into new production behavior.
    // http://fb.me/prop-types-in-prod
    module.exports = require('./factoryWithThrowingShims')();
  }
  
  },{"./factoryWithThrowingShims":6,"./factoryWithTypeCheckers":7}],9:[function(require,module,exports){
  /**
   * 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.
   */
  
  'use strict';
  
  var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
  
  module.exports = ReactPropTypesSecret;
  
  },{}],10:[function(require,module,exports){
  (function (global){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  var _extends = Object.assign || function (target) {
          for (var i = 1; i < arguments.length; i++) {
              var source = arguments[i];
              for (var key in source) {
                  if (Object.prototype.hasOwnProperty.call(source, key)) {
                      target[key] = source[key];
                  }
              }
          }
          return target;
      };
  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 _get = function get(_x, _x2, _x3) {
      var _again = true;
      _function:
          while (_again) {
              var object = _x, property = _x2, receiver = _x3;
              _again = false;
              if (object === null)
                  object = Function.prototype;
              var desc = Object.getOwnPropertyDescriptor(object, property);
              if (desc === undefined) {
                  var parent = Object.getPrototypeOf(object);
                  if (parent === null) {
                      return undefined;
                  } else {
                      _x = parent;
                      _x2 = property;
                      _x3 = receiver;
                      _again = true;
                      desc = parent = undefined;
                      continue _function;
                  }
              } else if ('value' in desc) {
                  return desc.value;
              } else {
                  var getter = desc.get;
                  if (getter === undefined) {
                      return undefined;
                  }
                  return getter.call(receiver);
              }
          }
  };
  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 _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 _react = typeof window !== 'undefined' ? window['React'] : typeof global !== 'undefined' ? global['React'] : null;
  var _react2 = _interopRequireDefault(_react);
  var _propTypes = require('prop-types');
  var _propTypes2 = _interopRequireDefault(_propTypes);
  var BurgerIcon = function (_Component) {
          _inherits(BurgerIcon, _Component);
          function BurgerIcon(props) {
              _classCallCheck(this, BurgerIcon);
              _get(Object.getPrototypeOf(BurgerIcon.prototype), 'constructor', this).call(this, props);
              this.state = { hover: false };
          }
          _createClass(BurgerIcon, [
              {
                  key: 'getLineStyle',
                  value: function getLineStyle(index) {
                      return {
                          position: 'absolute',
                          height: '20%',
                          left: 0,
                          right: 0,
                          top: 20 * (index * 2) + '%',
                          opacity: this.state.hover ? 0.6 : 1
                      };
                  }
              },
              {
                  key: 'render',
                  value: function render() {
                      var _this = this;
                      var icon = undefined;
                      var buttonStyle = {
                              position: 'absolute',
                              left: 0,
                              top: 0,
                              width: '100%',
                              height: '100%',
                              margin: 0,
                              padding: 0,
                              border: 'none',
                              opacity: 0,
                              fontSize: 8,
                              cursor: 'pointer'
                          };
                      if (this.props.customIcon) {
                          var extraProps = {
                                  className: 'bm-icon',
                                  style: _extends({
                                      width: '100%',
                                      height: '100%'
                                  }, this.props.styles.bmIcon)
                              };
                          icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);
                      } else {
                          icon = _react2['default'].createElement('span', null, [
                              0,
                              1,
                              2
                          ].map(function (bar) {
                              return _react2['default'].createElement('span', {
                                  key: bar,
                                  className: ('bm-burger-bars ' + _this.props.barClassName).trim(),
                                  style: _extends({}, _this.getLineStyle(bar), _this.props.styles.bmBurgerBars)
                              });
                          }));
                      }
                      return _react2['default'].createElement('div', {
                          className: ('bm-burger-button ' + this.props.className).trim(),
                          style: _extends({ zIndex: 1000 }, this.props.styles.bmBurgerButton)
                      }, icon, _react2['default'].createElement('button', {
                          onClick: this.props.onClick,
                          onMouseOver: function () {
                              return _this.setState({ hover: true });
                          },
                          onMouseOut: function () {
                              return _this.setState({ hover: false });
                          },
                          style: buttonStyle
                      }, 'Open Menu'));
                  }
              }
          ]);
          return BurgerIcon;
      }(_react.Component);
  exports['default'] = BurgerIcon;
  BurgerIcon.propTypes = {
      barClassName: _propTypes2['default'].string,
      customIcon: _propTypes2['default'].element,
      styles: _propTypes2['default'].object
  };
  BurgerIcon.defaultProps = {
      barClassName: '',
      className: '',
      styles: {}
  };
  module.exports = exports['default'];
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  },{"prop-types":8}],11:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  exports['default'] = {
      slide: require('./menus/slide'),
      stack: require('./menus/stack'),
      elastic: require('./menus/elastic'),
      bubble: require('./menus/bubble'),
      push: require('./menus/push'),
      pushRotate: require('./menus/pushRotate'),
      scaleDown: require('./menus/scaleDown'),
      scaleRotate: require('./menus/scaleRotate'),
      fallDown: require('./menus/fallDown'),
      reveal: require('./menus/reveal')
  };
  module.exports = exports['default'];
  },{"./menus/bubble":15,"./menus/elastic":16,"./menus/fallDown":17,"./menus/push":18,"./menus/pushRotate":19,"./menus/reveal":20,"./menus/scaleDown":21,"./menus/scaleRotate":22,"./menus/slide":23,"./menus/stack":24}],12:[function(require,module,exports){
  (function (global){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  var _extends = Object.assign || function (target) {
          for (var i = 1; i < arguments.length; i++) {
              var source = arguments[i];
              for (var key in source) {
                  if (Object.prototype.hasOwnProperty.call(source, key)) {
                      target[key] = source[key];
                  }
              }
          }
          return target;
      };
  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 _get = function get(_x, _x2, _x3) {
      var _again = true;
      _function:
          while (_again) {
              var object = _x, property = _x2, receiver = _x3;
              _again = false;
              if (object === null)
                  object = Function.prototype;
              var desc = Object.getOwnPropertyDescriptor(object, property);
              if (desc === undefined) {
                  var parent = Object.getPrototypeOf(object);
                  if (parent === null) {
                      return undefined;
                  } else {
                      _x = parent;
                      _x2 = property;
                      _x3 = receiver;
                      _again = true;
                      desc = parent = undefined;
                      continue _function;
                  }
              } else if ('value' in desc) {
                  return desc.value;
              } else {
                  var getter = desc.get;
                  if (getter === undefined) {
                      return undefined;
                  }
                  return getter.call(receiver);
              }
          }
  };
  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 _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 _react = typeof window !== 'undefined' ? window['React'] : typeof global !== 'undefined' ? global['React'] : null;
  var _react2 = _interopRequireDefault(_react);
  var _propTypes = require('prop-types');
  var _propTypes2 = _interopRequireDefault(_propTypes);
  var CrossIcon = function (_Component) {
          _inherits(CrossIcon, _Component);
          function CrossIcon() {
              _classCallCheck(this, CrossIcon);
              _get(Object.getPrototypeOf(CrossIcon.prototype), 'constructor', this).apply(this, arguments);
          }
          _createClass(CrossIcon, [
              {
                  key: 'getCrossStyle',
                  value: function getCrossStyle(type) {
                      return {
                          position: 'absolute',
                          width: 3,
                          height: 14,
                          transform: type === 'before' ? 'rotate(45deg)' : 'rotate(-45deg)'
                      };
                  }
              },
              {
                  key: 'render',
                  value: function render() {
                      var _this = this;
                      var icon;
                      var buttonWrapperStyle = {
                              position: 'absolute',
                              width: 24,
                              height: 24,
                              right: 8,
                              top: 8
                          };
                      var buttonStyle = {
                              position: 'absolute',
                              left: 0,
                              top: 0,
                              width: '100%',
                              height: '100%',
                              margin: 0,
                              padding: 0,
                              border: 'none',
                              fontSize: 0,
                              background: 'transparent',
                              color: 'transparent',
                              outline: 'none',
                              cursor: 'pointer'
                          };
                      if (this.props.customIcon) {
                          var extraProps = {
                                  className: 'bm-cross',
                                  style: _extends({
                                      width: '100%',
                                      height: '100%'
                                  }, this.props.styles.bmCross)
                              };
                          icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);
                      } else {
                          icon = _react2['default'].createElement('span', {
                              style: {
                                  position: 'absolute',
                                  top: '6px',
                                  right: '14px'
                              }
                          }, [
                              'before',
                              'after'
                          ].map(function (type, i) {
                              return _react2['default'].createElement('span', {
                                  key: i,
                                  className: ('bm-cross ' + _this.props.crossClassName).trim(),
                                  style: _extends({}, _this.getCrossStyle(type), _this.props.styles.bmCross)
                              });
                          }));
                      }
                      return _react2['default'].createElement('div', {
                          className: ('bm-cross-button ' + this.props.className).trim(),
                          style: _extends({}, buttonWrapperStyle, this.props.styles.bmCrossButton)
                      }, icon, _react2['default'].createElement('button', {
                          onClick: this.props.onClick,
                          style: buttonStyle
                      }, 'Close Menu'));
                  }
              }
          ]);
          return CrossIcon;
      }(_react.Component);
  exports['default'] = CrossIcon;
  CrossIcon.propTypes = {
      crossClassName: _propTypes2['default'].string,
      customIcon: _propTypes2['default'].element,
      styles: _propTypes2['default'].object
  };
  CrossIcon.defaultProps = {
      crossClassName: '',
      className: '',
      styles: {}
  };
  module.exports = exports['default'];
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  },{"prop-types":8}],13:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  var styles = {
          overlay: function overlay(isOpen) {
              return {
                  position: 'fixed',
                  zIndex: 1000,
                  width: '100%',
                  height: '100%',
                  background: 'rgba(0, 0, 0, 0.3)',
                  opacity: isOpen ? 1 : 0,
                  MozTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',
                  MsTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',
                  OTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',
                  WebkitTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',
                  transform: isOpen ? '' : 'translate3d(100%, 0, 0)',
                  transition: isOpen ? 'opacity 0.3s' : 'opacity 0.3s, transform 0s 0.3s'
              };
          },
          menuWrap: function menuWrap(isOpen, width, right) {
              return {
                  right: right ? 0 : 'inherit',
                  zIndex: 1100,
                  width: width,
                  height: '100%',
                  transition: 'all 0.5s'
              };
          },
          menu: function menu() {
              return {
                  height: '100%',
                  boxSizing: 'border-box',
                  overflow: 'auto'
              };
          },
          itemList: function itemList() {
              return { height: '100%' };
          },
          item: function item() {
              return {
                  display: 'block',
                  outline: 'none'
              };
          }
      };
  exports['default'] = styles;
  module.exports = exports['default'];
  },{}],14:[function(require,module,exports){
  (function (global){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  var _extends = Object.assign || function (target) {
          for (var i = 1; i < arguments.length; i++) {
              var source = arguments[i];
              for (var key in source) {
                  if (Object.prototype.hasOwnProperty.call(source, key)) {
                      target[key] = source[key];
                  }
              }
          }
          return target;
      };
  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 _get = function get(_x3, _x4, _x5) {
      var _again = true;
      _function:
          while (_again) {
              var object = _x3, property = _x4, receiver = _x5;
              _again = false;
              if (object === null)
                  object = Function.prototype;
              var desc = Object.getOwnPropertyDescriptor(object, property);
              if (desc === undefined) {
                  var parent = Object.getPrototypeOf(object);
                  if (parent === null) {
                      return undefined;
                  } else {
                      _x3 = parent;
                      _x4 = property;
                      _x5 = receiver;
                      _again = true;
                      desc = parent = undefined;
                      continue _function;
                  }
              } else if ('value' in desc) {
                  return desc.value;
              } else {
                  var getter = desc.get;
                  if (getter === undefined) {
                      return undefined;
                  }
                  return getter.call(receiver);
              }
          }
  };
  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 _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 _react = typeof window !== 'undefined' ? window['React'] : typeof global !== 'undefined' ? global['React'] : null;
  var _react2 = _interopRequireDefault(_react);
  var _reactDom = typeof window !== 'undefined' ? window['ReactDOM'] : typeof global !== 'undefined' ? global['ReactDOM'] : null;
  var _reactDom2 = _interopRequireDefault(_reactDom);
  var _propTypes = require('prop-types');
  var _propTypes2 = _interopRequireDefault(_propTypes);
  var _baseStyles = require('./baseStyles');
  var _baseStyles2 = _interopRequireDefault(_baseStyles);
  var _BurgerIcon = require('./BurgerIcon');
  var _BurgerIcon2 = _interopRequireDefault(_BurgerIcon);
  var _CrossIcon = require('./CrossIcon');
  var _CrossIcon2 = _interopRequireDefault(_CrossIcon);
  exports['default'] = function (styles) {
      var Menu = function (_Component) {
              _inherits(Menu, _Component);
              function Menu(props) {
                  _classCallCheck(this, Menu);
                  _get(Object.getPrototypeOf(Menu.prototype), 'constructor', this).call(this, props);
                  this.state = { isOpen: false };
              }
              _createClass(Menu, [
                  {
                      key: 'toggleMenu',
                      value: function toggleMenu() {
                          var _this = this;
                          var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
                          var isOpen = options.isOpen;
                          var noStateChange = options.noStateChange;
                          var newState = { isOpen: typeof isOpen !== 'undefined' ? isOpen : !this.state.isOpen };
                          this.applyWrapperStyles();
                          this.setState(newState, function () {
                              !noStateChange && _this.props.onStateChange(newState);
                              _this.timeoutId && clearTimeout(_this.timeoutId);
                              _this.timeoutId = setTimeout(function () {
                                  _this.timeoutId = null;
                                  if (!newState.isOpen) {
                                      _this.applyWrapperStyles(false);
                                  }
                              }, 500);
                          });
                      }
                  },
                  {
                      key: 'applyWrapperStyles',
                      value: function applyWrapperStyles() {
                          var set = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
                          if (this.props.bodyClassName) {
                              var body = document.querySelector('body');
                              body.classList[set ? 'add' : 'remove'](this.props.bodyClassName);
                          }
                          if (styles.pageWrap && this.props.pageWrapId) {
                              this.handleExternalWrapper(this.props.pageWrapId, styles.pageWrap, set);
                          }
                          if (styles.outerContainer && this.props.outerContainerId) {
                              this.handleExternalWrapper(this.props.outerContainerId, styles.outerContainer, set);
                          }
                      }
                  },
                  {
                      key: 'handleExternalWrapper',
                      value: function handleExternalWrapper(id, wrapperStyles, set) {
                          var html = document.querySelector('html');
                          var body = document.querySelector('body');
                          var wrapper = document.getElementById(id);
                          if (!wrapper) {
                              console.error('Element with ID \'' + id + '\' not found');
                              return;
                          }
                          var builtStyles = this.getStyle(wrapperStyles);
                          for (var prop in builtStyles) {
                              if (builtStyles.hasOwnProperty(prop)) {
                                  wrapper.style[prop] = set ? builtStyles[prop] : '';
                              }
                          }
                          [
                              html,
                              body
                          ].forEach(function (element) {
                              element.style['overflow-x'] = set ? 'hidden' : '';
                          });
                      }
                  },
                  {
                      key: 'getStyles',
                      value: function getStyles(el, index, inline) {
                          var propName = 'bm' + el.replace(el.charAt(0), el.charAt(0).toUpperCase());
                          var output = _baseStyles2['default'][el] ? this.getStyle(_baseStyles2['default'][el]) : {};
                          if (styles[el]) {
                              output = _extends({}, output, this.getStyle(styles[el], index + 1));
                          }
                          if (this.props.styles[propName]) {
                              output = _extends({}, output, this.props.styles[propName]);
                          }
                          if (inline) {
                              output = _extends({}, output, inline);
                          }
                          return output;
                      }
                  },
                  {
                      key: 'getStyle',
                      value: function getStyle(style, index) {
                          var width = this.props.width;
                          var formattedWidth = typeof width !== 'string' ? width + 'px' : width;
                          return style(this.state.isOpen, formattedWidth, this.props.right, index);
                      }
                  },
                  {
                      key: 'listenForClose',
                      value: function listenForClose(e) {
                          e = e || window.event;
                          if (this.state.isOpen && (e.key === 'Escape' || e.keyCode === 27)) {
                              this.toggleMenu();
                          }
                      }
                  },
                  {
                      key: 'shouldDisableOverlayClick',
                      value: function shouldDisableOverlayClick() {
                          if (typeof this.props.disableOverlayClick === 'function') {
                              return this.props.disableOverlayClick();
                          } else {
                              return this.props.disableOverlayClick;
                          }
                      }
                  },
                  {
                      key: 'componentWillMount',
                      value: function componentWillMount() {
                          if (!styles) {
                              throw new Error('No styles supplied');
                          }
                      }
                  },
                  {
                      key: 'componentDidMount',
                      value: function componentDidMount() {
                          if (this.props.customOnKeyDown) {
                              window.onkeydown = this.props.customOnKeyDown;
                          } else if (!this.props.disableCloseOnEsc) {
                              window.onkeydown = this.listenForClose.bind(this);
                          }
                          if (this.props.isOpen) {
                              this.toggleMenu({
                                  isOpen: true,
                                  noStateChange: true
                              });
                          }
                      }
                  },
                  {
                      key: 'componentWillUnmount',
                      value: function componentWillUnmount() {
                          window.onkeydown = null;
                          this.applyWrapperStyles(false);
                      }
                  },
                  {
                      key: 'componentDidUpdate',
                      value: function componentDidUpdate() {
                          var _this2 = this;
                          if (styles.svg) {
                              (function () {
                                  var morphShape = _reactDom2['default'].findDOMNode(_this2, 'bm-morph-shape');
                                  var path = styles.svg.lib(morphShape).select('path');
                                  if (_this2.state.isOpen) {
                                      styles.svg.animate(path);
                                  } else {
                                      setTimeout(function () {
                                          path.attr('d', styles.svg.pathInitial);
                                      }, 300);
                                  }
                              }());
                          }
                      }
                  },
                  {
                      key: 'componentWillReceiveProps',
                      value: function componentWillReceiveProps(nextProps) {
                          if (typeof nextProps.isOpen !== 'undefined' && nextProps.isOpen !== this.state.isOpen) {
                              this.toggleMenu();
                          }
                      }
                  },
                  {
                      key: 'render',
                      value: function render() {
                          var _this3 = this;
                          return _react2['default'].createElement('div', null, !this.props.noOverlay && _react2['default'].createElement('div', {
                              className: ('bm-overlay ' + this.props.overlayClassName).trim(),
                              onClick: function () {
                                  return !_this3.shouldDisableOverlayClick() && _this3.toggleMenu();
                              },
                              style: this.getStyles('overlay')
                          }), _react2['default'].createElement('div', {
                              id: this.props.id,
                              className: ('bm-menu-wrap ' + this.props.className).trim(),
                              style: this.getStyles('menuWrap')
                          }, styles.svg && _react2['default'].createElement('div', {
                              className: ('bm-morph-shape ' + this.props.morphShapeClassName).trim(),
                              style: this.getStyles('morphShape')
                          }, _react2['default'].createElement('svg', {
                              width: '100%',
                              height: '100%',
                              viewBox: '0 0 100 800',
                              preserveAspectRatio: 'none'
                          }, _react2['default'].createElement('path', { d: styles.svg.pathInitial }))), _react2['default'].createElement('div', {
                              className: ('bm-menu ' + this.props.menuClassName).trim(),
                              style: this.getStyles('menu')
                          }, _react2['default'].createElement('nav', {
                              className: ('bm-item-list ' + this.props.itemListClassName).trim(),
                              style: this.getStyles('itemList')
                          }, _react2['default'].Children.map(this.props.children, function (item, index) {
                              if (item) {
                                  var classList = [
                                          'bm-item',
                                          _this3.props.itemClassName,
                                          item.props.className
                                      ].filter(function (className) {
                                          return !!className;
                                      }).join(' ');
                                  var extraProps = {
                                          key: index,
                                          className: classList,
                                          style: _this3.getStyles('item', index, item.props.style)
                                      };
                                  return _react2['default'].cloneElement(item, extraProps);
                              }
                          }))), this.props.customCrossIcon !== false && _react2['default'].createElement('div', { style: this.getStyles('closeButton') }, _react2['default'].createElement(_CrossIcon2['default'], {
                              onClick: function () {
                                  return _this3.toggleMenu();
                              },
                              styles: this.props.styles,
                              customIcon: this.props.customCrossIcon,
                              className: this.props.crossButtonClassName,
                              crossClassName: this.props.crossClassName
                          }))), this.props.customBurgerIcon !== false && _react2['default'].createElement('div', { style: this.getStyles('burgerIcon') }, _react2['default'].createElement(_BurgerIcon2['default'], {
                              onClick: function () {
                                  return _this3.toggleMenu();
                              },
                              styles: this.props.styles,
                              customIcon: this.props.customBurgerIcon,
                              className: this.props.burgerButtonClassName,
                              barClassName: this.props.burgerBarClassName
                          })));
                      }
                  }
              ]);
              return Menu;
          }(_react.Component);
      Menu.propTypes = {
          bodyClassName: _propTypes2['default'].string,
          burgerBarClassName: _propTypes2['default'].string,
          burgerButtonClassName: _propTypes2['default'].string,
          crossButtonClassName: _propTypes2['default'].string,
          crossClassName: _propTypes2['default'].string,
          customBurgerIcon: _propTypes2['default'].oneOfType([
              _propTypes2['default'].element,
              _propTypes2['default'].oneOf([false])
          ]),
          customCrossIcon: _propTypes2['default'].oneOfType([
              _propTypes2['default'].element,
              _propTypes2['default'].oneOf([false])
          ]),
          customOnKeyDown: _propTypes2['default'].func,
          disableCloseOnEsc: _propTypes2['default'].bool,
          disableOverlayClick: _propTypes2['default'].oneOfType([
              _propTypes2['default'].bool,
              _propTypes2['default'].func
          ]),
          id: _propTypes2['default'].string,
          isOpen: _propTypes2['default'].bool,
          itemClassName: _propTypes2['default'].string,
          itemListClassName: _propTypes2['default'].string,
          menuClassName: _propTypes2['default'].string,
          morphShapeClassName: _propTypes2['default'].string,
          noOverlay: _propTypes2['default'].bool,
          onStateChange: _propTypes2['default'].func,
          outerContainerId: styles && styles.outerContainer ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,
          overlayClassName: _propTypes2['default'].string,
          pageWrapId: styles && styles.pageWrap ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,
          right: _propTypes2['default'].bool,
          styles: _propTypes2['default'].object,
          width: _propTypes2['default'].oneOfType([
              _propTypes2['default'].number,
              _propTypes2['default'].string
          ])
      };
      Menu.defaultProps = {
          bodyClassName: '',
          burgerBarClassName: '',
          burgerButtonClassName: '',
          className: '',
          crossButtonClassName: '',
          crossClassName: '',
          disableCloseOnEsc: false,
          id: '',
          itemClassName: '',
          itemListClassName: '',
          menuClassName: '',
          morphShapeClassName: '',
          noOverlay: false,
          onStateChange: function onStateChange() {
          },
          outerContainerId: '',
          overlayClassName: '',
          pageWrapId: '',
          styles: {},
          width: 300
      };
      return Menu;
  };
  module.exports = exports['default'];
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  },{"./BurgerIcon":10,"./CrossIcon":12,"./baseStyles":13,"prop-types":8}],15:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _snapsvgImporter = require('../snapsvgImporter');
  var _snapsvgImporter2 = _interopRequireDefault(_snapsvgImporter);
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          svg: {
              lib: _snapsvgImporter2['default'],
              pathInitial: 'M-7.312,0H0c0,0,0,113.839,0,400c0,264.506,0,400,0,400h-7.312V0z',
              pathOpen: 'M-7.312,0H15c0,0,66,113.339,66,399.5C81,664.006,15,800,15,800H-7.312V0z;M-7.312,0H100c0,0,0,113.839,0,400c0,264.506,0,400,0,400H-7.312V0z',
              animate: function animate(path) {
                  var pos = 0;
                  var steps = this.pathOpen.split(';');
                  var stepsTotal = steps.length;
                  var mina = window.mina;
                  var nextStep = function nextStep() {
                      if (pos > stepsTotal - 1)
                          return;
                      path.animate({ path: steps[pos] }, pos === 0 ? 400 : 500, pos === 0 ? mina.easein : mina.elastic, function () {
                          nextStep();
                      });
                      pos++;
                  };
                  nextStep();
              }
          },
          morphShape: function morphShape(isOpen, width, right) {
              return {
                  position: 'absolute',
                  width: '100%',
                  height: '100%',
                  right: right ? 'inherit' : 0,
                  left: right ? 0 : 'inherit',
                  MozTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',
                  MsTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',
                  OTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',
                  WebkitTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',
                  transform: right ? 'rotateY(180deg)' : 'rotateY(0deg)'
              };
          },
          menuWrap: function menuWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  transition: isOpen ? 'transform 0.4s 0s' : 'transform 0.4s'
              };
          },
          menu: function menu(isOpen, width, right) {
              width -= 140;
              return {
                  position: 'fixed',
                  MozTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  OTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transition: isOpen ? 'opacity 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',
                  opacity: isOpen ? 1 : 0
              };
          },
          item: function item(isOpen, width, right, nthChild) {
              width -= 140;
              return {
                  MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transition: isOpen ? 'opacity 0.3s 0.4s, transform 0.3s 0.4s' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',
                  opacity: isOpen ? 1 : 0
              };
          },
          closeButton: function closeButton(isOpen, width, right) {
              width -= 140;
              return {
                  MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transition: isOpen ? 'opacity 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',
                  opacity: isOpen ? 1 : 0
              };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14,"../snapsvgImporter":25}],16:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _snapsvgImporter = require('../snapsvgImporter');
  var _snapsvgImporter2 = _interopRequireDefault(_snapsvgImporter);
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          svg: {
              lib: _snapsvgImporter2['default'],
              pathInitial: 'M-1,0h101c0,0-97.833,153.603-97.833,396.167C2.167,627.579,100,800,100,800H-1V0z',
              pathOpen: 'M-1,0h101c0,0,0-1,0,395c0,404,0,405,0,405H-1V0z',
              animate: function animate(path) {
                  path.animate({ path: this.pathOpen }, 400, window.mina.easeinout);
              }
          },
          morphShape: function morphShape(isOpen, width, right) {
              return {
                  position: 'absolute',
                  width: 120,
                  height: '100%',
                  right: right ? 'inherit' : 0,
                  left: right ? 0 : 'inherit',
                  MozTransform: right ? 'rotateY(180deg)' : '',
                  MsTransform: right ? 'rotateY(180deg)' : '',
                  OTransform: right ? 'rotateY(180deg)' : '',
                  WebkitTransform: right ? 'rotateY(180deg)' : '',
                  transform: right ? 'rotateY(180deg)' : ''
              };
          },
          menuWrap: function menuWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
                  transition: 'all 0.3s'
              };
          },
          menu: function menu(isOpen, width, right) {
              return {
                  position: 'fixed',
                  right: right ? 0 : 'inherit',
                  width: 180,
                  whiteSpace: 'nowrap',
                  boxSizing: 'border-box',
                  overflow: 'visible'
              };
          },
          itemList: function itemList(isOpen, width, right) {
              if (right) {
                  return {
                      position: 'relative',
                      left: '-110px',
                      width: '170%',
                      overflow: 'auto'
                  };
              }
          },
          pageWrap: function pageWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
                  OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
                  transform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
                  transition: isOpen ? 'all 0.3s' : 'all 0.3s 0.1s'
              };
          },
          outerContainer: function outerContainer(isOpen) {
              return { overflow: isOpen ? '' : 'hidden' };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14,"../snapsvgImporter":25}],17:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          menuWrap: function menuWrap(isOpen) {
              return {
                  MozTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',
                  MsTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',
                  OTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',
                  WebkitTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',
                  transform: isOpen ? '' : 'translate3d(0, -100%, 0)',
                  transition: 'all 0.5s ease-in-out'
              };
          },
          pageWrap: function pageWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  transition: 'all 0.5s'
              };
          },
          outerContainer: function outerContainer(isOpen) {
              return {
                  perspective: '1500px',
                  perspectiveOrigin: '0% 50%',
                  overflow: isOpen ? '' : 'hidden'
              };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],18:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          pageWrap: function pageWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  transition: 'all 0.5s'
              };
          },
          outerContainer: function outerContainer(isOpen) {
              return { overflow: isOpen ? '' : 'hidden' };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],19:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          pageWrap: function pageWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',
                  OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',
                  transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',
                  transformOrigin: right ? '100% 50%' : '0% 50%',
                  transformStyle: 'preserve-3d',
                  transition: 'all 0.5s'
              };
          },
          outerContainer: function outerContainer(isOpen) {
              return {
                  perspective: '1500px',
                  overflow: isOpen ? '' : 'hidden'
              };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],20:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          menuWrap: function menuWrap(isOpen, width, right) {
              return {
                  visibility: isOpen ? 'visible' : 'hidden',
                  MozTransform: 'translate3d(0, 0, 0)',
                  MsTransform: 'translate3d(0, 0, 0)',
                  OTransform: 'translate3d(0, 0, 0)',
                  WebkitTransform: 'translate3d(0, 0, 0)',
                  transform: 'translate3d(0, 0, 0)',
                  zIndex: 1000
              };
          },
          overlay: function overlay(isOpen, width, right) {
              return {
                  zIndex: 1400,
                  MozTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  MsTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  OTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  WebkitTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  transform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  transition: 'all 0.5s',
                  visibility: isOpen ? 'visible' : 'hidden'
              };
          },
          pageWrap: function pageWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',
                  transition: 'all 0.5s',
                  zIndex: 1200,
                  position: 'relative'
              };
          },
          burgerIcon: function burgerIcon(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  MsTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  OTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  WebkitTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  transform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',
                  transition: 'all 0.1s',
                  position: 'relative',
                  zIndex: 1300
              };
          },
          outerContainer: function outerContainer(isOpen) {
              return { overflow: isOpen ? '' : 'hidden' };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],21:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          pageWrap: function pageWrap(isOpen, width) {
              return {
                  MozTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',
                  MsTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',
                  OTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',
                  WebkitTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',
                  transform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',
                  transformOrigin: '100%',
                  transformStyle: 'preserve-3d',
                  transition: 'all 0.5s'
              };
          },
          outerContainer: function outerContainer() {
              return { perspective: '1500px' };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],22:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          pageWrap: function pageWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',
                  OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',
                  transform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',
                  transformStyle: 'preserve-3d',
                  transition: 'all 0.5s',
                  overflow: isOpen ? '' : 'hidden'
              };
          },
          outerContainer: function outerContainer(isOpen) {
              return {
                  perspective: '1500px',
                  overflow: isOpen ? '' : 'hidden'
              };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],23:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {};
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],24:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  function _interopRequireDefault(obj) {
      return obj && obj.__esModule ? obj : { 'default': obj };
  }
  var _menuFactory = require('../menuFactory');
  var _menuFactory2 = _interopRequireDefault(_menuFactory);
  var styles = {
          menuWrap: function menuWrap(isOpen, width, right) {
              return {
                  MozTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  MsTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  OTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  WebkitTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',
                  transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0.4s cubic-bezier(0.7, 0, 0.3, 1)'
              };
          },
          item: function item(isOpen, width, right, nthChild) {
              return {
                  MozTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',
                  MsTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',
                  OTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',
                  WebkitTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',
                  transform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',
                  transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0s 0.2s cubic-bezier(0.7, 0, 0.3, 1)'
              };
          }
      };
  exports['default'] = (0, _menuFactory2['default'])(styles);
  module.exports = exports['default'];
  },{"../menuFactory":14}],25:[function(require,module,exports){
  'use strict';
  Object.defineProperty(exports, '__esModule', { value: true });
  exports['default'] = function () {
      var Snap = undefined;
      try {
          Snap = require('snapsvg-cjs');
      } finally {
          return Snap;
      }
  };
  module.exports = exports['default'];
  },{"snapsvg-cjs":undefined}]},{},[11])(11)
  });
  